Ctrl K
ComunidadGuías…

infra/network.tf

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
resource "google_compute_network" "tamery" {
  name                    = "tamery"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "tamery" {
  name                     = "tamery-${local.region}"
  region                   = local.region
  network                  = google_compute_network.tamery.id
  ip_cidr_range            = "10.10.0.0/24"
  private_ip_google_access = true
}

resource "google_compute_global_address" "private_services" {
  name          = "google-managed-services-tamery"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  address       = "10.20.0.0"
  prefix_length = 20
  network       = google_compute_network.tamery.id
}

resource "google_service_networking_connection" "private_services" {
  network                 = google_compute_network.tamery.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_services.name]
}

# Customers allowlist these in their database firewalls: replacing one breaks their connections.
resource "google_compute_address" "nat" {
  for_each = toset(["tamery-nat-1", "tamery-nat-2"])

  name   = each.value
  region = local.region

  lifecycle {
    prevent_destroy = true
  }
}

resource "google_compute_router" "tamery" {
  name    = "tamery"
  region  = local.region
  network = google_compute_network.tamery.id
}

resource "google_compute_router_nat" "tamery" {
  name                               = "tamery"
  router                             = google_compute_router.tamery.name
  region                             = local.region
  nat_ip_allocate_option             = "MANUAL_ONLY"
  nat_ips                            = [for address in google_compute_address.nat : address.self_link]
  source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS"
  min_ports_per_vm                   = 1024

  subnetwork {
    name                    = google_compute_subnetwork.tamery.id
    source_ip_ranges_to_nat = ["PRIMARY_IP_RANGE"]
  }
}

# The proxy dials hosts users choose, and Oracle and libsql sockets skip its application-level host guard.
resource "google_compute_firewall" "proxy_deny_private" {
  name               = "tamery-proxy-deny-private"
  network            = google_compute_network.tamery.id
  direction          = "EGRESS"
  priority           = 100
  target_tags        = ["tamery-proxy"]
  destination_ranges = ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10"]

  deny {
    protocol = "all"
  }
}