Skip to content

Commit 212da57

Browse files
authored
Merge pull request #7 from Samseppiol/master
Convert component to use new cfndsl yaml constant syntax
2 parents ab1f806 + 30feec3 commit 212da57

File tree

2 files changed

+28
-21
lines changed

2 files changed

+28
-21
lines changed

.travis.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
language: ruby
22
rvm:
3-
- 2.3
3+
- 2.5
4+
install:
5+
- gem install cfhighlander cfn-nag
6+
before_script:
7+
- cfndsl -u 9.0.0
48
script:
5-
- gem install cfhighlander --prerelease
6-
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then cfhighlander cfcompile ; else cfhighlander cfcompile --validate; fi
9+
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then cfhighlander cftest --no-validate; else cfhighlander cftest; fi
10+
- cfn_nag_scan -i out/tests

rds-mysql.cfndsl.rb

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,58 @@
11
CloudFormation do
22

3-
Description "#{component_name} - #{component_version}"
3+
Description "#{external_parameters[:component_name]} - #{external_parameters[:component_version]}"
44

55
tags = []
66
tags << { Key: 'Environment', Value: Ref(:EnvironmentName) }
77
tags << { Key: 'EnvironmentType', Value: Ref(:EnvironmentType) }
88

9-
extra_tags.each { |key,value| tags << { Key: key, Value: value } } if defined? extra_tags
9+
extra_tags = external_parameters.fetch(:extra_tags, {})
10+
extra_tags.each { |key,value| tags << { Key: key, Value: value } }
1011

1112
EC2_SecurityGroup "SecurityGroupRDS" do
1213
VpcId Ref('VPCId')
13-
GroupDescription FnJoin(' ', [ Ref(:EnvironmentName), component_name, 'security group' ])
14-
SecurityGroupIngress sg_create_rules(security_group, ip_blocks)
15-
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), component_name, 'security-group' ])}]
14+
GroupDescription FnJoin(' ', [ Ref(:EnvironmentName), external_parameters[:component_name], 'security group' ])
15+
SecurityGroupIngress sg_create_rules(external_parameters[:security_group], external_parameters[:ip_blocks])
16+
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'security-group' ])}]
1617
end
1718

1819
RDS_DBSubnetGroup 'SubnetGroupRDS' do
19-
DBSubnetGroupDescription FnJoin(' ', [ Ref(:EnvironmentName), component_name, 'subnet group' ])
20+
DBSubnetGroupDescription FnJoin(' ', [ Ref(:EnvironmentName), external_parameters[:component_name], 'subnet group' ])
2021
SubnetIds Ref(:SubnetIds)
21-
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), component_name, 'subnet-group' ])}]
22+
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'subnet-group' ])}]
2223
end
2324

25+
parameters = external_parameters.fetch(:parameters, {})
2426
RDS_DBParameterGroup 'ParametersRDS' do
25-
Description FnJoin(' ', [ Ref(:EnvironmentName), component_name, 'parameter group' ])
26-
Family family
27-
Parameters parameters if defined? parameters
28-
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), component_name, 'parameter-group' ])}]
27+
Description FnJoin(' ', [ Ref(:EnvironmentName), external_parameters[:component_name], 'parameter group' ])
28+
Family external_parameters[:family]
29+
Parameters parameters unless parameters.empty?
30+
Tags tags + [{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'parameter-group' ])}]
2931
end
3032

33+
master_login = external_parameters.fetch(:master_login, {})
3134
RDS_DBInstance 'RDS' do
32-
DeletionPolicy deletion_policy if defined? deletion_policy
35+
DeletionPolicy external_parameters[:deletion_policy]
3336
DBInstanceClass Ref('RDSInstanceType')
3437
AllocatedStorage Ref('RDSAllocatedStorage')
3538
StorageType 'gp2'
3639
Engine 'mysql'
37-
EngineVersion engine_version
40+
EngineVersion external_parameters[:engine_version]
3841
DBParameterGroupName Ref('ParametersRDS')
39-
MasterUsername FnJoin('', [ '{{resolve:ssm:', FnSub(master_login['username_ssm_param']), ':1}}' ]) if defined? master_login
40-
MasterUserPassword FnJoin('', [ '{{resolve:ssm-secure:', FnSub(master_login['password_ssm_param']), ':1}}' ]) if defined? master_login
42+
MasterUsername FnJoin('', [ '{{resolve:ssm:', FnSub(master_login['username_ssm_param']), ':1}}' ]) unless master_login.empty?
43+
MasterUserPassword FnJoin('', [ '{{resolve:ssm-secure:', FnSub(master_login['password_ssm_param']), ':1}}' ]) unless master_login.empty?
4144
DBSnapshotIdentifier Ref('RDSSnapshotID')
4245
DBSubnetGroupName Ref('SubnetGroupRDS')
4346
VPCSecurityGroups [Ref('SecurityGroupRDS')]
4447
MultiAZ Ref('MultiAZ')
4548
Tags tags + [
46-
{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), component_name, 'instance' ])},
49+
{ Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'instance' ])},
4750
{ Key: 'SnapshotID', Value: Ref('RDSSnapshotID')},
48-
{ Key: 'Version', Value: family}
51+
{ Key: 'Version', Value: external_parameters[:family]}
4952
]
5053
end
5154

52-
record = defined?(dns_record) ? dns_record : 'mysql'
55+
record = external_parameters.fetch(:dns_record, 'mysql')
5356

5457
Route53_RecordSet('DatabaseIntHostRecord') do
5558
HostedZoneName FnJoin('', [ Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.'])

0 commit comments

Comments
 (0)