Skip to content

Commit 3699e7f

Browse files
authored
feat: consolidate enable parameters to locals and fix invalid count bug (#117)
* feat: consolidate enable parameters to locals * fix: sed did me dirty * fix: address invalid count bug
1 parent f7aa11a commit 3699e7f

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

main.tf

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1+
locals {
2+
enabled = module.this.enabled
3+
create_password = local.enabled && length(var.master_password) == 0
4+
}
5+
16
resource "aws_security_group" "default" {
2-
count = module.this.enabled ? 1 : 0
7+
count = local.enabled ? 1 : 0
38
name = module.this.id
49
description = "Security Group for DocumentDB cluster"
510
vpc_id = var.vpc_id
611
tags = module.this.tags
712
}
813

914
resource "aws_security_group_rule" "egress" {
10-
count = module.this.enabled ? 1 : 0
15+
count = local.enabled ? 1 : 0
1116
type = "egress"
1217
description = "Allow outbound traffic from CIDR blocks"
1318
from_port = var.egress_from_port
@@ -18,7 +23,7 @@ resource "aws_security_group_rule" "egress" {
1823
}
1924

2025
resource "aws_security_group_rule" "allow_ingress_from_self" {
21-
count = module.this.enabled && var.allow_ingress_from_self ? 1 : 0
26+
count = local.enabled && var.allow_ingress_from_self ? 1 : 0
2227
type = "ingress"
2328
description = "Allow traffic within the security group"
2429
from_port = var.db_port
@@ -29,7 +34,7 @@ resource "aws_security_group_rule" "allow_ingress_from_self" {
2934
}
3035

3136
resource "aws_security_group_rule" "ingress_security_groups" {
32-
count = module.this.enabled ? length(var.allowed_security_groups) : 0
37+
count = local.enabled ? length(var.allowed_security_groups) : 0
3338
type = "ingress"
3439
description = "Allow inbound traffic from existing Security Groups"
3540
from_port = var.db_port
@@ -41,7 +46,7 @@ resource "aws_security_group_rule" "ingress_security_groups" {
4146

4247
resource "aws_security_group_rule" "ingress_cidr_blocks" {
4348
type = "ingress"
44-
count = module.this.enabled && length(var.allowed_cidr_blocks) > 0 ? 1 : 0
49+
count = local.enabled && length(var.allowed_cidr_blocks) > 0 ? 1 : 0
4550
description = "Allow inbound traffic from CIDR blocks"
4651
from_port = var.db_port
4752
to_port = var.db_port
@@ -51,13 +56,13 @@ resource "aws_security_group_rule" "ingress_cidr_blocks" {
5156
}
5257

5358
resource "random_password" "password" {
54-
count = module.this.enabled && var.master_password == "" ? 1 : 0
59+
count = local.enabled && local.create_password ? 1 : 0
5560
length = 16
5661
special = false
5762
}
5863

5964
resource "aws_docdb_cluster" "default" {
60-
count = module.this.enabled ? 1 : 0
65+
count = local.enabled ? 1 : 0
6166
cluster_identifier = module.this.id
6267
master_username = var.master_username
6368
master_password = var.master_password != "" ? var.master_password : random_password.password[0].result
@@ -84,7 +89,7 @@ resource "aws_docdb_cluster" "default" {
8489
}
8590

8691
resource "aws_docdb_cluster_instance" "default" {
87-
count = module.this.enabled ? var.cluster_size : 0
92+
count = local.enabled ? var.cluster_size : 0
8893
identifier = "${module.this.id}-${count.index + 1}"
8994
cluster_identifier = join("", aws_docdb_cluster.default[*].id)
9095
apply_immediately = var.apply_immediately
@@ -98,7 +103,7 @@ resource "aws_docdb_cluster_instance" "default" {
98103
}
99104

100105
resource "aws_docdb_subnet_group" "default" {
101-
count = module.this.enabled ? 1 : 0
106+
count = local.enabled ? 1 : 0
102107
name = module.this.id
103108
description = "Allowed subnets for DB cluster instances"
104109
subnet_ids = var.subnet_ids
@@ -107,7 +112,7 @@ resource "aws_docdb_subnet_group" "default" {
107112

108113
# https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-parameter-group-create.html
109114
resource "aws_docdb_cluster_parameter_group" "default" {
110-
count = module.this.enabled ? 1 : 0
115+
count = local.enabled ? 1 : 0
111116
name = module.this.id
112117
description = "DB cluster parameter group"
113118
family = var.cluster_family
@@ -135,7 +140,7 @@ module "dns_master" {
135140
source = "cloudposse/route53-cluster-hostname/aws"
136141
version = "0.13.0"
137142

138-
enabled = module.this.enabled && var.zone_id != "" ? true : false
143+
enabled = local.enabled && var.zone_id != "" ? true : false
139144
dns_name = local.cluster_dns_name
140145
zone_id = var.zone_id
141146
records = coalescelist(aws_docdb_cluster.default[*].endpoint, [""])
@@ -147,7 +152,7 @@ module "dns_replicas" {
147152
source = "cloudposse/route53-cluster-hostname/aws"
148153
version = "0.13.0"
149154

150-
enabled = module.this.enabled && var.zone_id != "" ? true : false
155+
enabled = local.enabled && var.zone_id != "" ? true : false
151156
dns_name = local.replicas_dns_name
152157
zone_id = var.zone_id
153158
records = coalescelist(aws_docdb_cluster.default[*].reader_endpoint, [""])
@@ -159,7 +164,7 @@ module "ssm_write_db_password" {
159164
source = "cloudposse/ssm-parameter-store/aws"
160165
version = "0.13.0"
161166

162-
enabled = module.this.enabled && var.ssm_parameter_enabled == true ? true : false
167+
enabled = local.enabled && var.ssm_parameter_enabled == true ? true : false
163168
parameter_write = [
164169
{
165170
name = format("%s%s", var.ssm_parameter_path_prefix, module.this.id)

0 commit comments

Comments
 (0)