From 166f8f9d17c6748413c90a8cfa934a974ef58133 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Fri, 28 Mar 2025 22:51:02 +0100 Subject: [PATCH] Added DNS resources --- main.tf | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/main.tf b/main.tf index eb0d7a4..4141a22 100644 --- a/main.tf +++ b/main.tf @@ -160,6 +160,104 @@ resource "google_compute_route" "rt_to_on_prem" { next_hop_vpn_tunnel = google_compute_vpn_tunnel.to_lazurowa.id } +# DNS +resource "google_dns_managed_zone" "koszewscy_internal" { + name = "koszewscy-internal" + dns_name = "koszewscy.internal." + + visibility = "private" + + private_visibility_config { + networks { + network_url = google_compute_network.vpc_hub.id + } + } +} + +resource "google_dns_record_set" "vm_hub" { + name = "vm-hub.koszewscy.internal." + managed_zone = google_dns_managed_zone.koszewscy_internal.name + type = "A" + ttl = 60 + + rrdatas = [google_compute_instance.vm_hub.network_interface[0].network_ip] + depends_on = [google_compute_instance.vm_hub] +} + +resource "google_dns_record_set" "vm_spoke" { + name = "vm-spoke.koszewscy.internal." + managed_zone = google_dns_managed_zone.koszewscy_internal.name + type = "A" + ttl = 60 + + rrdatas = [google_compute_instance.vm_spoke.network_interface[0].network_ip] + depends_on = [google_compute_instance.vm_spoke] +} + +resource "google_dns_managed_zone" "koszewscy_external" { + name = "koszewscy-external" + dns_name = "koszewscy.waw.pl." + + visibility = "private" + + private_visibility_config { + networks { + network_url = google_compute_network.vpc_hub.id + } + } + + forwarding_config { + target_name_servers { + ipv4_address = "192.168.2.5" + } + } +} + +resource "google_dns_managed_zone" "koszewscy_internal_spoke" { + name = "koszewscy-internal" + dns_name = "koszewscy.internal." + project = "spoke-network" + + visibility = "private" + + private_visibility_config { + networks { + network_url = google_compute_network.vpc_spoke.id + } + } + + peering_config { + target_network { + network_url = google_compute_network.vpc_hub.id + } + } + + depends_on = [ google_dns_managed_zone.koszewscy_internal ] +} + +resource "google_dns_managed_zone" "koszewscy_external_spoke" { + name = "koszewscy-external" + dns_name = "koszewscy.waw.pl." + project = "spoke-network" + + visibility = "private" + + private_visibility_config { + networks { + network_url = google_compute_network.vpc_spoke.id + } + } + + peering_config { + target_network { + network_url = google_compute_network.vpc_hub.id + } + } + + depends_on = [ google_dns_managed_zone.koszewscy_external ] +} + +# Virtual Machines resource "google_compute_instance" "vm_hub" { name = "vm-hub" machine_type = "e2-micro"