Skip to content

Commit 5f64105

Browse files
authored
Merge pull request #14 from theonestack/feature/tests
add more tests and cleanup a bit of code
2 parents 8ab2f7a + f91143a commit 5f64105

7 files changed

+669
-17
lines changed

aurora-postgres.cfndsl.rb

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
Condition("CreateReaderRecord", FnAnd([FnEquals(Ref("EnableReader"), 'true'), Condition('CreateHostRecord')]))
88

99
aurora_tags = []
10-
aurora_tags << { Key: 'Name', Value: FnSub("${EnvironmentName}-#{component_name}") }
10+
tags = external_parameters.fetch(:tags, {})
11+
aurora_tags << { Key: 'Name', Value: FnSub("${EnvironmentName}-#{external_parameters[:component_name]}") }
1112
aurora_tags << { Key: 'Environment', Value: Ref(:EnvironmentName) }
1213
aurora_tags << { Key: 'EnvironmentType', Value: Ref(:EnvironmentType) }
13-
aurora_tags.push(*tags.map {|k,v| {Key: k, Value: FnSub(v)}}).uniq { |h| h[:Key] } if defined? tags
14+
aurora_tags.push(*tags.map {|k,v| {Key: k, Value: FnSub(v)}}).uniq { |h| h[:Key] }
1415

1516
ingress = []
17+
security_group_rules = external_parameters.fetch(:security_group_rules, [])
1618
security_group_rules.each do |rule|
1719
sg_rule = {
1820
FromPort: cluster_port,
@@ -28,7 +30,7 @@
2830
sg_rule['Description'] = FnSub(rule['desc'])
2931
end
3032
ingress << sg_rule
31-
end if defined?(security_group_rules)
33+
end
3234

3335
EC2_SecurityGroup(:SecurityGroup) do
3436
VpcId Ref('VPCId')
@@ -55,10 +57,12 @@
5557
Tags aurora_tags
5658
}
5759

60+
cluster_parameters = external_parameters.fetch(:cluster_parameters, nil)
61+
5862
RDS_DBClusterParameterGroup(:DBClusterParameterGroup) {
5963
Description FnSub("Aurora postgres #{component_name} cluster parameters for the ${EnvironmentName} environment")
6064
Family family
61-
Parameters cluster_parameters if defined? cluster_parameters
65+
Parameters cluster_parameters unless cluster_parameters.nil?
6266
Tags aurora_tags
6367
}
6468

@@ -84,50 +88,66 @@
8488
instance_password = FnJoin('', [ '{{resolve:ssm-secure:', FnSub(master_login['password_ssm_param']), ':1}}' ])
8589
end
8690

91+
engine_version = external_parameters.fetch(:engine_version, nil)
92+
database_name = external_parameters.fetch(:database_name, nil)
93+
storage_encrypted = external_parameters.fetch(:storage_encrypted, nil)
94+
kms = external_parameters.fetch(:kms, false)
95+
cluster_maintenance_window = external_parameters.fetch(:cluster_maintenance_window, nil)
96+
8797
RDS_DBCluster(:DBCluster) {
8898
Engine 'aurora-postgresql'
89-
EngineVersion engine_version if defined? engine_version
99+
EngineVersion engine_version unless engine_version.nil?
90100
DBClusterParameterGroupName Ref(:DBClusterParameterGroup)
91-
SnapshotIdentifier Ref(:SnapshotID)
101+
PreferredMaintenanceWindow cluster_maintenance_window unless cluster_maintenance_window.nil?
92102
SnapshotIdentifier FnIf('UseSnapshotID',Ref(:SnapshotID), Ref('AWS::NoValue'))
93103
MasterUsername FnIf('UseUsernameAndPassword', instance_username, Ref('AWS::NoValue'))
94104
MasterUserPassword FnIf('UseUsernameAndPassword', instance_password, Ref('AWS::NoValue'))
95105
DBSubnetGroupName Ref(:DBClusterSubnetGroup)
96106
VpcSecurityGroupIds [ Ref(:SecurityGroup) ]
97-
DatabaseName FnSub(database_name) if defined? database_name
98-
StorageEncrypted storage_encrypted if defined? storage_encrypted
99-
KmsKeyId Ref('KmsKeyId') if (defined? kms) && (kms)
100-
Port cluster_port
107+
DatabaseName FnSub(database_name) unless database_name.nil?
108+
StorageEncrypted storage_encrypted unless storage_encrypted.nil?
109+
KmsKeyId Ref('KmsKeyId') if kms
110+
Port external_parameters[:cluster_port]
101111
Tags aurora_tags
102112
}
103113

114+
instance_parameters = external_parameters.fetch(:instance_parameters, nil)
115+
104116
RDS_DBParameterGroup(:DBInstanceParameterGroup) {
105117
Description FnSub("Aurora postgres #{component_name} instance parameters for the ${EnvironmentName} environment")
106118
Family family
107-
Parameters instance_parameters if defined? instance_parameters
119+
Parameters instance_parameters unless instance_parameters.nil?
108120
Tags aurora_tags
109121
}
110122

123+
minor_upgrade = external_parameters.fetch(:minor_upgrade, nil)
124+
maint_window = external_parameters.fetch(:maint_window, nil) # key kept for backwards compatibility
125+
writer_maintenance_window = external_parameters.fetch(:writer_maintenance_window, maint_window)
126+
111127
RDS_DBInstance(:DBClusterInstanceWriter) {
112128
DBSubnetGroupName Ref(:DBClusterSubnetGroup)
113129
DBParameterGroupName Ref(:DBInstanceParameterGroup)
114130
DBClusterIdentifier Ref(:DBCluster)
115131
Engine 'aurora-postgresql'
116-
EngineVersion engine_version if defined? engine_version
117-
AutoMinorVersionUpgrade minor_upgrade if defined? minor_upgrade
118-
PreferredMaintenanceWindow maint_window if defined? maint_window
132+
EngineVersion engine_version unless engine_version.nil?
133+
AutoMinorVersionUpgrade minor_upgrade unless minor_upgrade.nil?
134+
PreferredMaintenanceWindow writer_maintenance_window unless writer_maintenance_window.nil?
119135
PubliclyAccessible 'false'
120136
DBInstanceClass Ref(:WriterInstanceType)
121137
Tags aurora_tags
122138
}
123139

140+
reader_maintenance_window = external_parameters.fetch(:reader_maintenance_window, nil)
141+
124142
RDS_DBInstance(:DBClusterInstanceReader) {
125143
Condition(:EnableReader)
126144
DBSubnetGroupName Ref(:DBClusterSubnetGroup)
127145
DBParameterGroupName Ref(:DBInstanceParameterGroup)
128146
DBClusterIdentifier Ref(:DBCluster)
129147
Engine 'aurora-postgresql'
130-
EngineVersion engine_version if defined? engine_version
148+
EngineVersion engine_version unless engine_version.nil?
149+
AutoMinorVersionUpgrade minor_upgrade unless minor_upgrade.nil?
150+
PreferredMaintenanceWindow reader_maintenance_window unless reader_maintenance_window.nil?
131151
PubliclyAccessible 'false'
132152
DBInstanceClass Ref(:ReaderInstanceType)
133153
Tags aurora_tags
@@ -136,7 +156,7 @@
136156
Route53_RecordSet(:DBClusterReaderRecord) {
137157
Condition(:CreateReaderRecord)
138158
HostedZoneName FnJoin('', [ Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.'])
139-
Name FnJoin('', [ hostname_read_endpoint, '.', Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.' ])
159+
Name FnJoin('', [ external_parameters[:hostname_read_endpoint], '.', Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.' ])
140160
Type 'CNAME'
141161
TTL '60'
142162
ResourceRecords [ FnGetAtt('DBCluster','ReadEndpoint.Address') ]
@@ -145,7 +165,7 @@
145165
Route53_RecordSet(:DBHostRecord) {
146166
Condition(:CreateHostRecord)
147167
HostedZoneName FnJoin('', [ Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.'])
148-
Name FnJoin('', [ hostname, '.', Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.' ])
168+
Name FnJoin('', [ external_parameters[:hostname], '.', Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.' ])
149169
Type 'CNAME'
150170
TTL '60'
151171
ResourceRecords [ FnGetAtt('DBCluster','Endpoint.Address') ]

0 commit comments

Comments
 (0)