quorate/terraform/external/short/nlb.tf

49 lines
1.9 KiB
Terraform
Raw Normal View History

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
}