From f02a1af5aedc550c81048cfa880153bedf2a006d Mon Sep 17 00:00:00 2001 From: Alex Poliukh Date: Sun, 3 Nov 2024 07:44:17 +0200 Subject: [PATCH] feat: Add option to create/delete NAT Gateway route for private route tables (#1127) --- README.md | 1 + main.tf | 2 +- variables.tf | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 62a00f119..ac08bbbe7 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,7 @@ No modules. | [create\_igw](#input\_create\_igw) | Controls if an Internet Gateway is created for public subnets and the related routes that connect them | `bool` | `true` | no | | [create\_multiple\_intra\_route\_tables](#input\_create\_multiple\_intra\_route\_tables) | Indicates whether to create a separate route table for each intra subnet. Default: `false` | `bool` | `false` | no | | [create\_multiple\_public\_route\_tables](#input\_create\_multiple\_public\_route\_tables) | Indicates whether to create a separate route table for each public subnet. Default: `false` | `bool` | `false` | no | +| [create\_private\_nat\_gateway\_route](#input\_create\_private\_nat\_gateway\_route) | Controls if a nat gateway route should be created to give internet access to the private subnets | `bool` | `true` | no | | [create\_redshift\_subnet\_group](#input\_create\_redshift\_subnet\_group) | Controls if redshift subnet group should be created | `bool` | `true` | no | | [create\_redshift\_subnet\_route\_table](#input\_create\_redshift\_subnet\_route\_table) | Controls if separate route table for redshift should be created | `bool` | `false` | no | | [create\_vpc](#input\_create\_vpc) | Controls if VPC should be created (it affects almost all resources) | `bool` | `true` | no | diff --git a/main.tf b/main.tf index 05b4f5e22..77cba6715 100644 --- a/main.tf +++ b/main.tf @@ -1102,7 +1102,7 @@ resource "aws_nat_gateway" "this" { } resource "aws_route" "private_nat_gateway" { - count = local.create_vpc && var.enable_nat_gateway ? local.nat_gateway_count : 0 + count = local.create_vpc && var.enable_nat_gateway && var.create_private_nat_gateway_route ? local.nat_gateway_count : 0 route_table_id = element(aws_route_table.private[*].id, count.index) destination_cidr_block = var.nat_gateway_destination_cidr_block diff --git a/variables.tf b/variables.tf index 8bfae5164..39521ae15 100644 --- a/variables.tf +++ b/variables.tf @@ -372,6 +372,12 @@ variable "private_subnet_suffix" { default = "private" } +variable "create_private_nat_gateway_route" { + description = "Controls if a nat gateway route should be created to give internet access to the private subnets" + type = bool + default = true +} + variable "private_subnet_tags" { description = "Additional tags for the private subnets" type = map(string)