diff --git a/terraform/examples/aws_tgw_connect/edge/edge.tf b/terraform/examples/aws_tgw_connect/edge/edge.tf index 19c15fd..f48ccf2 100644 --- a/terraform/examples/aws_tgw_connect/edge/edge.tf +++ b/terraform/examples/aws_tgw_connect/edge/edge.tf @@ -26,7 +26,7 @@ module "Region3EdgeVpc" { wan_name = "${var.topology}-wan" role = "CloudEdge" igw_name = "${var.topology}-Region3VpcIgw" - cidr_block = ["100.3.0.0/16"] + cidr_block = [(var.vpc_info["region3_edge_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-Region3EdgeVpc" } @@ -36,19 +36,19 @@ module "Region3EdgeVpc" { module "Region3EdgeSubnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "100.3.0.0/24" = var.availability_zone[module.Region3EdgeVpc.region]["zone1"] - "100.3.1.0/24" = var.availability_zone[module.Region3EdgeVpc.region]["zone1"] - "100.3.2.0/24" = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] - "100.3.3.0/24" = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] - "100.3.4.0/24" = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.Region3EdgeVpc.region]["zone1"] + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][1]) = var.availability_zone[module.Region3EdgeVpc.region]["zone1"] + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][2]) = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][3]) = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][4]) = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] } subnet_names = { - "100.3.0.0/24" = "${var.topology}-Region3EdgeSubnet0" - "100.3.1.0/24" = "${var.topology}-Region3EdgeSubnet1" - "100.3.2.0/24" = "${var.topology}-Region3EdgeSubnet2" - "100.3.3.0/24" = "${var.topology}-Region3EdgeSubnet3" - "100.3.4.0/24" = "${var.topology}-Region3EdgeSubnetRR" + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][0]) = "${var.topology}-Region3EdgeSubnet0" + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][1]) = "${var.topology}-Region3EdgeSubnet1" + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][2]) = "${var.topology}-Region3EdgeSubnet2" + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][3]) = "${var.topology}-Region3EdgeSubnet3" + (var.vpc_info["region3_edge_vpc"]["subnet_cidr"][4]) = "${var.topology}-Region3EdgeSubnetRR" } vpc_id = module.Region3EdgeVpc.vpc_id[0] @@ -72,7 +72,7 @@ module "Region3CloudEOSEdge1" { "${var.topology}-Region3Edge1Intf0" = module.Region3EdgeSubnet.vpc_subnets[0] "${var.topology}-Region3Edge1Intf1" = module.Region3EdgeSubnet.vpc_subnets[1] } - private_ips = { "0" : ["100.3.0.101"], "1" : ["100.3.1.101"] } + private_ips = { "0" : [(var.vpc_info["region3_edge_vpc"]["interface_ips"][0])], "1" : [(var.vpc_info["region3_edge_vpc"]["interface_ips"][1])] } availability_zone = var.availability_zone[module.Region3EdgeVpc.region]["zone1"] region = module.Region3EdgeVpc.region primary = true @@ -102,7 +102,7 @@ module "Region3CloudEOSEdge2" { "${var.topology}-Region3Edge2Intf0" = module.Region3EdgeSubnet.vpc_subnets[2] "${var.topology}-Region3Edge2Intf1" = module.Region3EdgeSubnet.vpc_subnets[3] } - private_ips = { "0" : ["100.3.2.101"], "1" : ["100.3.3.101"] } + private_ips = { "0" : [(var.vpc_info["region3_edge_vpc"]["interface_ips"][2])], "1" : [(var.vpc_info["region3_edge_vpc"]["interface_ips"][3])] } availability_zone = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] region = module.Region3EdgeVpc.region tags = { @@ -132,7 +132,7 @@ module "CloudEOSRR1" { "${var.topology}-RRIntf0" = module.Region3EdgeSubnet.vpc_subnets[4] } private_ips = { - "0" : ["100.3.4.101"] + "0" : [(var.vpc_info["region3_edge_vpc"]["interface_ips"][4])] } availability_zone = var.availability_zone[module.Region3EdgeVpc.region]["zone2"] region = module.Region3EdgeVpc.region diff --git a/terraform/examples/aws_tgw_connect/edge/variables.tf b/terraform/examples/aws_tgw_connect/edge/variables.tf index b98041e..f80d425 100644 --- a/terraform/examples/aws_tgw_connect/edge/variables.tf +++ b/terraform/examples/aws_tgw_connect/edge/variables.tf @@ -10,6 +10,7 @@ variable "terminattr_ip_cidr" {} variable "dps_controlplane_cidr" {} variable "clos_cv_container" {} variable "wan_cv_container" {} +variable "vpc_info" {} variable "licenses" {} variable "cloudeos_image_offer" {} variable "eos_payg_amis" {} diff --git a/terraform/examples/aws_tgw_connect/input_vars.tfvars b/terraform/examples/aws_tgw_connect/input_vars.tfvars index 4b97827..2238f88 100644 --- a/terraform/examples/aws_tgw_connect/input_vars.tfvars +++ b/terraform/examples/aws_tgw_connect/input_vars.tfvars @@ -112,4 +112,37 @@ host_amis = { us-east-1 : "ami-0b161e951484253ab", us-east-2 : "ami-083064f66d3878ff7" } +# Topology specific variables +vpc_info = { + region3_edge_vpc = { + vpc_cidr = "100.3.0.0/16" + subnet_cidr = ["100.3.0.0/24", "100.3.1.0/24", "100.3.2.0/24", "100.3.3.0/24", "100.3.4.0/24"] + interface_ips = ["100.3.0.101", "100.3.1.101", "100.3.2.101", "100.3.3.101", "100.3.4.101"] + } + region3_leaf1_vpc = { + vpc_cidr = "110.2.0.0/16" + subnet_cidr = ["110.2.0.0/24", "110.2.1.0/24"] + interface_ips = ["110.2.0.101", "110.2.1.101", "110.2.1.102"] + } + region3_leaf2_vpc = { + vpc_cidr = "111.2.0.0/16" + subnet_cidr = ["111.2.0.0/24", "111.2.1.0/24"] + interface_ips = ["111.2.0.101", "111.2.1.101", "111.2.1.102"] + } + edge_vpc = { + vpc_cidr = "100.2.0.0/16" + subnet_cidr = ["100.2.0.0/24", "100.2.1.0/24", "100.2.2.0/24", "100.2.3.0/24"] + interface_ips = ["100.2.0.101", "100.2.1.101", "100.2.2.101", "100.2.3.101"] + } + leaf1_vpc = { + vpc_cidr = "101.1.0.0/16" + subnet_cidr = ["101.1.0.0/24"] + interface_ips = ["101.1.0.102"] + } + leaf2_vpc = { + vpc_cidr = "102.1.0.0/16" + subnet_cidr = ["102.1.0.0/24"] + interface_ips = ["102.1.0.102"] + } +} diff --git a/terraform/examples/aws_tgw_connect/leaf/leaf.tf b/terraform/examples/aws_tgw_connect/leaf/leaf.tf index 46b70b2..12dabb9 100644 --- a/terraform/examples/aws_tgw_connect/leaf/leaf.tf +++ b/terraform/examples/aws_tgw_connect/leaf/leaf.tf @@ -9,7 +9,7 @@ module "Region3Leaf1Vpc" { topology_name = var.topology clos_name = "${var.topology}-clos3" role = "CloudLeaf" - cidr_block = ["110.2.0.0/16"] + cidr_block = [(var.vpc_info["region3_leaf1_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-Region3Leaf1Vpc" Cnps = "dev" @@ -20,12 +20,12 @@ module "Region3Leaf1Vpc" { module "Region3Leaf1Subnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "110.2.0.0/24" = var.availability_zone[module.Region3Leaf1Vpc.region]["zone1"] - "110.2.1.0/24" = var.availability_zone[module.Region3Leaf1Vpc.region]["zone1"] + (var.vpc_info["region3_leaf1_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.Region3Leaf1Vpc.region]["zone1"] + (var.vpc_info["region3_leaf1_vpc"]["subnet_cidr"][1]) = var.availability_zone[module.Region3Leaf1Vpc.region]["zone1"] } subnet_names = { - "110.2.0.0/24" = "${var.topology}-Region3Leaf1Subnet0" - "110.2.1.0/24" = "${var.topology}-Region3Leaf1Subnet1" + (var.vpc_info["region3_leaf1_vpc"]["subnet_cidr"][0]) = "${var.topology}-Region3Leaf1Subnet0" + (var.vpc_info["region3_leaf1_vpc"]["subnet_cidr"][1]) = "${var.topology}-Region3Leaf1Subnet1" } vpc_id = module.Region3Leaf1Vpc.vpc_id[0] topology_name = module.Region3Leaf1Vpc.topology_name @@ -51,7 +51,7 @@ module "Region3Leaf1CloudEOS1" { "${var.topology}-Region3Leaf1CloudEOS1Intf0" = module.Region3Leaf1Subnet.vpc_subnets[0] "${var.topology}-Region3Leaf1CloudEOS1Intf1" = module.Region3Leaf1Subnet.vpc_subnets[1] } - private_ips = { "0" : ["110.2.0.101"], "1" : ["110.2.1.101"] } + private_ips = { "0" : [(var.vpc_info["region3_leaf1_vpc"]["interface_ips"][0])], "1" : [(var.vpc_info["region3_leaf1_vpc"]["interface_ips"][1])] } availability_zone = var.availability_zone[module.Region3Leaf1Vpc.region]["zone1"] region = module.Region3Leaf1Vpc.region tags = { @@ -72,7 +72,7 @@ module "Leaf1DevHost1" { instance_type = "t2.medium" keypair_name = var.keypair_name[module.Region3Leaf1Vpc.region] subnet_id = module.Region3Leaf1Subnet.vpc_subnets[1] - private_ips = ["110.2.1.102"] + private_ips = [(var.vpc_info["region3_leaf1_vpc"]["interface_ips"][2])] tags = { "Name" = "${var.topology}-Leaf1Devhost1" } @@ -84,7 +84,7 @@ module "Region3Leaf2Vpc" { topology_name = var.topology clos_name = "${var.topology}-clos3" role = "CloudLeaf" - cidr_block = ["111.2.0.0/16"] + cidr_block = [(var.vpc_info["region3_leaf2_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-Region3Leaf2Vpc" Cnps = "prod" @@ -95,12 +95,12 @@ module "Region3Leaf2Vpc" { module "Region3Leaf2Subnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "111.2.0.0/24" = var.availability_zone[module.Region3Leaf2Vpc.region]["zone1"] - "111.2.1.0/24" = var.availability_zone[module.Region3Leaf2Vpc.region]["zone1"] + (var.vpc_info["region3_leaf2_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.Region3Leaf2Vpc.region]["zone1"] + (var.vpc_info["region3_leaf2_vpc"]["subnet_cidr"][1]) = var.availability_zone[module.Region3Leaf2Vpc.region]["zone1"] } subnet_names = { - "111.2.0.0/24" = "${var.topology}-Region3Leaf2Subnet0" - "111.2.1.0/24" = "${var.topology}-Region3Leaf2Subnet1" + (var.vpc_info["region3_leaf2_vpc"]["subnet_cidr"][0]) = "${var.topology}-Region3Leaf2Subnet0" + (var.vpc_info["region3_leaf2_vpc"]["subnet_cidr"][1]) = "${var.topology}-Region3Leaf2Subnet1" } vpc_id = module.Region3Leaf2Vpc.vpc_id[0] topology_name = module.Region3Leaf2Vpc.topology_name @@ -126,7 +126,7 @@ module "Region3Leaf2CloudEOS1" { "${var.topology}-Region3Leaf2CloudEOS1Intf0" = module.Region3Leaf2Subnet.vpc_subnets[0] "${var.topology}-Region3Leaf2CloudEOS1Intf1" = module.Region3Leaf2Subnet.vpc_subnets[1] } - private_ips = { "0" : ["111.2.0.101"], "1" : ["111.2.1.101"] } + private_ips = { "0" : [(var.vpc_info["region3_leaf2_vpc"]["interface_ips"][0])], "1" : [(var.vpc_info["region3_leaf2_vpc"]["interface_ips"][1])] } availability_zone = var.availability_zone[module.Region3Leaf2Vpc.region]["zone1"] region = module.Region3Leaf2Vpc.region tags = { @@ -147,7 +147,7 @@ module "Leaf1ProdHost1" { instance_type = "t2.medium" keypair_name = var.keypair_name[module.Region3Leaf2Vpc.region] subnet_id = module.Region3Leaf2Subnet.vpc_subnets[1] - private_ips = ["111.2.1.102"] + private_ips = [(var.vpc_info["region3_leaf2_vpc"]["interface_ips"][2])] tags = { "Name" = "${var.topology}-Leaf2Devhost1" } diff --git a/terraform/examples/aws_tgw_connect/leaf/variables.tf b/terraform/examples/aws_tgw_connect/leaf/variables.tf index b98041e..f80d425 100644 --- a/terraform/examples/aws_tgw_connect/leaf/variables.tf +++ b/terraform/examples/aws_tgw_connect/leaf/variables.tf @@ -10,6 +10,7 @@ variable "terminattr_ip_cidr" {} variable "dps_controlplane_cidr" {} variable "clos_cv_container" {} variable "wan_cv_container" {} +variable "vpc_info" {} variable "licenses" {} variable "cloudeos_image_offer" {} variable "eos_payg_amis" {} diff --git a/terraform/examples/aws_tgw_connect/tgwAndTopo/tgwtopocloudeos.tf b/terraform/examples/aws_tgw_connect/tgwAndTopo/tgwtopocloudeos.tf index 765801f..7ecb1aa 100644 --- a/terraform/examples/aws_tgw_connect/tgwAndTopo/tgwtopocloudeos.tf +++ b/terraform/examples/aws_tgw_connect/tgwAndTopo/tgwtopocloudeos.tf @@ -46,7 +46,7 @@ module "EdgeVpc" { wan_name = "${var.topology}-wan" role = "CloudEdge" igw_name = "${var.topology}-VpcIgw" - cidr_block = ["100.2.0.0/16"] + cidr_block = [(var.vpc_info["edge_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-EdgeVpc" } @@ -59,16 +59,16 @@ module "EdgeVpc" { module "EdgeSubnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "100.2.0.0/24" = var.availability_zone[module.EdgeVpc.region]["zone1"] - "100.2.1.0/24" = var.availability_zone[module.EdgeVpc.region]["zone1"] - "100.2.2.0/24" = var.availability_zone[module.EdgeVpc.region]["zone2"] - "100.2.3.0/24" = var.availability_zone[module.EdgeVpc.region]["zone2"] + (var.vpc_info["edge_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.EdgeVpc.region]["zone1"] + (var.vpc_info["edge_vpc"]["subnet_cidr"][1]) = var.availability_zone[module.EdgeVpc.region]["zone1"] + (var.vpc_info["edge_vpc"]["subnet_cidr"][2]) = var.availability_zone[module.EdgeVpc.region]["zone2"] + (var.vpc_info["edge_vpc"]["subnet_cidr"][3]) = var.availability_zone[module.EdgeVpc.region]["zone2"] } subnet_names = { - "100.2.0.0/24" = "${var.topology}-EdgeSubnet0" - "100.2.1.0/24" = "${var.topology}-EdgeSubnet1" - "100.2.2.0/24" = "${var.topology}-EdgeSubnet2" - "100.2.3.0/24" = "${var.topology}-EdgeSubnet3" + (var.vpc_info["edge_vpc"]["subnet_cidr"][0]) = "${var.topology}-EdgeSubnet0" + (var.vpc_info["edge_vpc"]["subnet_cidr"][1]) = "${var.topology}-EdgeSubnet1" + (var.vpc_info["edge_vpc"]["subnet_cidr"][2]) = "${var.topology}-EdgeSubnet2" + (var.vpc_info["edge_vpc"]["subnet_cidr"][3]) = "${var.topology}-EdgeSubnet3" } vpc_id = module.EdgeVpc.vpc_id[0] topology_name = module.EdgeVpc.topology_name @@ -91,7 +91,7 @@ module "CloudEOSEdge1" { "${var.topology}-Edge1Intf0" = module.EdgeSubnet.vpc_subnets[0] "${var.topology}-Edge1Intf1" = module.EdgeSubnet.vpc_subnets[1] } - private_ips = { "0" : ["100.2.0.101"], "1" : ["100.2.1.101"] } + private_ips = { "0" : [(var.vpc_info["edge_vpc"]["interface_ips"][0])] , "1" : [(var.vpc_info["edge_vpc"]["interface_ips"][1])] } availability_zone = var.availability_zone[module.EdgeVpc.region]["zone1"] region = module.EdgeVpc.region tags = { @@ -119,7 +119,7 @@ module "CloudEOSEdge2" { "${var.topology}-Edge2Intf0" = module.EdgeSubnet.vpc_subnets[2] "${var.topology}-Edge2Intf1" = module.EdgeSubnet.vpc_subnets[3] } - private_ips = { "0" : ["100.2.2.101"], "1" : ["100.2.3.101"] } + private_ips = { "0" : [(var.vpc_info["edge_vpc"]["interface_ips"][2])], "1" : [(var.vpc_info["edge_vpc"]["interface_ips"][3])] } availability_zone = var.availability_zone[module.EdgeVpc.region]["zone2"] region = module.EdgeVpc.region tags = { @@ -138,7 +138,7 @@ module "Leaf1DevTgwVpc" { topology_name = var.topology clos_name = "${var.topology}-clos" role = "CloudLeaf" - cidr_block = ["101.1.0.0/16"] + cidr_block = [(var.vpc_info["leaf1_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-Leaf1DevTgwVpc" Cnps = "dev" @@ -150,10 +150,10 @@ module "Leaf1DevTgwVpc" { module "Leaf1DevSubnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "101.1.0.0/24" = var.availability_zone[module.Leaf1DevTgwVpc.region]["zone1"] + (var.vpc_info["leaf1_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.Leaf1DevTgwVpc.region]["zone1"] } subnet_names = { - "101.1.0.0/24" = "${var.topology}-Leaf1Subnet0" + (var.vpc_info["leaf1_vpc"]["subnet_cidr"][0]) = "${var.topology}-Leaf1Subnet0" } vpc_id = module.Leaf1DevTgwVpc.vpc_id[0] topology_name = module.Leaf1DevTgwVpc.topology_name @@ -167,7 +167,7 @@ module "TgwDevLeaf1host1" { instance_type = "t2.medium" keypair_name = var.keypair_name[var.aws_regions["region2"]] subnet_id = module.Leaf1DevSubnet.vpc_subnets[0] - private_ips = ["101.1.0.102"] + private_ips = [(var.vpc_info["leaf1_vpc"]["interface_ips"][0])] tags = { "Name" = "${var.topology}-TgwLeaf1DevHost1" } @@ -178,7 +178,7 @@ module "Leaf2ProdTgwVpc" { topology_name = var.topology clos_name = "${var.topology}-clos" role = "CloudLeaf" - cidr_block = ["102.1.0.0/16"] + cidr_block = [(var.vpc_info["leaf2_vpc"]["vpc_cidr"])] tags = { Name = "${var.topology}-Leaf2ProdTgwVpc" Cnps = "prod" @@ -190,10 +190,10 @@ module "Leaf2ProdTgwVpc" { module "Leaf2ProdTgwSubnet" { source = "../../../module/cloudeos/aws/subnet" subnet_zones = { - "102.1.0.0/24" = var.availability_zone[module.Leaf2ProdTgwVpc.region]["zone1"] + (var.vpc_info["leaf2_vpc"]["subnet_cidr"][0]) = var.availability_zone[module.Leaf2ProdTgwVpc.region]["zone1"] } subnet_names = { - "102.1.0.0/24" = "${var.topology}-Leaf2Subnet0" + (var.vpc_info["leaf2_vpc"]["subnet_cidr"][0]) = "${var.topology}-Leaf2Subnet0" } vpc_id = module.Leaf2ProdTgwVpc.vpc_id[0] topology_name = module.Leaf2ProdTgwVpc.topology_name @@ -207,7 +207,7 @@ module "TgwProdLeaf4host1" { instance_type = "t2.medium" keypair_name = var.keypair_name[var.aws_regions["region2"]] subnet_id = module.Leaf2ProdTgwSubnet.vpc_subnets[0] - private_ips = ["102.1.0.102"] + private_ips = [(var.vpc_info["leaf2_vpc"]["interface_ips"][0])] tags = { "Name" = "${var.topology}-TgwLeaf2ProdHost1" } @@ -323,4 +323,4 @@ output tgw_route_table_id { } output EdgeNames { value = { "Edge1" : local.Edge1, "Edge2" : local.Edge2 } -} \ No newline at end of file +} diff --git a/terraform/examples/aws_tgw_connect/tgwAndTopo/variables.tf b/terraform/examples/aws_tgw_connect/tgwAndTopo/variables.tf index b98041e..f80d425 100644 --- a/terraform/examples/aws_tgw_connect/tgwAndTopo/variables.tf +++ b/terraform/examples/aws_tgw_connect/tgwAndTopo/variables.tf @@ -10,6 +10,7 @@ variable "terminattr_ip_cidr" {} variable "dps_controlplane_cidr" {} variable "clos_cv_container" {} variable "wan_cv_container" {} +variable "vpc_info" {} variable "licenses" {} variable "cloudeos_image_offer" {} variable "eos_payg_amis" {}