Skip to content

Commit 2e49eee

Browse files
authored
Merge pull request #66 from FairwindsOps/nb/single-cluster-optional-subnet
allow admin subnet to be optional
2 parents 6c493a5 + ba0c85a commit 2e49eee

File tree

3 files changed

+62
-23
lines changed

3 files changed

+62
-23
lines changed

modules/single-cluster/outputs.tf

+20
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,23 @@ output "provisioned_cidrs" {
55
admin_cidr_subnets = local.admin_cidr_subnets
66
}
77
}
8+
9+
output "aws_subnet_ids" {
10+
value = {
11+
"admin" = aws_subnet.admin.*.id
12+
"private" = aws_subnet.private.*.id
13+
"public" = aws_subnet.public.*.id
14+
}
15+
}
16+
17+
output "aws_subnet_admin_ids" {
18+
value = [aws_subnet.admin.*.id]
19+
}
20+
21+
output "aws_subnet_public_ids" {
22+
value = [aws_subnet.public.*.id]
23+
}
24+
25+
output "aws_subnet_private_ids" {
26+
value = [aws_subnet.private.*.id]
27+
}

modules/single-cluster/subnet.tf

+8-20
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
# Subnet creation
22
## Admin
33
resource "aws_subnet" "admin" {
4-
count = local._count_of_availability_zones
4+
count = var.enable_admin_subnet == false ? 0 : local._count_of_availability_zones
55
vpc_id = aws_vpc.kube_vpc.id
66
cidr_block = local.admin_cidr_subnets[count.index]
77
availability_zone = local.avail_zones_list[count.index]
88
tags = merge(
9-
local.tags,
9+
local.admin_subnet_tags,
1010
{
1111
"Name" = "Admin Subnet"
12-
},
12+
}
1313
)
1414
}
1515

16-
output "aws_subnet_admin_ids" {
17-
value = [aws_subnet.admin.*.id]
18-
}
19-
2016
resource "aws_route_table_association" "admin" {
21-
count = local._count_of_availability_zones
17+
count = var.enable_admin_subnet == false ? 0 : local._count_of_availability_zones
2218
subnet_id = element(aws_subnet.admin.*.id, count.index)
2319
route_table_id = element(aws_route_table.private.*.id, count.index)
2420
}
@@ -30,17 +26,13 @@ resource "aws_subnet" "public" {
3026
cidr_block = local.public_cidr_subnets[count.index]
3127
availability_zone = local.avail_zones_list[count.index]
3228
tags = merge(
33-
local.tags,
29+
local.public_subnet_tags,
3430
{
3531
"Name" = "Public Subnet"
36-
},
32+
}
3733
)
3834
}
3935

40-
output "aws_subnet_public_ids" {
41-
value = [aws_subnet.public.*.id]
42-
}
43-
4436
resource "aws_route_table_association" "public" {
4537
count = local._count_of_availability_zones
4638
subnet_id = element(aws_subnet.public.*.id, count.index)
@@ -54,17 +46,13 @@ resource "aws_subnet" "private" {
5446
cidr_block = local.private_cidr_subnets[count.index]
5547
availability_zone = local.avail_zones_list[count.index]
5648
tags = merge(
57-
local.tags,
49+
local.private_subnet_tags,
5850
{
5951
"Name" = "Private Subnet"
60-
},
52+
}
6153
)
6254
}
6355

64-
output "aws_subnet_private_ids" {
65-
value = [aws_subnet.private.*.id]
66-
}
67-
6856
resource "aws_route_table_association" "private" {
6957
count = local._count_of_availability_zones
7058
subnet_id = element(aws_subnet.private.*.id, count.index)

modules/single-cluster/variables.tf

+34-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ variable "private_subnets_list" {
1616
variable "admin_subnets_list" {
1717
type = list(string)
1818
description = "A list of the subnets to create for admin subnets"
19+
default = null
20+
}
21+
22+
variable "enable_admin_subnet" {
23+
type = bool
24+
description = "A true/false value to enable the admin subnets"
25+
default = true
1926
}
2027

2128
variable "vpc_name" {
@@ -45,7 +52,28 @@ variable "vpc_enable_classiclink" {
4552
}
4653

4754
## Tagging Settings
48-
variable "extra_tags" {
55+
variable "extra_tags_global" {
56+
type = map(string)
57+
description = "Map of tags to apply in addition to already predefined tags of the module."
58+
default = {}
59+
}
60+
61+
## Tagging Settings
62+
variable "extra_tags_admin_subnet" {
63+
type = map(string)
64+
description = "Map of tags to apply in addition to already predefined tags of the module."
65+
default = {}
66+
}
67+
68+
## Tagging Settings
69+
variable "extra_tags_public_subnet" {
70+
type = map(string)
71+
description = "Map of tags to apply in addition to already predefined tags of the module."
72+
default = {}
73+
}
74+
75+
## Tagging Settings
76+
variable "extra_tags_private_subnet" {
4977
type = map(string)
5078
description = "Map of tags to apply in addition to already predefined tags of the module."
5179
default = {}
@@ -58,7 +86,10 @@ locals {
5886
"Author" = "Fairwinds"
5987
}
6088

61-
tags = merge(local.default_tags, var.extra_tags)
89+
tags = merge(local.default_tags, var.extra_tags_global)
90+
admin_subnet_tags = merge(local.tags, var.extra_tags_admin_subnet)
91+
private_subnet_tags = merge(local.tags, var.extra_tags_private_subnet)
92+
public_subnet_tags = merge(local.tags, var.extra_tags_public_subnet)
6293
avail_zones_list = split(",", var.availability_zones)
6394
}
6495

@@ -73,7 +104,7 @@ locals {
73104
_count_of_availability_zones = length(local.avail_zones_list)
74105
_public_subnets_count_minus_az_count = length(var.public_subnets_list) - local._count_of_availability_zones
75106
_private_subnets_count_minus_az_count = length(var.private_subnets_list) - local._count_of_availability_zones
76-
_admin_subnets_count_minus_az_count = length(var.admin_subnets_list) - local._count_of_availability_zones
107+
_admin_subnets_count_minus_az_count = var.enable_admin_subnet == false ? 0 : length(var.admin_subnets_list) - local._count_of_availability_zones
77108
}
78109

79110
resource "null_resource" "validate_public_subnet_count_matches_availability_zone_count" {

0 commit comments

Comments
 (0)