mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-17 19:20:10 -03:30
[Terraform-Openstack] Add optional Octavia loadbalancer for Master Nodes (#10924)
* terraform-openstack add optional master lb * remove unnecessary spaces * remove unnecessary spaces * fix ci warnings
This commit is contained in:
54
contrib/terraform/openstack/modules/loadbalancer/main.tf
Normal file
54
contrib/terraform/openstack/modules/loadbalancer/main.tf
Normal file
@@ -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 ]
|
||||
}
|
||||
Reference in New Issue
Block a user