terraform-aws-modules / terraform-aws-vpc

Terraform module to create AWS VPC resources 🇺🇦
https://registry.terraform.io/modules/terraform-aws-modules/vpc/aws
Apache License 2.0
2.99k stars 4.44k forks source link

feat: Add enable_public_igw_route flag to optionally create public route tables to internet gateway #1122

Open pjaudiomv opened 1 month ago

pjaudiomv commented 1 month ago

Description

Add enable_public_igw_route flag to optionally create public route tables to internet gateway

Motivation and Context

It can be desirable to have both an internet gateway and want to alter the default routes for public subnets through either using vpc endpoints (gwlb) or transit gateways. Offering this simple flag offers flexibility and enables someone to output the public route table ids and add any routes they want, rather than prescribing to specific use cases.

This cant be inside the VPC module because the endpoints are created outside of it and use the private subnets so it would create a circular dependency. By adding enable_public_igw_route flag. it allows someone to alter these routes if wanted.

Example (pseudo)

resource "aws_route" "public_vpce_route" {
  for_each                       = aws_vpc_endpoint.gwlb
  route_table_id              = local.public_rtbl_to_subnet_id_map[each.key]
  destination_cidr_block = "0.0.0.0/0"
  vpc_endpoint_id           = each.value.id
}

Breaking Changes

This is fully backwards compatible and does not introduce any breaking changes.

How Has This Been Tested?

github-actions[bot] commented 3 weeks ago

This PR has been automatically marked as stale because it has been open 30 days with no activity. Remove stale label or comment or this PR will be closed in 10 days