1+ locals {
2+ enabled = module. this . enabled
3+ create_password = local. enabled && length (var. master_password ) == 0
4+ }
5+
16resource "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
914resource "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
2025resource "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
3136resource "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
4247resource "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
5358resource "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
5964resource "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
8691resource "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
100105resource "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
109114resource "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