55 lines
2.2 KiB
HCL
55 lines
2.2 KiB
HCL
resource "openstack_lb_loadbalancer_v2" "k8s_lb" {
|
|
count = var.k8s_master_loadbalancer_enabled ? 1 : 0
|
|
name = "${var.cluster_name}-api-loadbalancer"
|
|
vip_subnet_id = var.subnet_id
|
|
}
|
|
|
|
resource "openstack_lb_listener_v2" "api_listener"{
|
|
count = var.k8s_master_loadbalancer_enabled ? 1 : 0
|
|
name = "api-listener"
|
|
protocol = "TCP"
|
|
protocol_port = var.k8s_master_loadbalancer_listener_port
|
|
loadbalancer_id = openstack_lb_loadbalancer_v2.k8s_lb[0].id
|
|
depends_on = [ openstack_lb_loadbalancer_v2.k8s_lb ]
|
|
}
|
|
|
|
resource "openstack_lb_pool_v2" "api_pool" {
|
|
count = var.k8s_master_loadbalancer_enabled ? 1 : 0
|
|
name = "api-pool"
|
|
protocol = "TCP"
|
|
lb_method = "ROUND_ROBIN"
|
|
listener_id = openstack_lb_listener_v2.api_listener[0].id
|
|
depends_on = [ openstack_lb_listener_v2.api_listener ]
|
|
}
|
|
|
|
resource "openstack_lb_member_v2" "lb_member" {
|
|
count = var.k8s_master_loadbalancer_enabled ? length(var.k8s_master_ips) : 0
|
|
name = var.k8s_master_ips[count.index].name
|
|
pool_id = openstack_lb_pool_v2.api_pool[0].id
|
|
address = var.k8s_master_ips[count.index].access_ip_v4
|
|
protocol_port = var.k8s_master_loadbalancer_server_port
|
|
depends_on = [ openstack_lb_pool_v2.api_pool ]
|
|
}
|
|
|
|
resource "openstack_lb_monitor_v2" "monitor" {
|
|
count = var.k8s_master_loadbalancer_enabled ? 1 : 0
|
|
name = "Api Monitor"
|
|
pool_id = openstack_lb_pool_v2.api_pool[0].id
|
|
type = "TCP"
|
|
delay = 10
|
|
timeout = 5
|
|
max_retries = 5
|
|
}
|
|
|
|
resource "openstack_networking_floatingip_v2" "floatip_1" {
|
|
count = var.k8s_master_loadbalancer_enabled && var.k8s_master_loadbalancer_public_ip == "" ? 1 : 0
|
|
pool = var.floatingip_pool
|
|
}
|
|
|
|
resource "openstack_networking_floatingip_associate_v2" "public_ip" {
|
|
count = var.k8s_master_loadbalancer_enabled ? 1 : 0
|
|
floating_ip = var.k8s_master_loadbalancer_public_ip != "" ? var.k8s_master_loadbalancer_public_ip : openstack_networking_floatingip_v2.floatip_1[0].address
|
|
port_id = openstack_lb_loadbalancer_v2.k8s_lb[0].vip_port_id
|
|
depends_on = [ openstack_lb_loadbalancer_v2.k8s_lb ]
|
|
}
|