diff --git a/terraform/subnet-map.tf b/terraform/subnet-map.tf new file mode 100644 index 0000000..77d0eb8 --- /dev/null +++ b/terraform/subnet-map.tf @@ -0,0 +1,136 @@ +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 +}