resource "oci_network_load_balancer_network_load_balancer" "short" { compartment_id = oci_identity_compartment.ingress.id display_name = "short" subnet_id = oci_core_subnet.ingress.id is_private = false is_preserve_source_destination = false network_security_group_ids = [oci_core_network_security_group.ingress.id] } resource "oci_network_load_balancer_backend_set" "web" { for_each = toset(["80", "443"]) network_load_balancer_id = oci_network_load_balancer_network_load_balancer.short.id name = "web-${each.key}" policy = "FIVE_TUPLE" is_preserve_source = false health_checker { protocol = "TCP" port = tonumber(each.key) interval_in_millis = 10000 timeout_in_millis = 3000 retries = 3 } } resource "oci_network_load_balancer_backend" "web" { for_each = toset(["80", "443"]) network_load_balancer_id = oci_network_load_balancer_network_load_balancer.short.id backend_set_name = oci_network_load_balancer_backend_set.web[each.key].name ip_address = var.tunnel_address port = tonumber(each.key) name = "gateway-${each.key}" } resource "oci_network_load_balancer_listener" "web" { for_each = toset(["80", "443"]) network_load_balancer_id = oci_network_load_balancer_network_load_balancer.short.id name = "web-${each.key}" default_backend_set_name = oci_network_load_balancer_backend_set.web[each.key].name port = tonumber(each.key) protocol = "TCP" } locals { public_ip = one([for ip in oci_network_load_balancer_network_load_balancer.short.ip_addresses : ip.ip_address if ip.is_public]) } output "public_ip" { value = local.public_ip }