Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
terraform-aws-vpc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Terraform Modules
terraform-aws-vpc
Commits
323a995a
Commit
323a995a
authored
Apr 05, 2018
by
Loren Gordon
Committed by
Anton Babenko
Apr 05, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Creates a single private route table when single_nat_gateway is true (#83)
Fixes #82
parent
b226dd21
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
11 deletions
+12
-11
main.tf
main.tf
+12
-11
No files found.
main.tf
View file @
323a995a
...
...
@@ -4,6 +4,7 @@ terraform {
locals
{
max_subnet_length
=
"
${
max
(
length
(
var
.
private_subnets
),
length
(
var
.
elasticache_subnets
),
length
(
var
.
database_subnets
),
length
(
var
.
redshift_subnets
))
}
"
nat_gateway_count
=
"
${
var
.
single_nat_gateway
?
1
:
local
.
max_subnet_length
}
"
}
######
...
...
@@ -80,11 +81,11 @@ resource "aws_route" "public_internet_gateway" {
# There are so many routing tables as the largest amount of subnets of each type (really?)
#################
resource
"aws_route_table"
"private"
{
count
=
"
${
var
.
create_vpc
&&
local
.
max_subnet_length
>
0
?
local
.
max_subnet_length
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
local
.
max_subnet_length
>
0
?
local
.
nat_gateway_count
:
0
}
"
vpc_id
=
"
${
aws_vpc
.
this
.
id
}
"
tags
=
"
${
merge
(
var
.
tags
,
var
.
private_route_table_tags
,
map
(
"Name"
,
format
(
"%s-private-%s"
,
var
.
name
,
element
(
var
.
azs
,
count
.
index
))))
}
"
tags
=
"
${
merge
(
var
.
tags
,
var
.
private_route_table_tags
,
map
(
"Name"
,
(
var
.
single_nat_gateway
?
"
${
var
.
name
}
-private"
:
format
(
"%s-private-%s"
,
var
.
name
,
element
(
var
.
azs
,
count
.
index
)
))))
}
"
lifecycle
{
# When attaching VPN gateways it is common to define aws_vpn_gateway_route_propagation
...
...
@@ -203,7 +204,7 @@ locals {
}
resource
"aws_eip"
"nat"
{
count
=
"
${
var
.
create_vpc
&&
(
var
.
enable_nat_gateway
&&
!
var
.
reuse_nat_ips
)
?
(
var
.
single_nat_gateway
?
1
:
length
(
var
.
azs
))
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
(
var
.
enable_nat_gateway
&&
!
var
.
reuse_nat_ips
)
?
local
.
nat_gateway_count
:
0
}
"
vpc
=
true
...
...
@@ -211,7 +212,7 @@ resource "aws_eip" "nat" {
}
resource
"aws_nat_gateway"
"this"
{
count
=
"
${
var
.
create_vpc
&&
var
.
enable_nat_gateway
?
(
var
.
single_nat_gateway
?
1
:
length
(
var
.
azs
))
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
var
.
enable_nat_gateway
?
local
.
nat_gateway_count
:
0
}
"
allocation_id
=
"
${
element
(
local
.
nat_gateway_ips
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
))
}
"
subnet_id
=
"
${
element
(
aws_subnet
.
public
.
*
.
id
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
))
}
"
...
...
@@ -222,7 +223,7 @@ resource "aws_nat_gateway" "this" {
}
resource
"aws_route"
"private_nat_gateway"
{
count
=
"
${
var
.
create_vpc
&&
var
.
enable_nat_gateway
?
l
ength
(
var
.
private_subnets
)
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
var
.
enable_nat_gateway
?
l
ocal
.
nat_gateway_count
:
0
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
destination_cidr_block
=
"0.0.0.0/0"
...
...
@@ -246,7 +247,7 @@ resource "aws_vpc_endpoint" "s3" {
}
resource
"aws_vpc_endpoint_route_table_association"
"private_s3"
{
count
=
"
${
var
.
create_vpc
&&
var
.
enable_s3_endpoint
?
l
ength
(
var
.
private_subnets
)
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
var
.
enable_s3_endpoint
?
l
ocal
.
nat_gateway_count
:
0
}
"
vpc_endpoint_id
=
"
${
aws_vpc_endpoint
.
s3
.
id
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
...
...
@@ -276,7 +277,7 @@ resource "aws_vpc_endpoint" "dynamodb" {
}
resource
"aws_vpc_endpoint_route_table_association"
"private_dynamodb"
{
count
=
"
${
var
.
create_vpc
&&
var
.
enable_dynamodb_endpoint
?
l
ength
(
var
.
private_subnets
)
:
0
}
"
count
=
"
${
var
.
create_vpc
&&
var
.
enable_dynamodb_endpoint
?
l
ocal
.
nat_gateway_count
:
0
}
"
vpc_endpoint_id
=
"
${
aws_vpc_endpoint
.
dynamodb
.
id
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
...
...
@@ -296,28 +297,28 @@ resource "aws_route_table_association" "private" {
count
=
"
${
var
.
create_vpc
&&
length
(
var
.
private_subnets
)
>
0
?
length
(
var
.
private_subnets
)
:
0
}
"
subnet_id
=
"
${
element
(
aws_subnet
.
private
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
)
)
}
"
}
resource
"aws_route_table_association"
"database"
{
count
=
"
${
var
.
create_vpc
&&
length
(
var
.
database_subnets
)
>
0
?
length
(
var
.
database_subnets
)
:
0
}
"
subnet_id
=
"
${
element
(
aws_subnet
.
database
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
)
)
}
"
}
resource
"aws_route_table_association"
"redshift"
{
count
=
"
${
var
.
create_vpc
&&
length
(
var
.
redshift_subnets
)
>
0
?
length
(
var
.
redshift_subnets
)
:
0
}
"
subnet_id
=
"
${
element
(
aws_subnet
.
redshift
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
)
)
}
"
}
resource
"aws_route_table_association"
"elasticache"
{
count
=
"
${
var
.
create_vpc
&&
length
(
var
.
elasticache_subnets
)
>
0
?
length
(
var
.
elasticache_subnets
)
:
0
}
"
subnet_id
=
"
${
element
(
aws_subnet
.
elasticache
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
count
.
index
)
}
"
route_table_id
=
"
${
element
(
aws_route_table
.
private
.
*
.
id
,
(
var
.
single_nat_gateway
?
0
:
count
.
index
)
)
}
"
}
resource
"aws_route_table_association"
"public"
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment