exoscale.NlbService
Explore with Pulumi AI
Manage Exoscale Network Load Balancer (NLB) Services.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as exoscale from "@pulumiverse/exoscale";
const myNlb = new exoscale.Nlb("myNlb", {zone: "ch-gva-2"});
const myNlbService = new exoscale.NlbService("myNlbService", {
nlbId: myNlb.id,
zone: myNlb.zone,
instancePoolId: exoscale_instance_pool.my_instance_pool.id,
protocol: "tcp",
port: 443,
targetPort: 8443,
strategy: "round-robin",
healthchecks: [{
mode: "https",
port: 8443,
uri: "/healthz",
tlsSni: "example.net",
interval: 5,
timeout: 3,
retries: 1,
}],
});
import pulumi
import pulumiverse_exoscale as exoscale
my_nlb = exoscale.Nlb("myNlb", zone="ch-gva-2")
my_nlb_service = exoscale.NlbService("myNlbService",
nlb_id=my_nlb.id,
zone=my_nlb.zone,
instance_pool_id=exoscale_instance_pool["my_instance_pool"]["id"],
protocol="tcp",
port=443,
target_port=8443,
strategy="round-robin",
healthchecks=[exoscale.NlbServiceHealthcheckArgs(
mode="https",
port=8443,
uri="/healthz",
tls_sni="example.net",
interval=5,
timeout=3,
retries=1,
)])
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-exoscale/sdk/go/exoscale"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
myNlb, err := exoscale.NewNlb(ctx, "myNlb", &exoscale.NlbArgs{
Zone: pulumi.String("ch-gva-2"),
})
if err != nil {
return err
}
_, err = exoscale.NewNlbService(ctx, "myNlbService", &exoscale.NlbServiceArgs{
NlbId: myNlb.ID(),
Zone: myNlb.Zone,
InstancePoolId: pulumi.Any(exoscale_instance_pool.My_instance_pool.Id),
Protocol: pulumi.String("tcp"),
Port: pulumi.Int(443),
TargetPort: pulumi.Int(8443),
Strategy: pulumi.String("round-robin"),
Healthchecks: exoscale.NlbServiceHealthcheckArray{
&exoscale.NlbServiceHealthcheckArgs{
Mode: pulumi.String("https"),
Port: pulumi.Int(8443),
Uri: pulumi.String("/healthz"),
TlsSni: pulumi.String("example.net"),
Interval: pulumi.Int(5),
Timeout: pulumi.Int(3),
Retries: pulumi.Int(1),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Exoscale = Pulumiverse.Exoscale;
return await Deployment.RunAsync(() =>
{
var myNlb = new Exoscale.Nlb("myNlb", new()
{
Zone = "ch-gva-2",
});
var myNlbService = new Exoscale.NlbService("myNlbService", new()
{
NlbId = myNlb.Id,
Zone = myNlb.Zone,
InstancePoolId = exoscale_instance_pool.My_instance_pool.Id,
Protocol = "tcp",
Port = 443,
TargetPort = 8443,
Strategy = "round-robin",
Healthchecks = new[]
{
new Exoscale.Inputs.NlbServiceHealthcheckArgs
{
Mode = "https",
Port = 8443,
Uri = "/healthz",
TlsSni = "example.net",
Interval = 5,
Timeout = 3,
Retries = 1,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.exoscale.Nlb;
import com.pulumi.exoscale.NlbArgs;
import com.pulumi.exoscale.NlbService;
import com.pulumi.exoscale.NlbServiceArgs;
import com.pulumi.exoscale.inputs.NlbServiceHealthcheckArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var myNlb = new Nlb("myNlb", NlbArgs.builder()
.zone("ch-gva-2")
.build());
var myNlbService = new NlbService("myNlbService", NlbServiceArgs.builder()
.nlbId(myNlb.id())
.zone(myNlb.zone())
.instancePoolId(exoscale_instance_pool.my_instance_pool().id())
.protocol("tcp")
.port(443)
.targetPort(8443)
.strategy("round-robin")
.healthchecks(NlbServiceHealthcheckArgs.builder()
.mode("https")
.port(8443)
.uri("/healthz")
.tlsSni("example.net")
.interval(5)
.timeout(3)
.retries(1)
.build())
.build());
}
}
resources:
myNlb:
type: exoscale:Nlb
properties:
zone: ch-gva-2
myNlbService:
type: exoscale:NlbService
properties:
nlbId: ${myNlb.id}
zone: ${myNlb.zone}
instancePoolId: ${exoscale_instance_pool.my_instance_pool.id}
protocol: tcp
port: 443
targetPort: 8443
strategy: round-robin
healthchecks:
- mode: https
port: 8443
uri: /healthz
tlsSni: example.net
interval: 5
timeout: 3
retries: 1
Please refer to the examples directory for complete configuration examples.
Create NlbService Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new NlbService(name: string, args: NlbServiceArgs, opts?: CustomResourceOptions);
@overload
def NlbService(resource_name: str,
args: NlbServiceArgs,
opts: Optional[ResourceOptions] = None)
@overload
def NlbService(resource_name: str,
opts: Optional[ResourceOptions] = None,
healthchecks: Optional[Sequence[NlbServiceHealthcheckArgs]] = None,
instance_pool_id: Optional[str] = None,
nlb_id: Optional[str] = None,
port: Optional[int] = None,
target_port: Optional[int] = None,
zone: Optional[str] = None,
description: Optional[str] = None,
name: Optional[str] = None,
protocol: Optional[str] = None,
strategy: Optional[str] = None)
func NewNlbService(ctx *Context, name string, args NlbServiceArgs, opts ...ResourceOption) (*NlbService, error)
public NlbService(string name, NlbServiceArgs args, CustomResourceOptions? opts = null)
public NlbService(String name, NlbServiceArgs args)
public NlbService(String name, NlbServiceArgs args, CustomResourceOptions options)
type: exoscale:NlbService
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args NlbServiceArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args NlbServiceArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args NlbServiceArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args NlbServiceArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args NlbServiceArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var nlbServiceResource = new Exoscale.NlbService("nlbServiceResource", new()
{
Healthchecks = new[]
{
new Exoscale.Inputs.NlbServiceHealthcheckArgs
{
Port = 0,
Interval = 0,
Mode = "string",
Retries = 0,
Timeout = 0,
TlsSni = "string",
Uri = "string",
},
},
InstancePoolId = "string",
NlbId = "string",
Port = 0,
TargetPort = 0,
Zone = "string",
Description = "string",
Name = "string",
Protocol = "string",
Strategy = "string",
});
example, err := exoscale.NewNlbService(ctx, "nlbServiceResource", &exoscale.NlbServiceArgs{
Healthchecks: exoscale.NlbServiceHealthcheckArray{
&exoscale.NlbServiceHealthcheckArgs{
Port: pulumi.Int(0),
Interval: pulumi.Int(0),
Mode: pulumi.String("string"),
Retries: pulumi.Int(0),
Timeout: pulumi.Int(0),
TlsSni: pulumi.String("string"),
Uri: pulumi.String("string"),
},
},
InstancePoolId: pulumi.String("string"),
NlbId: pulumi.String("string"),
Port: pulumi.Int(0),
TargetPort: pulumi.Int(0),
Zone: pulumi.String("string"),
Description: pulumi.String("string"),
Name: pulumi.String("string"),
Protocol: pulumi.String("string"),
Strategy: pulumi.String("string"),
})
var nlbServiceResource = new NlbService("nlbServiceResource", NlbServiceArgs.builder()
.healthchecks(NlbServiceHealthcheckArgs.builder()
.port(0)
.interval(0)
.mode("string")
.retries(0)
.timeout(0)
.tlsSni("string")
.uri("string")
.build())
.instancePoolId("string")
.nlbId("string")
.port(0)
.targetPort(0)
.zone("string")
.description("string")
.name("string")
.protocol("string")
.strategy("string")
.build());
nlb_service_resource = exoscale.NlbService("nlbServiceResource",
healthchecks=[exoscale.NlbServiceHealthcheckArgs(
port=0,
interval=0,
mode="string",
retries=0,
timeout=0,
tls_sni="string",
uri="string",
)],
instance_pool_id="string",
nlb_id="string",
port=0,
target_port=0,
zone="string",
description="string",
name="string",
protocol="string",
strategy="string")
const nlbServiceResource = new exoscale.NlbService("nlbServiceResource", {
healthchecks: [{
port: 0,
interval: 0,
mode: "string",
retries: 0,
timeout: 0,
tlsSni: "string",
uri: "string",
}],
instancePoolId: "string",
nlbId: "string",
port: 0,
targetPort: 0,
zone: "string",
description: "string",
name: "string",
protocol: "string",
strategy: "string",
});
type: exoscale:NlbService
properties:
description: string
healthchecks:
- interval: 0
mode: string
port: 0
retries: 0
timeout: 0
tlsSni: string
uri: string
instancePoolId: string
name: string
nlbId: string
port: 0
protocol: string
strategy: string
targetPort: 0
zone: string
NlbService Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The NlbService resource accepts the following input properties:
- Healthchecks
List<Pulumiverse.
Exoscale. Inputs. Nlb Service Healthcheck> - The service health checking configuration.
- Instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- Nlb
Id string - ❗ The parent exoscale.Nlb ID.
- Port int
- The healthcheck port.
- Target
Port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- Zone string
- ❗ The Exoscale Zone name.
- Description string
- A free-form text describing the NLB service.
- Name string
- The NLB service name.
- Protocol string
- The protocol (
tcp
|udp
; default:tcp
). - Strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
).
- Healthchecks
[]Nlb
Service Healthcheck Args - The service health checking configuration.
- Instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- Nlb
Id string - ❗ The parent exoscale.Nlb ID.
- Port int
- The healthcheck port.
- Target
Port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- Zone string
- ❗ The Exoscale Zone name.
- Description string
- A free-form text describing the NLB service.
- Name string
- The NLB service name.
- Protocol string
- The protocol (
tcp
|udp
; default:tcp
). - Strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
).
- healthchecks
List<Nlb
Service Healthcheck> - The service health checking configuration.
- instance
Pool StringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- nlb
Id String - ❗ The parent exoscale.Nlb ID.
- port Integer
- The healthcheck port.
- target
Port Integer - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone String
- ❗ The Exoscale Zone name.
- description String
- A free-form text describing the NLB service.
- name String
- The NLB service name.
- protocol String
- The protocol (
tcp
|udp
; default:tcp
). - strategy String
- The strategy (
round-robin
|source-hash
; default:round-robin
).
- healthchecks
Nlb
Service Healthcheck[] - The service health checking configuration.
- instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- nlb
Id string - ❗ The parent exoscale.Nlb ID.
- port number
- The healthcheck port.
- target
Port number - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone string
- ❗ The Exoscale Zone name.
- description string
- A free-form text describing the NLB service.
- name string
- The NLB service name.
- protocol string
- The protocol (
tcp
|udp
; default:tcp
). - strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
).
- healthchecks
Sequence[Nlb
Service Healthcheck Args] - The service health checking configuration.
- instance_
pool_ strid - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- nlb_
id str - ❗ The parent exoscale.Nlb ID.
- port int
- The healthcheck port.
- target_
port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone str
- ❗ The Exoscale Zone name.
- description str
- A free-form text describing the NLB service.
- name str
- The NLB service name.
- protocol str
- The protocol (
tcp
|udp
; default:tcp
). - strategy str
- The strategy (
round-robin
|source-hash
; default:round-robin
).
- healthchecks List<Property Map>
- The service health checking configuration.
- instance
Pool StringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- nlb
Id String - ❗ The parent exoscale.Nlb ID.
- port Number
- The healthcheck port.
- target
Port Number - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone String
- ❗ The Exoscale Zone name.
- description String
- A free-form text describing the NLB service.
- name String
- The NLB service name.
- protocol String
- The protocol (
tcp
|udp
; default:tcp
). - strategy String
- The strategy (
round-robin
|source-hash
; default:round-robin
).
Outputs
All input properties are implicitly available as output properties. Additionally, the NlbService resource produces the following output properties:
Look up Existing NlbService Resource
Get an existing NlbService resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: NlbServiceState, opts?: CustomResourceOptions): NlbService
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
healthchecks: Optional[Sequence[NlbServiceHealthcheckArgs]] = None,
instance_pool_id: Optional[str] = None,
name: Optional[str] = None,
nlb_id: Optional[str] = None,
port: Optional[int] = None,
protocol: Optional[str] = None,
state: Optional[str] = None,
strategy: Optional[str] = None,
target_port: Optional[int] = None,
zone: Optional[str] = None) -> NlbService
func GetNlbService(ctx *Context, name string, id IDInput, state *NlbServiceState, opts ...ResourceOption) (*NlbService, error)
public static NlbService Get(string name, Input<string> id, NlbServiceState? state, CustomResourceOptions? opts = null)
public static NlbService get(String name, Output<String> id, NlbServiceState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Description string
- A free-form text describing the NLB service.
- Healthchecks
List<Pulumiverse.
Exoscale. Inputs. Nlb Service Healthcheck> - The service health checking configuration.
- Instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- Name string
- The NLB service name.
- Nlb
Id string - ❗ The parent exoscale.Nlb ID.
- Port int
- The healthcheck port.
- Protocol string
- The protocol (
tcp
|udp
; default:tcp
). - State string
- Strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
). - Target
Port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- Zone string
- ❗ The Exoscale Zone name.
- Description string
- A free-form text describing the NLB service.
- Healthchecks
[]Nlb
Service Healthcheck Args - The service health checking configuration.
- Instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- Name string
- The NLB service name.
- Nlb
Id string - ❗ The parent exoscale.Nlb ID.
- Port int
- The healthcheck port.
- Protocol string
- The protocol (
tcp
|udp
; default:tcp
). - State string
- Strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
). - Target
Port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- Zone string
- ❗ The Exoscale Zone name.
- description String
- A free-form text describing the NLB service.
- healthchecks
List<Nlb
Service Healthcheck> - The service health checking configuration.
- instance
Pool StringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- name String
- The NLB service name.
- nlb
Id String - ❗ The parent exoscale.Nlb ID.
- port Integer
- The healthcheck port.
- protocol String
- The protocol (
tcp
|udp
; default:tcp
). - state String
- strategy String
- The strategy (
round-robin
|source-hash
; default:round-robin
). - target
Port Integer - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone String
- ❗ The Exoscale Zone name.
- description string
- A free-form text describing the NLB service.
- healthchecks
Nlb
Service Healthcheck[] - The service health checking configuration.
- instance
Pool stringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- name string
- The NLB service name.
- nlb
Id string - ❗ The parent exoscale.Nlb ID.
- port number
- The healthcheck port.
- protocol string
- The protocol (
tcp
|udp
; default:tcp
). - state string
- strategy string
- The strategy (
round-robin
|source-hash
; default:round-robin
). - target
Port number - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone string
- ❗ The Exoscale Zone name.
- description str
- A free-form text describing the NLB service.
- healthchecks
Sequence[Nlb
Service Healthcheck Args] - The service health checking configuration.
- instance_
pool_ strid - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- name str
- The NLB service name.
- nlb_
id str - ❗ The parent exoscale.Nlb ID.
- port int
- The healthcheck port.
- protocol str
- The protocol (
tcp
|udp
; default:tcp
). - state str
- strategy str
- The strategy (
round-robin
|source-hash
; default:round-robin
). - target_
port int - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone str
- ❗ The Exoscale Zone name.
- description String
- A free-form text describing the NLB service.
- healthchecks List<Property Map>
- The service health checking configuration.
- instance
Pool StringId - ❗ The exoscaleinstancepool (ID) to forward traffic to.
- name String
- The NLB service name.
- nlb
Id String - ❗ The parent exoscale.Nlb ID.
- port Number
- The healthcheck port.
- protocol String
- The protocol (
tcp
|udp
; default:tcp
). - state String
- strategy String
- The strategy (
round-robin
|source-hash
; default:round-robin
). - target
Port Number - The (TCP/UDP) port to forward traffic to (on target instance pool members).
- zone String
- ❗ The Exoscale Zone name.
Supporting Types
NlbServiceHealthcheck, NlbServiceHealthcheckArgs
- Port int
- The NLB service (TCP/UDP) port.
- Interval int
- The healthcheck interval in seconds (default:
10
). - Mode string
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - Retries int
- The healthcheck retries (default:
1
). - Timeout int
- The healthcheck timeout (seconds; default:
5
). - Tls
Sni string - The healthcheck TLS SNI server name (only if
mode
ishttps
). - Uri string
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
- Port int
- The NLB service (TCP/UDP) port.
- Interval int
- The healthcheck interval in seconds (default:
10
). - Mode string
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - Retries int
- The healthcheck retries (default:
1
). - Timeout int
- The healthcheck timeout (seconds; default:
5
). - Tls
Sni string - The healthcheck TLS SNI server name (only if
mode
ishttps
). - Uri string
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
- port Integer
- The NLB service (TCP/UDP) port.
- interval Integer
- The healthcheck interval in seconds (default:
10
). - mode String
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - retries Integer
- The healthcheck retries (default:
1
). - timeout Integer
- The healthcheck timeout (seconds; default:
5
). - tls
Sni String - The healthcheck TLS SNI server name (only if
mode
ishttps
). - uri String
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
- port number
- The NLB service (TCP/UDP) port.
- interval number
- The healthcheck interval in seconds (default:
10
). - mode string
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - retries number
- The healthcheck retries (default:
1
). - timeout number
- The healthcheck timeout (seconds; default:
5
). - tls
Sni string - The healthcheck TLS SNI server name (only if
mode
ishttps
). - uri string
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
- port int
- The NLB service (TCP/UDP) port.
- interval int
- The healthcheck interval in seconds (default:
10
). - mode str
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - retries int
- The healthcheck retries (default:
1
). - timeout int
- The healthcheck timeout (seconds; default:
5
). - tls_
sni str - The healthcheck TLS SNI server name (only if
mode
ishttps
). - uri str
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
- port Number
- The NLB service (TCP/UDP) port.
- interval Number
- The healthcheck interval in seconds (default:
10
). - mode String
- The healthcheck mode (
tcp
|http
|https
; default:tcp
). - retries Number
- The healthcheck retries (default:
1
). - timeout Number
- The healthcheck timeout (seconds; default:
5
). - tls
Sni String - The healthcheck TLS SNI server name (only if
mode
ishttps
). - uri String
- The healthcheck URI (must be set only if
mode
ishttp(s)
).
Import
An existing NLB service may be imported by <nlb-ID>/<service-ID>@<zone>
:
$ pulumi import exoscale:index/nlbService:NlbService \
exoscale_nlb_service.my_nlb_service \
f81d4fae-7dec-11d0-a765-00a0c91e6bf6/9ecc6b8b-73d4-4211-8ced-f7f29bb79524@ch-gva-2
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- exoscale pulumiverse/pulumi-exoscale
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
exoscale
Terraform Provider.