resource "google_dns_record_set" "router_ext" { count = var.dns_managed_zone != "" ? 1 : 0 name = "${var.local_fqdn}." type = "A" ttl = 300 managed_zone = var.dns_managed_zone project = var.dns_project != "" ? var.dns_project : var.project_id rrdatas = [google_compute_address.ext.address] } resource "google_compute_network" "ext" { name = "${var.name}-ext" auto_create_subnetworks = false } resource "google_compute_subnetwork" "ext" { name = "${var.name}-ext" network = google_compute_network.ext.id region = var.region ip_cidr_range = var.ext_subnet_cidr } resource "google_compute_network" "internal" { name = "${var.name}-int" auto_create_subnetworks = false } resource "google_compute_subnetwork" "int" { name = "${var.name}-int" network = google_compute_network.internal.id region = var.region ip_cidr_range = var.int_subnet_cidr } resource "google_compute_subnetwork" "workload" { name = "${var.name}-workload" network = google_compute_network.internal.id region = var.region ip_cidr_range = var.workload_subnet_cidr } resource "google_compute_firewall" "router_ext" { name = "${var.name}-ext-allow-router" network = google_compute_network.ext.name allow { protocol = "tcp" ports = ["22"] } allow { protocol = "udp" ports = ["500", "4500"] } dynamic "allow" { for_each = var.wireguard_enabled ? [1] : [] content { protocol = "udp" ports = [tostring(var.wireguard_listen_port)] } } source_ranges = ["0.0.0.0/0"] target_tags = ["${var.name}-router"] } resource "google_compute_firewall" "internal_allow_all" { name = "${var.name}-int-allow-internal" network = google_compute_network.internal.name allow { protocol = "all" } source_ranges = [var.int_subnet_cidr, var.workload_subnet_cidr] }