github.com/SUSE/skuba@v1.4.17/ci/infra/openstack/load-balancer.tf (about) 1 resource "openstack_lb_loadbalancer_v2" "lb" { 2 name = "${var.stack_name}-lb" 3 vip_subnet_id = openstack_networking_subnet_v2.subnet.id 4 5 security_group_ids = [ 6 openstack_networking_secgroup_v2.load_balancer.id, 7 ] 8 } 9 10 resource "openstack_lb_listener_v2" "kube_api_listener" { 11 protocol = "TCP" 12 protocol_port = "6443" 13 loadbalancer_id = openstack_lb_loadbalancer_v2.lb.id 14 name = "${var.stack_name}-kube-api-listener" 15 } 16 17 resource "openstack_lb_listener_v2" "gangway_listener" { 18 protocol = "TCP" 19 protocol_port = "32001" 20 loadbalancer_id = openstack_lb_loadbalancer_v2.lb.id 21 name = "${var.stack_name}-gangway-listener" 22 } 23 24 resource "openstack_lb_listener_v2" "dex_listener" { 25 protocol = "TCP" 26 protocol_port = "32000" 27 loadbalancer_id = openstack_lb_loadbalancer_v2.lb.id 28 name = "${var.stack_name}-dex-listener" 29 } 30 31 resource "openstack_lb_pool_v2" "kube_api_pool" { 32 name = "${var.stack_name}-kube-api-pool" 33 protocol = "TCP" 34 lb_method = "ROUND_ROBIN" 35 listener_id = openstack_lb_listener_v2.kube_api_listener.id 36 } 37 38 resource "openstack_lb_pool_v2" "gangway_pool" { 39 name = "${var.stack_name}-gangway-pool" 40 protocol = "TCP" 41 lb_method = "ROUND_ROBIN" 42 listener_id = openstack_lb_listener_v2.gangway_listener.id 43 } 44 45 resource "openstack_lb_pool_v2" "dex_pool" { 46 name = "${var.stack_name}-dex-pool" 47 protocol = "TCP" 48 lb_method = "ROUND_ROBIN" 49 listener_id = openstack_lb_listener_v2.dex_listener.id 50 } 51 52 resource "openstack_lb_member_v2" "kube_api_member" { 53 count = var.masters 54 pool_id = openstack_lb_pool_v2.kube_api_pool.id 55 address = element( 56 openstack_compute_instance_v2.master.*.access_ip_v4, 57 count.index, 58 ) 59 subnet_id = openstack_networking_subnet_v2.subnet.id 60 protocol_port = 6443 61 } 62 63 resource "openstack_lb_member_v2" "gangway_member" { 64 count = var.masters 65 pool_id = openstack_lb_pool_v2.gangway_pool.id 66 address = element( 67 openstack_compute_instance_v2.master.*.access_ip_v4, 68 count.index, 69 ) 70 subnet_id = openstack_networking_subnet_v2.subnet.id 71 protocol_port = 32001 72 } 73 74 resource "openstack_lb_member_v2" "dex_member" { 75 count = var.masters 76 pool_id = openstack_lb_pool_v2.dex_pool.id 77 address = element( 78 openstack_compute_instance_v2.master.*.access_ip_v4, 79 count.index, 80 ) 81 subnet_id = openstack_networking_subnet_v2.subnet.id 82 protocol_port = 32000 83 } 84 85 resource "openstack_networking_floatingip_v2" "lb_ext" { 86 pool = var.external_net 87 port_id = openstack_lb_loadbalancer_v2.lb.vip_port_id 88 } 89 90 resource "openstack_lb_monitor_v2" "kube_api_monitor" { 91 pool_id = openstack_lb_pool_v2.kube_api_pool.id 92 type = "HTTPS" 93 url_path = "/healthz" 94 expected_codes = 200 95 delay = 3 96 timeout = 1 97 max_retries = 1 98 } 99 100 resource "openstack_lb_monitor_v2" "gangway_monitor" { 101 pool_id = openstack_lb_pool_v2.gangway_pool.id 102 type = "HTTPS" 103 url_path = "/" 104 expected_codes = 200 105 delay = 10 106 timeout = 1 107 max_retries = 3 108 } 109 110 resource "openstack_lb_monitor_v2" "dex_monitor" { 111 pool_id = openstack_lb_pool_v2.dex_pool.id 112 type = "HTTPS" 113 url_path = "/healthz" 114 expected_codes = 200 115 delay = 10 116 timeout = 1 117 max_retries = 3 118 } 119