Skip to content

Commit 8997520

Browse files
author
Diego Rodriguez
authored
fix: Correctly manage route tables for database subnets when multiple NAT gateways present (#518)
1 parent 67fd404 commit 8997520

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

main.tf

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,13 +223,17 @@ resource "aws_route_table" "private" {
223223
# Database routes
224224
#################
225225
resource "aws_route_table" "database" {
226-
count = var.create_vpc && var.create_database_subnet_route_table && length(var.database_subnets) > 0 ? 1 : 0
226+
count = var.create_vpc && var.create_database_subnet_route_table && length(var.database_subnets) > 0 ? var.single_nat_gateway || var.create_database_internet_gateway_route ? 1 : length(var.database_subnets) : 0
227227

228228
vpc_id = local.vpc_id
229229

230230
tags = merge(
231231
{
232-
"Name" = "${var.name}-${var.database_subnet_suffix}"
232+
"Name" = var.single_nat_gateway || var.create_database_internet_gateway_route ? "${var.name}-${var.database_subnet_suffix}" : format(
233+
"%s-${var.database_subnet_suffix}-%s",
234+
var.name,
235+
element(var.azs, count.index),
236+
)
233237
},
234238
var.tags,
235239
var.database_route_table_tags,
@@ -249,7 +253,7 @@ resource "aws_route" "database_internet_gateway" {
249253
}
250254

251255
resource "aws_route" "database_nat_gateway" {
252-
count = var.create_vpc && var.create_database_subnet_route_table && length(var.database_subnets) > 0 && false == var.create_database_internet_gateway_route && var.create_database_nat_gateway_route && var.enable_nat_gateway ? local.nat_gateway_count : 0
256+
count = var.create_vpc && var.create_database_subnet_route_table && length(var.database_subnets) > 0 && false == var.create_database_internet_gateway_route && var.create_database_nat_gateway_route && var.enable_nat_gateway ? var.single_nat_gateway ? 1 : length(var.database_subnets) : 0
253257

254258
route_table_id = element(aws_route_table.database.*.id, count.index)
255259
destination_cidr_block = "0.0.0.0/0"
@@ -1007,7 +1011,7 @@ resource "aws_route_table_association" "database" {
10071011
subnet_id = element(aws_subnet.database.*.id, count.index)
10081012
route_table_id = element(
10091013
coalescelist(aws_route_table.database.*.id, aws_route_table.private.*.id),
1010-
var.single_nat_gateway || var.create_database_subnet_route_table ? 0 : count.index,
1014+
var.create_database_subnet_route_table ? var.single_nat_gateway || var.create_database_internet_gateway_route ? 0 : count.index : count.index,
10111015
)
10121016
}
10131017

0 commit comments

Comments
 (0)