|
|
@ -0,0 +1,54 @@ |
|
|
|
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 ] |
|
|
|
} |