variable "uat2-subnets" { type = "map" default = { "0" = "UAT2-PUBLIC-01A,10.255.101.0/28,eu-west-1a" "1" = "UAT2-PUBLIC-01B,10.255.101.16/28,eu-west-1b" "2" = "UAT2-PUBLIC-01C,10.255.101.32/28,eu-west-1c" "3" = "UAT2-1APP-01A,10.255.101.48/28,eu-west-1a" "4" = "UAT2-1APP-01B,10.255.101.64/28,eu-west-1b" "5" = "UAT2-1APP-01C,10.255.101.80/28,eu-west-1c" "6" = "UAT2-PRIVATE-APP-01A,10.255.101.96/28,eu-west-1a" "7" = "UAT2-PRIVATE-APP-01B,10.255.101.112/28,eu-west-1b" "8" = "UAT2-PRIVATE-APP-01C,10.255.101.128/28,eu-west-1c" "9" = "UAT2-PRIVATE-DB-1A,10.255.101.144/28,eu-west-1a" "10" = "UAT2-PRIVATE-DB-1B,10.255.101.160/28,eu-west-1b" "11" = "UAT2-PRIVATE-DB-1C,10.255.101.176/28,eu-west-1c" } } resource "aws_subnet" "uat2-subnets-resource" { count = "${length(var.uat2-subnets)}" tags = "${merge(var.globalTags, map("Name",element(split(",",var.uat2-subnets[count.index]),0)))}" vpc_id = "vpc-111" cidr_block = "${element(split(",",var.uat2-subnets[count.index]),1)}" availability_zone = "${element(split(",",var.uat2-subnets[count.index]),2)}" } # Private RT resource "aws_route_table" "PrivateRouteTable1a" { vpc_id = "vpc-111" route { cidr_block = "0.0.0.0/0" nat_gateway_id = "nat-222" } route { cidr_block = "192.168.1.0/24" network_interface_id = "eni-333" } route { cidr_block = "10.254.0.0/16" network_interface_id = "eni-333" } tags { Name = "rt-uat2-private-1a" } } resource "aws_route_table" "PrivateRouteTable1b" { vpc_id = "vpc-111" route { cidr_block = "0.0.0.0/0" nat_gateway_id = "nat-222" } route { cidr_block = "192.168.1.0/24" network_interface_id = "eni-333" } route { cidr_block = "10.254.0.0/16" network_interface_id = "eni-333" } tags { Name = "rt-uat2-private-1b" } } resource "aws_route_table" "PrivateRouteTable1c" { vpc_id = "vpc-111" route { cidr_block = "0.0.0.0/0" nat_gateway_id = "nat-222" } route { cidr_block = "192.168.1.0/24" network_interface_id = "eni-333" } route { cidr_block = "10.254.0.0/16" network_interface_id = "eni-333" } tags { Name = "rt-uat2-private-1c" } } # Public RT resource "aws_route_table" "PublicRouteTable" { vpc_id = "vpc-111" route { cidr_block = "0.0.0.0/0" gateway_id = "igw-111" } route { cidr_block = "192.168.1.0/24" network_interface_id = "eni-333" } route { cidr_block = "10.254.0.0/16" network_interface_id = "eni-333" } tags { Name = "rt-uat2-public" } } # Associate Public RT resource "aws_route_table_association" "PublicRTAsso" { subnet_id = "${element(aws_subnet.uat2-subnets-resource.*.id, count.index)}" route_table_id = "${aws_route_table.PublicRouteTable.id}" count = 3 } # Associate Private RT resource "aws_route_table_association" "PrivateRTAsso" { subnet_id = "${element(aws_subnet.uat2-subnets-resource.*.id, count.index+3)}" route_table_id = "${aws_route_table.PrivateRouteTable1a.id}" count = 9 }