1
+ locals {
2
+ enabled = module. this . enabled
3
+ create_password = local. enabled && length (var. master_password ) == 0
4
+ }
5
+
1
6
resource "aws_security_group" "default" {
2
- count = module . this . enabled ? 1 : 0
7
+ count = local . enabled ? 1 : 0
3
8
name = module. this . id
4
9
description = " Security Group for DocumentDB cluster"
5
10
vpc_id = var. vpc_id
6
11
tags = module. this . tags
7
12
}
8
13
9
14
resource "aws_security_group_rule" "egress" {
10
- count = module . this . enabled ? 1 : 0
15
+ count = local . enabled ? 1 : 0
11
16
type = " egress"
12
17
description = " Allow outbound traffic from CIDR blocks"
13
18
from_port = var. egress_from_port
@@ -18,7 +23,7 @@ resource "aws_security_group_rule" "egress" {
18
23
}
19
24
20
25
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
22
27
type = " ingress"
23
28
description = " Allow traffic within the security group"
24
29
from_port = var. db_port
@@ -29,7 +34,7 @@ resource "aws_security_group_rule" "allow_ingress_from_self" {
29
34
}
30
35
31
36
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
33
38
type = " ingress"
34
39
description = " Allow inbound traffic from existing Security Groups"
35
40
from_port = var. db_port
@@ -41,7 +46,7 @@ resource "aws_security_group_rule" "ingress_security_groups" {
41
46
42
47
resource "aws_security_group_rule" "ingress_cidr_blocks" {
43
48
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
45
50
description = " Allow inbound traffic from CIDR blocks"
46
51
from_port = var. db_port
47
52
to_port = var. db_port
@@ -51,13 +56,13 @@ resource "aws_security_group_rule" "ingress_cidr_blocks" {
51
56
}
52
57
53
58
resource "random_password" "password" {
54
- count = module . this . enabled && var . master_password == " " ? 1 : 0
59
+ count = local . enabled && local . create_password ? 1 : 0
55
60
length = 16
56
61
special = false
57
62
}
58
63
59
64
resource "aws_docdb_cluster" "default" {
60
- count = module . this . enabled ? 1 : 0
65
+ count = local . enabled ? 1 : 0
61
66
cluster_identifier = module. this . id
62
67
master_username = var. master_username
63
68
master_password = var. master_password != " " ? var. master_password : random_password. password [0 ]. result
@@ -84,7 +89,7 @@ resource "aws_docdb_cluster" "default" {
84
89
}
85
90
86
91
resource "aws_docdb_cluster_instance" "default" {
87
- count = module . this . enabled ? var. cluster_size : 0
92
+ count = local . enabled ? var. cluster_size : 0
88
93
identifier = " ${ module . this . id } -${ count . index + 1 } "
89
94
cluster_identifier = join (" " , aws_docdb_cluster. default [* ]. id )
90
95
apply_immediately = var. apply_immediately
@@ -98,7 +103,7 @@ resource "aws_docdb_cluster_instance" "default" {
98
103
}
99
104
100
105
resource "aws_docdb_subnet_group" "default" {
101
- count = module . this . enabled ? 1 : 0
106
+ count = local . enabled ? 1 : 0
102
107
name = module. this . id
103
108
description = " Allowed subnets for DB cluster instances"
104
109
subnet_ids = var. subnet_ids
@@ -107,7 +112,7 @@ resource "aws_docdb_subnet_group" "default" {
107
112
108
113
# https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-parameter-group-create.html
109
114
resource "aws_docdb_cluster_parameter_group" "default" {
110
- count = module . this . enabled ? 1 : 0
115
+ count = local . enabled ? 1 : 0
111
116
name = module. this . id
112
117
description = " DB cluster parameter group"
113
118
family = var. cluster_family
@@ -135,7 +140,7 @@ module "dns_master" {
135
140
source = " cloudposse/route53-cluster-hostname/aws"
136
141
version = " 0.13.0"
137
142
138
- enabled = module . this . enabled && var. zone_id != " " ? true : false
143
+ enabled = local . enabled && var. zone_id != " " ? true : false
139
144
dns_name = local. cluster_dns_name
140
145
zone_id = var. zone_id
141
146
records = coalescelist (aws_docdb_cluster. default [* ]. endpoint , [" " ])
@@ -147,7 +152,7 @@ module "dns_replicas" {
147
152
source = " cloudposse/route53-cluster-hostname/aws"
148
153
version = " 0.13.0"
149
154
150
- enabled = module . this . enabled && var. zone_id != " " ? true : false
155
+ enabled = local . enabled && var. zone_id != " " ? true : false
151
156
dns_name = local. replicas_dns_name
152
157
zone_id = var. zone_id
153
158
records = coalescelist (aws_docdb_cluster. default [* ]. reader_endpoint , [" " ])
@@ -159,7 +164,7 @@ module "ssm_write_db_password" {
159
164
source = " cloudposse/ssm-parameter-store/aws"
160
165
version = " 0.13.0"
161
166
162
- enabled = module . this . enabled && var. ssm_parameter_enabled == true ? true : false
167
+ enabled = local . enabled && var. ssm_parameter_enabled == true ? true : false
163
168
parameter_write = [
164
169
{
165
170
name = format (" %s%s" , var. ssm_parameter_path_prefix , module. this . id )
0 commit comments