code-dumps/terraform/subnet-map.tf

137 lines
3.0 KiB
Terraform
Raw Normal View History

2020-03-25 15:23:04 +08:00
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
}