From 01f4d5f683e49d5c7c02ddeb68b63c343d3d0000 Mon Sep 17 00:00:00 2001 From: Neel Kuila Date: Wed, 16 Oct 2024 12:22:45 -0400 Subject: [PATCH 1/5] add flag for ipv6 --- main.tf | 13 +++++++------ variables.tf | 6 ++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/main.tf b/main.tf index b7bedf0..8813b5c 100644 --- a/main.tf +++ b/main.tf @@ -6,7 +6,7 @@ resource "aws_vpc" "default" { cidr_block = var.cidr_block enable_dns_support = true enable_dns_hostnames = true - assign_generated_ipv6_cidr_block = true + assign_generated_ipv6_cidr_block = var.ipv6_enabled tags = merge( { @@ -61,7 +61,7 @@ resource "aws_route" "private" { resource "aws_route" "ipv6_private" { - count = length(var.private_subnet_cidr_blocks) + count = var.ipv6_enabled ? length(var.private_subnet_cidr_blocks) : 0 route_table_id = aws_route_table.private[count.index].id destination_ipv6_cidr_block = "::/0" @@ -86,6 +86,7 @@ resource "aws_route" "public" { } resource "aws_route" "ipv6_public" { + count = var.ipv6_enabled ? 1 : 0 route_table_id = aws_route_table.public.id destination_ipv6_cidr_block = "::/0" gateway_id = aws_internet_gateway.default.id @@ -95,12 +96,12 @@ resource "aws_subnet" "private" { count = length(var.private_subnet_cidr_blocks) vpc_id = aws_vpc.default.id - assign_ipv6_address_on_creation = true + assign_ipv6_address_on_creation = var.ipv6_enabled cidr_block = var.private_subnet_cidr_blocks[count.index] enable_dns64 = true enable_resource_name_dns_aaaa_record_on_launch = true enable_resource_name_dns_a_record_on_launch = true - ipv6_cidr_block = cidrsubnet(aws_vpc.default.ipv6_cidr_block, 8, var.private_subnet_ipv6_prefix_indices[count.index]) + ipv6_cidr_block = var.ipv6_enabled ? cidrsubnet(aws_vpc.default.ipv6_cidr_block, 8, var.private_subnet_ipv6_prefix_indices[count.index]) : null availability_zone = var.availability_zones[count.index] private_dns_hostname_type_on_launch = "resource-name" @@ -116,12 +117,12 @@ resource "aws_subnet" "public" { count = length(var.public_subnet_cidr_blocks) vpc_id = aws_vpc.default.id - assign_ipv6_address_on_creation = true + assign_ipv6_address_on_creation = var.ipv6_enabled cidr_block = var.public_subnet_cidr_blocks[count.index] enable_dns64 = true enable_resource_name_dns_aaaa_record_on_launch = true enable_resource_name_dns_a_record_on_launch = true - ipv6_cidr_block = cidrsubnet(aws_vpc.default.ipv6_cidr_block, 8, var.public_subnet_ipv6_prefix_indices[count.index]) + ipv6_cidr_block = var.ipv6_enabled ? cidrsubnet(aws_vpc.default.ipv6_cidr_block, 8, var.public_subnet_ipv6_prefix_indices[count.index]) : null availability_zone = var.availability_zones[count.index] map_public_ip_on_launch = true private_dns_hostname_type_on_launch = "resource-name" diff --git a/variables.tf b/variables.tf index 1d9fdbb..9ea5f6f 100644 --- a/variables.tf +++ b/variables.tf @@ -21,6 +21,12 @@ variable "public_subnet_cidr_blocks" { description = "A list of CIDR ranges for public subnets." } +variable "ipv6_enabled" { + type = bool + default = true + description = "value" +} + variable "public_subnet_ipv6_prefix_indices" { type = list(number) default = [0, 2] From 01c2e6b7352fa071bc22aad1791b81d0fd923b2a Mon Sep 17 00:00:00 2001 From: Neel Kuila Date: Tue, 22 Oct 2024 15:09:10 -0400 Subject: [PATCH 2/5] remove nat gw if no public subnets --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 8813b5c..adca898 100644 --- a/main.tf +++ b/main.tf @@ -56,7 +56,7 @@ resource "aws_route" "private" { route_table_id = aws_route_table.private[count.index].id destination_cidr_block = "0.0.0.0/0" - nat_gateway_id = aws_nat_gateway.default[count.index].id + nat_gateway_id = length(var.public_subnet_cidr_blocks) > 0 ? aws_nat_gateway.default[count.index].id : null } From bd6c8f6017742d9f61e1daea5da3251e395adaec Mon Sep 17 00:00:00 2001 From: Neel Kuila Date: Tue, 22 Oct 2024 15:57:58 -0400 Subject: [PATCH 3/5] move count logic --- main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index d26aa14..4d9d0b7 100644 --- a/main.tf +++ b/main.tf @@ -51,11 +51,11 @@ resource "aws_route_table" "private" { } resource "aws_route" "private" { - count = length(var.private_subnet_cidr_blocks) + count = lenght(var.public_subnet_cidr_blocks) > 0 ? length(var.private_subnet_cidr_blocks) : 0 route_table_id = aws_route_table.private[count.index].id destination_cidr_block = "0.0.0.0/0" - nat_gateway_id = length(var.public_subnet_cidr_blocks) > 0 ? aws_nat_gateway.default[count.index].id : null + nat_gateway_id = aws_nat_gateway.default[count.index].id } From 726a3ba120fa9ed279e9e8129d95082aef076440 Mon Sep 17 00:00:00 2001 From: Neel Kuila Date: Tue, 22 Oct 2024 15:59:36 -0400 Subject: [PATCH 4/5] move count logic --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 4d9d0b7..a903181 100644 --- a/main.tf +++ b/main.tf @@ -51,7 +51,7 @@ resource "aws_route_table" "private" { } resource "aws_route" "private" { - count = lenght(var.public_subnet_cidr_blocks) > 0 ? length(var.private_subnet_cidr_blocks) : 0 + count = length(var.public_subnet_cidr_blocks) > 0 ? length(var.private_subnet_cidr_blocks) : 0 route_table_id = aws_route_table.private[count.index].id destination_cidr_block = "0.0.0.0/0" From fb48d7f91f384cf40068d7634e4f832c3a2addba Mon Sep 17 00:00:00 2001 From: Neel Kuila Date: Wed, 23 Oct 2024 11:05:16 -0400 Subject: [PATCH 5/5] disable dns64 and aaaa record --- main.tf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.tf b/main.tf index a903181..2e94930 100644 --- a/main.tf +++ b/main.tf @@ -81,8 +81,8 @@ resource "aws_subnet" "private" { vpc_id = aws_vpc.default.id cidr_block = var.private_subnet_cidr_blocks[count.index] - enable_dns64 = true - enable_resource_name_dns_aaaa_record_on_launch = true + enable_dns64 = false + enable_resource_name_dns_aaaa_record_on_launch = false enable_resource_name_dns_a_record_on_launch = true availability_zone = var.availability_zones[count.index] private_dns_hostname_type_on_launch = "resource-name" @@ -100,8 +100,8 @@ resource "aws_subnet" "public" { vpc_id = aws_vpc.default.id cidr_block = var.public_subnet_cidr_blocks[count.index] - enable_dns64 = true - enable_resource_name_dns_aaaa_record_on_launch = true + enable_dns64 = false + enable_resource_name_dns_aaaa_record_on_launch = false enable_resource_name_dns_a_record_on_launch = true availability_zone = var.availability_zones[count.index] map_public_ip_on_launch = true