From e835730665695979b47aa66ca69f674e72924fe7 Mon Sep 17 00:00:00 2001 From: Julio Diez Date: Mon, 6 Mar 2023 18:02:50 +0100 Subject: [PATCH] Add router BGP peers --- modules/net-ncc/main.tf | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/modules/net-ncc/main.tf b/modules/net-ncc/main.tf index 53177eb2..c6814a11 100644 --- a/modules/net-ncc/main.tf +++ b/modules/net-ncc/main.tf @@ -14,6 +14,20 @@ * limitations under the License. */ +locals { + spoke_vms = flatten([ + for spoke_key, spoke in var.spokes : [ + for nva in spoke.nvas : { + ip = nva.ip + vm = nva.vm + vm_name = element(split("/", nva.vm), length(split("/", nva.vm)) - 1) + spoke_key = spoke_key + spoke = spoke + } + ] + ]) +} + resource "google_network_connectivity_hub" "ncc-hub" { project = var.project_id name = var.name @@ -84,3 +98,31 @@ resource "google_compute_router_interface" "ncc-cr-if2" { private_ip_address = each.value.router.ip2 redundant_interface = google_compute_router_interface.ncc-cr-if1[each.key].name } + +resource "google_compute_router_peer" "ncc-cr-peer1" { + for_each = { + for entry in local.spoke_vms : entry.ip => entry + } + project = var.project_id + name = "peer1-${each.value.vm_name}" + router = google_compute_router.ncc-cr[each.value.spoke_key].name + region = each.value.spoke.region + interface = google_compute_router_interface.ncc-cr-if1[each.value.spoke_key].name + peer_asn = each.value.spoke.router.peer_asn + peer_ip_address = each.key + router_appliance_instance = each.value.vm +} + +resource "google_compute_router_peer" "ncc-cr-peer2" { + for_each = { + for entry in local.spoke_vms : entry.ip => entry + } + project = var.project_id + name = "peer2-${each.value.vm_name}" + router = google_compute_router.ncc-cr[each.value.spoke_key].name + region = each.value.spoke.region + interface = google_compute_router_interface.ncc-cr-if2[each.value.spoke_key].name + peer_asn = each.value.spoke.router.peer_asn + peer_ip_address = each.key + router_appliance_instance = each.value.vm +}