1. Packages
  2. Exoscale
  3. API Docs
  4. NlbService
Exoscale v0.55.0 published on Monday, Jan 29, 2024 by Pulumiverse

exoscale.NlbService

Explore with Pulumi AI

exoscale logo
Exoscale v0.55.0 published on Monday, Jan 29, 2024 by Pulumiverse

    Manage Exoscale Network Load Balancer (NLB) Services.

    Example Usage

    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 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
    	})
    }
    
    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());
    
        }
    }
    
    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,
        )])
    
    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,
        }],
    });
    
    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
    

    Create NlbService Resource

    new NlbService(name: string, args: NlbServiceArgs, opts?: CustomResourceOptions);
    @overload
    def NlbService(resource_name: 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,
                   strategy: Optional[str] = None,
                   target_port: Optional[int] = None,
                   zone: Optional[str] = None)
    @overload
    def NlbService(resource_name: str,
                   args: NlbServiceArgs,
                   opts: Optional[ResourceOptions] = 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.
    
    
    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.

    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.NlbServiceHealthcheck>
    The service health checking configuration.
    InstancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    NlbId string
    ❗ The parent exoscale.Nlb ID.
    Port int
    The NLB service (TCP/UDP) port.
    TargetPort 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 []NlbServiceHealthcheckArgs
    The service health checking configuration.
    InstancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    NlbId string
    ❗ The parent exoscale.Nlb ID.
    Port int
    The NLB service (TCP/UDP) port.
    TargetPort 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<NlbServiceHealthcheck>
    The service health checking configuration.
    instancePoolId String
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    nlbId String
    ❗ The parent exoscale.Nlb ID.
    port Integer
    The NLB service (TCP/UDP) port.
    targetPort 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 NlbServiceHealthcheck[]
    The service health checking configuration.
    instancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    nlbId string
    ❗ The parent exoscale.Nlb ID.
    port number
    The NLB service (TCP/UDP) port.
    targetPort 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[NlbServiceHealthcheckArgs]
    The service health checking configuration.
    instance_pool_id str
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    nlb_id str
    ❗ The parent exoscale.Nlb ID.
    port int
    The NLB service (TCP/UDP) 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.
    instancePoolId String
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    nlbId String
    ❗ The parent exoscale.Nlb ID.
    port Number
    The NLB service (TCP/UDP) port.
    targetPort 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:

    Id string
    The provider-assigned unique ID for this managed resource.
    State string
    Id string
    The provider-assigned unique ID for this managed resource.
    State string
    id String
    The provider-assigned unique ID for this managed resource.
    state String
    id string
    The provider-assigned unique ID for this managed resource.
    state string
    id str
    The provider-assigned unique ID for this managed resource.
    state str
    id String
    The provider-assigned unique ID for this managed resource.
    state String

    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.
    The following state arguments are supported:
    Description string
    A free-form text describing the NLB service.
    Healthchecks List<Pulumiverse.Exoscale.Inputs.NlbServiceHealthcheck>
    The service health checking configuration.
    InstancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    Name string
    The NLB service name.
    NlbId string
    ❗ The parent exoscale.Nlb ID.
    Port int
    The NLB service (TCP/UDP) port.
    Protocol string
    The protocol (tcp|udp; default: tcp).
    State string
    Strategy string
    The strategy (round-robin|source-hash; default: round-robin).
    TargetPort 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 []NlbServiceHealthcheckArgs
    The service health checking configuration.
    InstancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    Name string
    The NLB service name.
    NlbId string
    ❗ The parent exoscale.Nlb ID.
    Port int
    The NLB service (TCP/UDP) port.
    Protocol string
    The protocol (tcp|udp; default: tcp).
    State string
    Strategy string
    The strategy (round-robin|source-hash; default: round-robin).
    TargetPort 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<NlbServiceHealthcheck>
    The service health checking configuration.
    instancePoolId String
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    name String
    The NLB service name.
    nlbId String
    ❗ The parent exoscale.Nlb ID.
    port Integer
    The NLB service (TCP/UDP) port.
    protocol String
    The protocol (tcp|udp; default: tcp).
    state String
    strategy String
    The strategy (round-robin|source-hash; default: round-robin).
    targetPort 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 NlbServiceHealthcheck[]
    The service health checking configuration.
    instancePoolId string
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    name string
    The NLB service name.
    nlbId string
    ❗ The parent exoscale.Nlb ID.
    port number
    The NLB service (TCP/UDP) port.
    protocol string
    The protocol (tcp|udp; default: tcp).
    state string
    strategy string
    The strategy (round-robin|source-hash; default: round-robin).
    targetPort 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[NlbServiceHealthcheckArgs]
    The service health checking configuration.
    instance_pool_id str
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    name str
    The NLB service name.
    nlb_id str
    ❗ The parent exoscale.Nlb ID.
    port int
    The NLB service (TCP/UDP) 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.
    instancePoolId String
    ❗ The exoscaleinstancepool (ID) to forward traffic to.
    name String
    The NLB service name.
    nlbId String
    ❗ The parent exoscale.Nlb ID.
    port Number
    The NLB service (TCP/UDP) port.
    protocol String
    The protocol (tcp|udp; default: tcp).
    state String
    strategy String
    The strategy (round-robin|source-hash; default: round-robin).
    targetPort 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).
    TlsSni string
    The healthcheck TLS SNI server name (only if mode is https).
    Uri string
    The healthcheck URI (must be set only if mode is http(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).
    TlsSni string
    The healthcheck TLS SNI server name (only if mode is https).
    Uri string
    The healthcheck URI (must be set only if mode is http(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).
    tlsSni String
    The healthcheck TLS SNI server name (only if mode is https).
    uri String
    The healthcheck URI (must be set only if mode is http(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).
    tlsSni string
    The healthcheck TLS SNI server name (only if mode is https).
    uri string
    The healthcheck URI (must be set only if mode is http(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 is https).
    uri str
    The healthcheck URI (must be set only if mode is http(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).
    tlsSni String
    The healthcheck TLS SNI server name (only if mode is https).
    uri String
    The healthcheck URI (must be set only if mode is http(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

    Package Details

    Repository
    exoscale pulumiverse/pulumi-exoscale
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the exoscale Terraform Provider.
    exoscale logo
    Exoscale v0.55.0 published on Monday, Jan 29, 2024 by Pulumiverse