scaleway.Loadbalancer
Explore with Pulumi AI
Creates and manages Scaleway Load-Balancers. For more information, see the documentation.
Example Usage
Basic
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const main = new scaleway.LoadbalancerIp("main", {zone: "fr-par-1"});
const base = new scaleway.Loadbalancer("base", {
ipIds: [main.id],
zone: main.zone,
type: "LB-S",
});
import pulumi
import pulumiverse_scaleway as scaleway
main = scaleway.LoadbalancerIp("main", zone="fr-par-1")
base = scaleway.Loadbalancer("base",
ip_ids=[main.id],
zone=main.zone,
type="LB-S")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
main, err := scaleway.NewLoadbalancerIp(ctx, "main", &scaleway.LoadbalancerIpArgs{
Zone: pulumi.String("fr-par-1"),
})
if err != nil {
return err
}
_, err = scaleway.NewLoadbalancer(ctx, "base", &scaleway.LoadbalancerArgs{
IpIds: pulumi.StringArray{
main.ID(),
},
Zone: main.Zone,
Type: pulumi.String("LB-S"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() =>
{
var main = new Scaleway.LoadbalancerIp("main", new()
{
Zone = "fr-par-1",
});
var @base = new Scaleway.Loadbalancer("base", new()
{
IpIds = new[]
{
main.Id,
},
Zone = main.Zone,
Type = "LB-S",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.LoadbalancerIp;
import com.pulumi.scaleway.LoadbalancerIpArgs;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
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 main = new LoadbalancerIp("main", LoadbalancerIpArgs.builder()
.zone("fr-par-1")
.build());
var base = new Loadbalancer("base", LoadbalancerArgs.builder()
.ipIds(main.id())
.zone(main.zone())
.type("LB-S")
.build());
}
}
resources:
main:
type: scaleway:LoadbalancerIp
properties:
zone: fr-par-1
base:
type: scaleway:Loadbalancer
properties:
ipIds:
- ${main.id}
zone: ${main.zone}
type: LB-S
Private LB
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const base = new scaleway.Loadbalancer("base", {
assignFlexibleIp: false,
type: "LB-S",
});
import pulumi
import pulumiverse_scaleway as scaleway
base = scaleway.Loadbalancer("base",
assign_flexible_ip=False,
type="LB-S")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := scaleway.NewLoadbalancer(ctx, "base", &scaleway.LoadbalancerArgs{
AssignFlexibleIp: pulumi.Bool(false),
Type: pulumi.String("LB-S"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() =>
{
var @base = new Scaleway.Loadbalancer("base", new()
{
AssignFlexibleIp = false,
Type = "LB-S",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
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 base = new Loadbalancer("base", LoadbalancerArgs.builder()
.assignFlexibleIp(false)
.type("LB-S")
.build());
}
}
resources:
base:
type: scaleway:Loadbalancer
properties:
assignFlexibleIp: false
type: LB-S
With IPv6
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const v4 = new scaleway.LoadbalancerIp("v4", {});
const v6 = new scaleway.LoadbalancerIp("v6", {isIpv6: true});
const main = new scaleway.Loadbalancer("main", {
ipIds: [
v4.id,
v6.id,
],
type: "LB-S",
});
import pulumi
import pulumiverse_scaleway as scaleway
v4 = scaleway.LoadbalancerIp("v4")
v6 = scaleway.LoadbalancerIp("v6", is_ipv6=True)
main = scaleway.Loadbalancer("main",
ip_ids=[
v4.id,
v6.id,
],
type="LB-S")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
v4, err := scaleway.NewLoadbalancerIp(ctx, "v4", nil)
if err != nil {
return err
}
v6, err := scaleway.NewLoadbalancerIp(ctx, "v6", &scaleway.LoadbalancerIpArgs{
IsIpv6: pulumi.Bool(true),
})
if err != nil {
return err
}
_, err = scaleway.NewLoadbalancer(ctx, "main", &scaleway.LoadbalancerArgs{
IpIds: pulumi.StringArray{
v4.ID(),
v6.ID(),
},
Type: pulumi.String("LB-S"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() =>
{
var v4 = new Scaleway.LoadbalancerIp("v4");
var v6 = new Scaleway.LoadbalancerIp("v6", new()
{
IsIpv6 = true,
});
var main = new Scaleway.Loadbalancer("main", new()
{
IpIds = new[]
{
v4.Id,
v6.Id,
},
Type = "LB-S",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.LoadbalancerIp;
import com.pulumi.scaleway.LoadbalancerIpArgs;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
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 v4 = new LoadbalancerIp("v4");
var v6 = new LoadbalancerIp("v6", LoadbalancerIpArgs.builder()
.isIpv6(true)
.build());
var main = new Loadbalancer("main", LoadbalancerArgs.builder()
.ipIds(
v4.id(),
v6.id())
.type("LB-S")
.build());
}
}
resources:
v4:
type: scaleway:LoadbalancerIp
v6:
type: scaleway:LoadbalancerIp
properties:
isIpv6: true
main:
type: scaleway:Loadbalancer
properties:
ipIds:
- ${v4.id}
- ${v6.id}
type: LB-S
Multiple configurations
Coming soon!
Coming soon!
Coming soon!
Coming soon!
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.VpcPublicGatewayIp;
import com.pulumi.scaleway.VpcPrivateNetwork;
import com.pulumi.scaleway.VpcPublicGateway;
import com.pulumi.scaleway.VpcPublicGatewayArgs;
import com.pulumi.scaleway.VpcPublicGatewayDhcp;
import com.pulumi.scaleway.VpcPublicGatewayDhcpArgs;
import com.pulumi.scaleway.VpcGatewayNetwork;
import com.pulumi.scaleway.VpcGatewayNetworkArgs;
import com.pulumi.scaleway.InstanceServer;
import com.pulumi.scaleway.InstanceServerArgs;
import com.pulumi.scaleway.inputs.InstanceServerPrivateNetworkArgs;
import com.pulumi.scaleway.LoadbalancerIp;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
import com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
//## IP for Public Gateway
var mainVpcPublicGatewayIp = new VpcPublicGatewayIp("mainVpcPublicGatewayIp");
//## Scaleway Private Network
var mainVpcPrivateNetwork = new VpcPrivateNetwork("mainVpcPrivateNetwork");
//## VPC Public Gateway Network
var mainVpcPublicGateway = new VpcPublicGateway("mainVpcPublicGateway", VpcPublicGatewayArgs.builder()
.type("VPC-GW-S")
.ipId(mainVpcPublicGatewayIp.id())
.build());
//## VPC Public Gateway Network DHCP config
var mainVpcPublicGatewayDhcp = new VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", VpcPublicGatewayDhcpArgs.builder()
.subnet("10.0.0.0/24")
.build());
//## VPC Gateway Network
var mainVpcGatewayNetwork = new VpcGatewayNetwork("mainVpcGatewayNetwork", VpcGatewayNetworkArgs.builder()
.gatewayId(mainVpcPublicGateway.id())
.privateNetworkId(mainVpcPrivateNetwork.id())
.dhcpId(mainVpcPublicGatewayDhcp.id())
.cleanupDhcp(true)
.enableMasquerade(true)
.build());
//## Scaleway Instance
var mainInstanceServer = new InstanceServer("mainInstanceServer", InstanceServerArgs.builder()
.type("DEV1-S")
.image("debian_bullseye")
.enableIpv6(false)
.privateNetworks(InstanceServerPrivateNetworkArgs.builder()
.pnId(mainVpcPrivateNetwork.id())
.build())
.build());
//## IP for LB IP
var mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
//## Scaleway Private Network
var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new VpcPrivateNetwork("mainIndex/vpcPrivateNetworkVpcPrivateNetwork");
//## Scaleway Load Balancer
var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()
.ipId(mainLoadbalancerIp.id())
.type("LB-S")
.privateNetworks(
LoadbalancerPrivateNetworkArgs.builder()
.privateNetworkId(mainVpcPrivateNetwork.id())
.staticConfig("172.16.0.100")
.build(),
LoadbalancerPrivateNetworkArgs.builder()
.privateNetworkId(mainVpcPrivateNetwork.id())
.dhcpConfig(true)
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(mainVpcPublicGateway)
.build());
}
}
resources:
### IP for Public Gateway
mainVpcPublicGatewayIp:
type: scaleway:VpcPublicGatewayIp
### Scaleway Private Network
mainVpcPrivateNetwork:
type: scaleway:VpcPrivateNetwork
### VPC Public Gateway Network
mainVpcPublicGateway:
type: scaleway:VpcPublicGateway
properties:
type: VPC-GW-S
ipId: ${mainVpcPublicGatewayIp.id}
### VPC Public Gateway Network DHCP config
mainVpcPublicGatewayDhcp:
type: scaleway:VpcPublicGatewayDhcp
properties:
subnet: 10.0.0.0/24
### VPC Gateway Network
mainVpcGatewayNetwork:
type: scaleway:VpcGatewayNetwork
properties:
gatewayId: ${mainVpcPublicGateway.id}
privateNetworkId: ${mainVpcPrivateNetwork.id}
dhcpId: ${mainVpcPublicGatewayDhcp.id}
cleanupDhcp: true
enableMasquerade: true
### Scaleway Instance
mainInstanceServer:
type: scaleway:InstanceServer
properties:
type: DEV1-S
image: debian_bullseye
enableIpv6: false
privateNetworks:
- pnId: ${mainVpcPrivateNetwork.id}
### IP for LB IP
mainLoadbalancerIp:
type: scaleway:LoadbalancerIp
### Scaleway Private Network
mainIndex/vpcPrivateNetworkVpcPrivateNetwork:
type: scaleway:VpcPrivateNetwork
### Scaleway Load Balancer
mainLoadbalancer:
type: scaleway:Loadbalancer
properties:
ipId: ${mainLoadbalancerIp.id}
type: LB-S
privateNetworks:
- privateNetworkId: ${mainVpcPrivateNetwork.id}
staticConfig:
- 172.16.0.100
- privateNetworkId: ${mainVpcPrivateNetwork.id}
dhcpConfig: true
options:
dependson:
- ${mainVpcPublicGateway}
Migration
In order to migrate to other types you can check the migration up or down via our CLI scw lb lb-types list
.
this change will not recreate your Load Balancer.
Please check our documentation for further details
IP ID
Since v1.15.0, ip_id
is a required field. This means that now a separate scaleway.LoadbalancerIp
is required.
When importing, the IP needs to be imported as well as the LB.
When upgrading to v1.15.0, you will need to create a new scaleway.LoadbalancerIp
resource and import it.
For instance, if you had the following:
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const main = new scaleway.Loadbalancer("main", {
type: "LB-S",
zone: "fr-par-1",
});
import pulumi
import pulumiverse_scaleway as scaleway
main = scaleway.Loadbalancer("main",
type="LB-S",
zone="fr-par-1")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := scaleway.NewLoadbalancer(ctx, "main", &scaleway.LoadbalancerArgs{
Type: pulumi.String("LB-S"),
Zone: pulumi.String("fr-par-1"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() =>
{
var main = new Scaleway.Loadbalancer("main", new()
{
Type = "LB-S",
Zone = "fr-par-1",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
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 main = new Loadbalancer("main", LoadbalancerArgs.builder()
.type("LB-S")
.zone("fr-par-1")
.build());
}
}
resources:
main:
type: scaleway:Loadbalancer
properties:
type: LB-S
zone: fr-par-1
You will need to update it to:
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const mainLoadbalancerIp = new scaleway.LoadbalancerIp("mainLoadbalancerIp", {});
const mainLoadbalancer = new scaleway.Loadbalancer("mainLoadbalancer", {
ipId: mainLoadbalancerIp.id,
zone: "fr-par-1",
type: "LB-S",
releaseIp: false,
});
import pulumi
import pulumiverse_scaleway as scaleway
main_loadbalancer_ip = scaleway.LoadbalancerIp("mainLoadbalancerIp")
main_loadbalancer = scaleway.Loadbalancer("mainLoadbalancer",
ip_id=main_loadbalancer_ip.id,
zone="fr-par-1",
type="LB-S",
release_ip=False)
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
mainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, "mainLoadbalancerIp", nil)
if err != nil {
return err
}
_, err = scaleway.NewLoadbalancer(ctx, "mainLoadbalancer", &scaleway.LoadbalancerArgs{
IpId: mainLoadbalancerIp.ID(),
Zone: pulumi.String("fr-par-1"),
Type: pulumi.String("LB-S"),
ReleaseIp: pulumi.Bool(false),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() =>
{
var mainLoadbalancerIp = new Scaleway.LoadbalancerIp("mainLoadbalancerIp");
var mainLoadbalancer = new Scaleway.Loadbalancer("mainLoadbalancer", new()
{
IpId = mainLoadbalancerIp.Id,
Zone = "fr-par-1",
Type = "LB-S",
ReleaseIp = false,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.LoadbalancerIp;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
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 mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()
.ipId(mainLoadbalancerIp.id())
.zone("fr-par-1")
.type("LB-S")
.releaseIp(false)
.build());
}
}
resources:
mainLoadbalancerIp:
type: scaleway:LoadbalancerIp
mainLoadbalancer:
type: scaleway:Loadbalancer
properties:
ipId: ${mainLoadbalancerIp.id}
zone: fr-par-1
type: LB-S
releaseIp: false
Private Network with static config
Coming soon!
Coming soon!
Coming soon!
Coming soon!
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.LoadbalancerIp;
import com.pulumi.scaleway.VpcPrivateNetwork;
import com.pulumi.scaleway.Loadbalancer;
import com.pulumi.scaleway.LoadbalancerArgs;
import com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;
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 mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
var mainVpcPrivateNetwork = new VpcPrivateNetwork("mainVpcPrivateNetwork");
var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()
.ipId(mainLoadbalancerIp.id())
.type("LB-S")
.releaseIp(false)
.privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
.privateNetworkId(mainVpcPrivateNetwork.id())
.staticConfig("172.16.0.100")
.build())
.build());
}
}
resources:
mainLoadbalancerIp:
type: scaleway:LoadbalancerIp
mainVpcPrivateNetwork:
type: scaleway:VpcPrivateNetwork
mainLoadbalancer:
type: scaleway:Loadbalancer
properties:
ipId: ${mainLoadbalancerIp.id}
type: LB-S
releaseIp: false
privateNetworks:
- privateNetworkId: ${mainVpcPrivateNetwork.id}
staticConfig:
- 172.16.0.100
Create Loadbalancer Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Loadbalancer(name: string, args: LoadbalancerArgs, opts?: CustomResourceOptions);
@overload
def Loadbalancer(resource_name: str,
args: LoadbalancerArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Loadbalancer(resource_name: str,
opts: Optional[ResourceOptions] = None,
type: Optional[str] = None,
private_networks: Optional[Sequence[LoadbalancerPrivateNetworkArgs]] = None,
description: Optional[str] = None,
ip_id: Optional[str] = None,
ip_ids: Optional[Sequence[str]] = None,
name: Optional[str] = None,
assign_flexible_ip: Optional[bool] = None,
project_id: Optional[str] = None,
release_ip: Optional[bool] = None,
ssl_compatibility_level: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
assign_flexible_ipv6: Optional[bool] = None,
zone: Optional[str] = None)
func NewLoadbalancer(ctx *Context, name string, args LoadbalancerArgs, opts ...ResourceOption) (*Loadbalancer, error)
public Loadbalancer(string name, LoadbalancerArgs args, CustomResourceOptions? opts = null)
public Loadbalancer(String name, LoadbalancerArgs args)
public Loadbalancer(String name, LoadbalancerArgs args, CustomResourceOptions options)
type: scaleway:Loadbalancer
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 LoadbalancerArgs
- 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 LoadbalancerArgs
- 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 LoadbalancerArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args LoadbalancerArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args LoadbalancerArgs
- 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 loadbalancerResource = new Scaleway.Loadbalancer("loadbalancerResource", new()
{
Type = "string",
PrivateNetworks = new[]
{
new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs
{
PrivateNetworkId = "string",
DhcpConfig = false,
StaticConfig = "string",
Status = "string",
Zone = "string",
},
},
Description = "string",
IpIds = new[]
{
"string",
},
Name = "string",
AssignFlexibleIp = false,
ProjectId = "string",
SslCompatibilityLevel = "string",
Tags = new[]
{
"string",
},
AssignFlexibleIpv6 = false,
Zone = "string",
});
example, err := scaleway.NewLoadbalancer(ctx, "loadbalancerResource", &scaleway.LoadbalancerArgs{
Type: pulumi.String("string"),
PrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{
&scaleway.LoadbalancerPrivateNetworkArgs{
PrivateNetworkId: pulumi.String("string"),
DhcpConfig: pulumi.Bool(false),
StaticConfig: pulumi.String("string"),
Status: pulumi.String("string"),
Zone: pulumi.String("string"),
},
},
Description: pulumi.String("string"),
IpIds: pulumi.StringArray{
pulumi.String("string"),
},
Name: pulumi.String("string"),
AssignFlexibleIp: pulumi.Bool(false),
ProjectId: pulumi.String("string"),
SslCompatibilityLevel: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
AssignFlexibleIpv6: pulumi.Bool(false),
Zone: pulumi.String("string"),
})
var loadbalancerResource = new Loadbalancer("loadbalancerResource", LoadbalancerArgs.builder()
.type("string")
.privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
.privateNetworkId("string")
.dhcpConfig(false)
.staticConfig("string")
.status("string")
.zone("string")
.build())
.description("string")
.ipIds("string")
.name("string")
.assignFlexibleIp(false)
.projectId("string")
.sslCompatibilityLevel("string")
.tags("string")
.assignFlexibleIpv6(false)
.zone("string")
.build());
loadbalancer_resource = scaleway.Loadbalancer("loadbalancerResource",
type="string",
private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(
private_network_id="string",
dhcp_config=False,
static_config="string",
status="string",
zone="string",
)],
description="string",
ip_ids=["string"],
name="string",
assign_flexible_ip=False,
project_id="string",
ssl_compatibility_level="string",
tags=["string"],
assign_flexible_ipv6=False,
zone="string")
const loadbalancerResource = new scaleway.Loadbalancer("loadbalancerResource", {
type: "string",
privateNetworks: [{
privateNetworkId: "string",
dhcpConfig: false,
staticConfig: "string",
status: "string",
zone: "string",
}],
description: "string",
ipIds: ["string"],
name: "string",
assignFlexibleIp: false,
projectId: "string",
sslCompatibilityLevel: "string",
tags: ["string"],
assignFlexibleIpv6: false,
zone: "string",
});
type: scaleway:Loadbalancer
properties:
assignFlexibleIp: false
assignFlexibleIpv6: false
description: string
ipIds:
- string
name: string
privateNetworks:
- dhcpConfig: false
privateNetworkId: string
staticConfig: string
status: string
zone: string
projectId: string
sslCompatibilityLevel: string
tags:
- string
type: string
zone: string
Loadbalancer 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 Loadbalancer resource accepts the following input properties:
- Type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- Assign
Flexible boolIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- Assign
Flexible boolIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- Description string
- The description of the load-balancer.
- Ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- Ip
Ids List<string> - The List of IP IDs to attach to the Load Balancer.
- Name string
- The name of the load-balancer.
- Private
Networks List<Pulumiverse.Scaleway. Inputs. Loadbalancer Private Network> - List of private network to connect with your load balancer
- Project
Id string project_id
) The ID of the project the load-balancer is associated with.- Release
Ip bool - The release_ip allow release the ip address associated with the load-balancers.
- Ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<string>
- The tags associated with the load-balancers.
- Zone string
zone
) The zone of the load-balancer.
- Type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- Assign
Flexible boolIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- Assign
Flexible boolIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- Description string
- The description of the load-balancer.
- Ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- Ip
Ids []string - The List of IP IDs to attach to the Load Balancer.
- Name string
- The name of the load-balancer.
- Private
Networks []LoadbalancerPrivate Network Args - List of private network to connect with your load balancer
- Project
Id string project_id
) The ID of the project the load-balancer is associated with.- Release
Ip bool - The release_ip allow release the ip address associated with the load-balancers.
- Ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- []string
- The tags associated with the load-balancers.
- Zone string
zone
) The zone of the load-balancer.
- type String
- The type of the load-balancer. Please check the migration section to upgrade the type.
- assign
Flexible BooleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible BooleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description String
- The description of the load-balancer.
- ip
Id String The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids List<String> - The List of IP IDs to attach to the Load Balancer.
- name String
- The name of the load-balancer.
- private
Networks List<LoadbalancerPrivate Network> - List of private network to connect with your load balancer
- project
Id String project_id
) The ID of the project the load-balancer is associated with.- release
Ip Boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility StringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<String>
- The tags associated with the load-balancers.
- zone String
zone
) The zone of the load-balancer.
- type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- assign
Flexible booleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible booleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description string
- The description of the load-balancer.
- ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids string[] - The List of IP IDs to attach to the Load Balancer.
- name string
- The name of the load-balancer.
- private
Networks LoadbalancerPrivate Network[] - List of private network to connect with your load balancer
- project
Id string project_id
) The ID of the project the load-balancer is associated with.- release
Ip boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- string[]
- The tags associated with the load-balancers.
- zone string
zone
) The zone of the load-balancer.
- type str
- The type of the load-balancer. Please check the migration section to upgrade the type.
- assign_
flexible_ boolip - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign_
flexible_ boolipv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description str
- The description of the load-balancer.
- ip_
id str The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip_
ids Sequence[str] - The List of IP IDs to attach to the Load Balancer.
- name str
- The name of the load-balancer.
- private_
networks Sequence[LoadbalancerPrivate Network Args] - List of private network to connect with your load balancer
- project_
id str project_id
) The ID of the project the load-balancer is associated with.- release_
ip bool - The release_ip allow release the ip address associated with the load-balancers.
- ssl_
compatibility_ strlevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- Sequence[str]
- The tags associated with the load-balancers.
- zone str
zone
) The zone of the load-balancer.
- type String
- The type of the load-balancer. Please check the migration section to upgrade the type.
- assign
Flexible BooleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible BooleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description String
- The description of the load-balancer.
- ip
Id String The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids List<String> - The List of IP IDs to attach to the Load Balancer.
- name String
- The name of the load-balancer.
- private
Networks List<Property Map> - List of private network to connect with your load balancer
- project
Id String project_id
) The ID of the project the load-balancer is associated with.- release
Ip Boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility StringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<String>
- The tags associated with the load-balancers.
- zone String
zone
) The zone of the load-balancer.
Outputs
All input properties are implicitly available as output properties. Additionally, the Loadbalancer resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Ip
Address string - The load-balancer public IPv4 Address.
- Ipv6Address string
- The load-balancer public IPv6 Address.
- Organization
Id string - The organization ID the load-balancer is associated with.
- Region string
- The region of the resource
- Id string
- The provider-assigned unique ID for this managed resource.
- Ip
Address string - The load-balancer public IPv4 Address.
- Ipv6Address string
- The load-balancer public IPv6 Address.
- Organization
Id string - The organization ID the load-balancer is associated with.
- Region string
- The region of the resource
- id String
- The provider-assigned unique ID for this managed resource.
- ip
Address String - The load-balancer public IPv4 Address.
- ipv6Address String
- The load-balancer public IPv6 Address.
- organization
Id String - The organization ID the load-balancer is associated with.
- region String
- The region of the resource
- id string
- The provider-assigned unique ID for this managed resource.
- ip
Address string - The load-balancer public IPv4 Address.
- ipv6Address string
- The load-balancer public IPv6 Address.
- organization
Id string - The organization ID the load-balancer is associated with.
- region string
- The region of the resource
- id str
- The provider-assigned unique ID for this managed resource.
- ip_
address str - The load-balancer public IPv4 Address.
- ipv6_
address str - The load-balancer public IPv6 Address.
- organization_
id str - The organization ID the load-balancer is associated with.
- region str
- The region of the resource
- id String
- The provider-assigned unique ID for this managed resource.
- ip
Address String - The load-balancer public IPv4 Address.
- ipv6Address String
- The load-balancer public IPv6 Address.
- organization
Id String - The organization ID the load-balancer is associated with.
- region String
- The region of the resource
Look up Existing Loadbalancer Resource
Get an existing Loadbalancer 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?: LoadbalancerState, opts?: CustomResourceOptions): Loadbalancer
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
assign_flexible_ip: Optional[bool] = None,
assign_flexible_ipv6: Optional[bool] = None,
description: Optional[str] = None,
ip_address: Optional[str] = None,
ip_id: Optional[str] = None,
ip_ids: Optional[Sequence[str]] = None,
ipv6_address: Optional[str] = None,
name: Optional[str] = None,
organization_id: Optional[str] = None,
private_networks: Optional[Sequence[LoadbalancerPrivateNetworkArgs]] = None,
project_id: Optional[str] = None,
region: Optional[str] = None,
release_ip: Optional[bool] = None,
ssl_compatibility_level: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
type: Optional[str] = None,
zone: Optional[str] = None) -> Loadbalancer
func GetLoadbalancer(ctx *Context, name string, id IDInput, state *LoadbalancerState, opts ...ResourceOption) (*Loadbalancer, error)
public static Loadbalancer Get(string name, Input<string> id, LoadbalancerState? state, CustomResourceOptions? opts = null)
public static Loadbalancer get(String name, Output<String> id, LoadbalancerState 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.
- Assign
Flexible boolIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- Assign
Flexible boolIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- Description string
- The description of the load-balancer.
- Ip
Address string - The load-balancer public IPv4 Address.
- Ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- Ip
Ids List<string> - The List of IP IDs to attach to the Load Balancer.
- Ipv6Address string
- The load-balancer public IPv6 Address.
- Name string
- The name of the load-balancer.
- Organization
Id string - The organization ID the load-balancer is associated with.
- Private
Networks List<Pulumiverse.Scaleway. Inputs. Loadbalancer Private Network> - List of private network to connect with your load balancer
- Project
Id string project_id
) The ID of the project the load-balancer is associated with.- Region string
- The region of the resource
- Release
Ip bool - The release_ip allow release the ip address associated with the load-balancers.
- Ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<string>
- The tags associated with the load-balancers.
- Type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- Zone string
zone
) The zone of the load-balancer.
- Assign
Flexible boolIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- Assign
Flexible boolIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- Description string
- The description of the load-balancer.
- Ip
Address string - The load-balancer public IPv4 Address.
- Ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- Ip
Ids []string - The List of IP IDs to attach to the Load Balancer.
- Ipv6Address string
- The load-balancer public IPv6 Address.
- Name string
- The name of the load-balancer.
- Organization
Id string - The organization ID the load-balancer is associated with.
- Private
Networks []LoadbalancerPrivate Network Args - List of private network to connect with your load balancer
- Project
Id string project_id
) The ID of the project the load-balancer is associated with.- Region string
- The region of the resource
- Release
Ip bool - The release_ip allow release the ip address associated with the load-balancers.
- Ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- []string
- The tags associated with the load-balancers.
- Type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- Zone string
zone
) The zone of the load-balancer.
- assign
Flexible BooleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible BooleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description String
- The description of the load-balancer.
- ip
Address String - The load-balancer public IPv4 Address.
- ip
Id String The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids List<String> - The List of IP IDs to attach to the Load Balancer.
- ipv6Address String
- The load-balancer public IPv6 Address.
- name String
- The name of the load-balancer.
- organization
Id String - The organization ID the load-balancer is associated with.
- private
Networks List<LoadbalancerPrivate Network> - List of private network to connect with your load balancer
- project
Id String project_id
) The ID of the project the load-balancer is associated with.- region String
- The region of the resource
- release
Ip Boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility StringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<String>
- The tags associated with the load-balancers.
- type String
- The type of the load-balancer. Please check the migration section to upgrade the type.
- zone String
zone
) The zone of the load-balancer.
- assign
Flexible booleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible booleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description string
- The description of the load-balancer.
- ip
Address string - The load-balancer public IPv4 Address.
- ip
Id string The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids string[] - The List of IP IDs to attach to the Load Balancer.
- ipv6Address string
- The load-balancer public IPv6 Address.
- name string
- The name of the load-balancer.
- organization
Id string - The organization ID the load-balancer is associated with.
- private
Networks LoadbalancerPrivate Network[] - List of private network to connect with your load balancer
- project
Id string project_id
) The ID of the project the load-balancer is associated with.- region string
- The region of the resource
- release
Ip boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility stringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- string[]
- The tags associated with the load-balancers.
- type string
- The type of the load-balancer. Please check the migration section to upgrade the type.
- zone string
zone
) The zone of the load-balancer.
- assign_
flexible_ boolip - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign_
flexible_ boolipv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description str
- The description of the load-balancer.
- ip_
address str - The load-balancer public IPv4 Address.
- ip_
id str The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip_
ids Sequence[str] - The List of IP IDs to attach to the Load Balancer.
- ipv6_
address str - The load-balancer public IPv6 Address.
- name str
- The name of the load-balancer.
- organization_
id str - The organization ID the load-balancer is associated with.
- private_
networks Sequence[LoadbalancerPrivate Network Args] - List of private network to connect with your load balancer
- project_
id str project_id
) The ID of the project the load-balancer is associated with.- region str
- The region of the resource
- release_
ip bool - The release_ip allow release the ip address associated with the load-balancers.
- ssl_
compatibility_ strlevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- Sequence[str]
- The tags associated with the load-balancers.
- type str
- The type of the load-balancer. Please check the migration section to upgrade the type.
- zone str
zone
) The zone of the load-balancer.
- assign
Flexible BooleanIp - Defines whether to automatically assign a flexible public IP to the load-balancer.
- assign
Flexible BooleanIpv6 - Defines whether to automatically assign a flexible public IPv6 to the load-balancer.
- description String
- The description of the load-balancer.
- ip
Address String - The load-balancer public IPv4 Address.
- ip
Id String The ID of the associated LB IP. See below.
Important: Updates to
ip_id
will recreate the load-balancer.- ip
Ids List<String> - The List of IP IDs to attach to the Load Balancer.
- ipv6Address String
- The load-balancer public IPv6 Address.
- name String
- The name of the load-balancer.
- organization
Id String - The organization ID the load-balancer is associated with.
- private
Networks List<Property Map> - List of private network to connect with your load balancer
- project
Id String project_id
) The ID of the project the load-balancer is associated with.- region String
- The region of the resource
- release
Ip Boolean - The release_ip allow release the ip address associated with the load-balancers.
- ssl
Compatibility StringLevel - Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
- List<String>
- The tags associated with the load-balancers.
- type String
- The type of the load-balancer. Please check the migration section to upgrade the type.
- zone String
zone
) The zone of the load-balancer.
Supporting Types
LoadbalancerPrivateNetwork, LoadbalancerPrivateNetworkArgs
- Private
Network stringId - (Required) The ID of the Private Network to associate.
- Dhcp
Config bool - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- Static
Config string - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- Status string
- The status of private network connection
- Zone string
zone
) The zone of the load-balancer.
- Private
Network stringId - (Required) The ID of the Private Network to associate.
- Dhcp
Config bool - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- Static
Config string - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- Status string
- The status of private network connection
- Zone string
zone
) The zone of the load-balancer.
- private
Network StringId - (Required) The ID of the Private Network to associate.
- dhcp
Config Boolean - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- static
Config String - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- status String
- The status of private network connection
- zone String
zone
) The zone of the load-balancer.
- private
Network stringId - (Required) The ID of the Private Network to associate.
- dhcp
Config boolean - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- static
Config string - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- status string
- The status of private network connection
- zone string
zone
) The zone of the load-balancer.
- private_
network_ strid - (Required) The ID of the Private Network to associate.
- dhcp_
config bool - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- static_
config str - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- status str
- The status of private network connection
- zone str
zone
) The zone of the load-balancer.
- private
Network StringId - (Required) The ID of the Private Network to associate.
- dhcp
Config Boolean - (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
- static
Config String - (Optional) Define a local ip address of your choice for the load balancer instance. See below.
- status String
- The status of private network connection
- zone String
zone
) The zone of the load-balancer.
Import
Load-Balancer can be imported using the {zone}/{id}
, e.g.
bash
$ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111
Be aware that you will also need to import the scaleway_lb_ip
resource.
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- scaleway pulumiverse/pulumi-scaleway
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
scaleway
Terraform Provider.