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_ipstructure 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_bgpor5_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