3-networks-dual-svpc/modules/dedicated_interconnect/main.tf (93 lines of code) (raw):
/**
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
locals {
suffix1 = lookup(var.cloud_router_labels, "vlan_1", "cr1")
suffix2 = lookup(var.cloud_router_labels, "vlan_2", "cr2")
suffix3 = lookup(var.cloud_router_labels, "vlan_3", "cr3")
suffix4 = lookup(var.cloud_router_labels, "vlan_4", "cr4")
}
module "interconnect_attachment1_region1" {
source = "terraform-google-modules/cloud-router/google//modules/interconnect_attachment"
version = "~> 6.0"
name = "vl-${var.region1_interconnect1_onprem_dc}-${var.region1_interconnect1_location}-${var.vpc_name}-${var.region1}-${local.suffix1}"
project = var.interconnect_project_id
region = var.region1
router = var.region1_router1_name
interconnect = var.region1_interconnect1
candidate_subnets = var.region1_interconnect1_candidate_subnets
vlan_tag8021q = var.region1_interconnect1_vlan_tag8021q
interface = {
name = "if-${var.region1_interconnect1_location}-${var.vpc_name}-${var.region1}-${local.suffix1}"
}
peer = {
name = var.peer_name
peer_asn = var.peer_asn
}
}
module "interconnect_attachment2_region1" {
source = "terraform-google-modules/cloud-router/google//modules/interconnect_attachment"
version = "~> 6.0"
name = "vl-${var.region1_interconnect2_onprem_dc}-${var.region1_interconnect2_location}-${var.vpc_name}-${var.region1}-${local.suffix2}"
project = var.interconnect_project_id
region = var.region1
router = var.region1_router2_name
interconnect = var.region1_interconnect2
candidate_subnets = var.region1_interconnect2_candidate_subnets
vlan_tag8021q = var.region1_interconnect2_vlan_tag8021q
interface = {
name = "if-${var.region1_interconnect2_location}-${var.vpc_name}-${var.region1}-${local.suffix2}"
}
peer = {
name = var.peer_name
peer_asn = var.peer_asn
}
}
module "interconnect_attachment1_region2" {
source = "terraform-google-modules/cloud-router/google//modules/interconnect_attachment"
version = "~> 6.0"
name = "vl-${var.region2_interconnect1_onprem_dc}-${var.region2_interconnect1_location}-${var.vpc_name}-${var.region2}-${local.suffix3}"
project = var.interconnect_project_id
region = var.region2
router = var.region2_router1_name
interconnect = var.region2_interconnect1
candidate_subnets = var.region2_interconnect1_candidate_subnets
vlan_tag8021q = var.region2_interconnect1_vlan_tag8021q
interface = {
name = "if-${var.region2_interconnect1_location}-${var.vpc_name}-${var.region2}-${local.suffix3}"
}
peer = {
name = var.peer_name
peer_asn = var.peer_asn
}
}
module "interconnect_attachment2_region2" {
source = "terraform-google-modules/cloud-router/google//modules/interconnect_attachment"
version = "~> 6.0"
name = "vl-${var.region2_interconnect2_onprem_dc}-${var.region2_interconnect2_location}-${var.vpc_name}-${var.region2}-${local.suffix4}"
project = var.interconnect_project_id
region = var.region2
router = var.region2_router2_name
interconnect = var.region2_interconnect2
candidate_subnets = var.region2_interconnect2_candidate_subnets
vlan_tag8021q = var.region2_interconnect2_vlan_tag8021q
interface = {
name = "if-${var.region2_interconnect2_location}-${var.vpc_name}-${var.region2}-${local.suffix4}"
}
peer = {
name = var.peer_name
peer_asn = var.peer_asn
}
}