Up-to-date reference of API arguments for DLB load balancer you can get at documentation portal
opentelekomcloud_lb_loadbalancer_v3¶
Manages a Dedicated loadbalancer resource within OpenTelekomCloud.
Example Usage¶
Basic usage¶
resource "opentelekomcloud_lb_loadbalancer_v3" "lb_1" {
router_id = var.router_id
network_ids = [var.network_id]
availability_zones = [var.az]
tags = {
muh = "kuh"
}
}
Usage with vpc_subnet_v1
¶
resource "opentelekomcloud_vpc_v1" "this" {
name = "test-vpc-1"
cidr = "192.168.0.0/16"
}
resource "opentelekomcloud_vpc_subnet_v1" "this" {
name = "${opentelekomcloud_vpc_v1.this.name}-private"
cidr = cidrsubnet(opentelekomcloud_vpc_v1.this.cidr, 8, 0)
vpc_id = opentelekomcloud_vpc_v1.this.id
gateway_ip = cidrhost(cidrsubnet(opentelekomcloud_vpc_v1.this.cidr, 8, 0), 1)
dns_list = [
"1.1.1.1",
"8.8.8.8",
]
}
resource "opentelekomcloud_lb_loadbalancer_v3" "lb_1" {
subnet_id = opentelekomcloud_vpc_subnet_v1.this.subnet_id
network_ids = [opentelekomcloud_vpc_subnet_v1.this.network_id]
availability_zones = [var.az]
}
Public load balancer (with floating IP)¶
Newly created¶
resource "opentelekomcloud_lb_loadbalancer_v3" "lb_1" {
name = "example-loadbalancer"
subnet_id = var.subnet_id
network_ids = [var.network_id]
availability_zones = [var.az]
public_ip {
bandwidth_name = "lb-bandwidth"
ip_type = "5_bgp"
bandwidth_size = 10
bandwidth_share_type = "PER"
}
}
Already existing opentelekomcloud_networking_floatingip_v2¶
resource "opentelekomcloud_lb_loadbalancer_v3" "loadbalancer_1" {
name = "loadbalancer_1"
router_id = data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id
network_ids = [data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id]
availability_zones = ["eu-de-01"]
public_ip {
id = opentelekomcloud_networking_floatingip_v2.fip_1.id
}
}
resource "opentelekomcloud_networking_floatingip_v2" "fip_1" {}
Or opentelekomcloud_vpc_eip_v1¶
resource "opentelekomcloud_lb_loadbalancer_v3" "loadbalancer_1" {
name = "loadbalancer_1"
router_id = opentelekomcloud_vpc_subnet_v1.this.vpc_id
network_ids = [opentelekomcloud_vpc_subnet_v1.this.network_id]
availability_zones = ["eu-de-01"]
public_ip {
id = opentelekomcloud_vpc_eip_v1.fip_1.id
}
}
resource "opentelekomcloud_vpc_eip_v1" "fip_1" {
bandwidth {
charge_mode = "traffic"
name = "eip"
share_type = "PER"
size = 100
}
publicip {
type = "5_bgp"
}
}
Assign new bandwidth to EIP without recreating¶
resource "opentelekomcloud_lb_loadbalancer_v3" "loadbalancer_1" {
name = "loadbalancer_1"
router_id = data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id
network_ids = [data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id]
availability_zones = ["eu-de-01"]
public_ip {
ip_type = "5_bgp"
bandwidth_name = "lb_band"
bandwidth_size = 10
bandwidth_share_type = "PER"
}
tags = {
muh = "value-create"
kuh = "value-create"
}
}
resource "opentelekomcloud_vpc_bandwidth_v2" "bw" {
name = "lb_band"
size = 20
}
resource "opentelekomcloud_vpc_bandwidth_associate_v2" "associate" {
bandwidth = opentelekomcloud_vpc_bandwidth_v2.bw.id
floating_ips = [opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.public_ip.0.id]
}
Argument Reference¶
The following arguments are supported:
router_id
- (Optional) ID of the router (or VPC) this LoadBalancer belongs to. Changing this creates a new LoadBalancer.subnet_id
- (Optional) The ID of the subnet to which the LoadBalancer belongs. Required when usingvip_address
.
-> router_id
and subnet_id
cannot be left blank at the same time.
network_ids
- (Required) Specifies the subnet Network ID.name
- (Optional) The LoadBalancer name.description
- (Optional) Provides supplementary information about the load balancer.vip_address
- (Optional) The ip address of the LoadBalancer. Changing this creates a new LoadBalancer.
-> Specify both subnet_id
and vip_address
if you want to bind a private IPv4 address to the load balancer.
admin_state_up
- (Optional) The administrative state of the LoadBalancer. A valid value is onlytrue
(UP).ip_target_enable
- (Optional) The value can betrue
(enabled) orfalse
(disabled).
-> If both l4_flavor
and l7_flavor
is empty, both ALB and NLB will be attached to the load balancer with the default flavor. It is advisable to specify one of them, unless your intention is to associate both flavors with the default setting.
l4_flavor
- (Optional) The ID of the Layer-4 flavor.l7_flavor
- (Optional) The ID of the Layer-7 flavor.availability_zones
- (Required) Specifies the availability zones where the LoadBalancer will be located. Changing this creates a new LoadBalancer.public_ip
- (Optional) The elastic IP address of the instance. Thepublic_ip
structure is described below. Changing this creates a new LoadBalancer.
-> Specify public_ip
and either router_id
or subnet_id
if you want to bind a new IPv4 EIP to the load balancer.
The public_ip
block supports:
id
- (Optional) ID of an existing elastic IP. Required when using existing EIP.ip_type
- (Optional) Elastic IP type. The value can be5_bgp
or5_mailbgp
. Required when creating a new EIP.
->
In eu-de
region the value can be 5_bgp
or 5_mailbgp
.
In eu-nl
region the value can only be 5_bgp
and 5_mailbgp
.
In eu-ch2
region the value can only be 5_bgp
.
bandwidth_name
- (Optional) Bandwidth name. Required when creating a new EIP.bandwidth_size
- (Optional) Bandwidth size. Required when creating a new EIP.bandwidth_charge_mode
- (Optional) Bandwidth billing type. Possible value istraffic
.bandwidth_share_type
- (Optional) Bandwidth sharing type. Possible values are:PER
,WHOLE
. Required when creating a new EIP.deletion_protection
- (Optional) Specifies whether to enable deletion protection for the load balancer.true
: Enable deletion protection.false
(default): Disable deletion protection.tags
- (Optional, Map) Tags key/value pairs to associate with the load balancer.
Attributes Reference¶
In addition to all arguments above, the following attributes are exported:
vip_port_id
- The Port ID of the Load Balancer IP.created_at
- The time the LoadBalancer was created.updated_at
- The time the LoadBalancer was last updated.
Import¶
Loadbalancers can be imported using the id
, e.g.
terraform import opentelekomcloud_lb_loadbalancer_v3.lb_1 7b80e108-1636-44e5-aece-986b0052b7dd