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