Files

79 lines
1.9 KiB
Terraform

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]
}