|
1 | 1 | CloudFormation do |
2 | 2 |
|
3 | | - Description "#{component_name} - #{component_version}" |
| 3 | + Description "#{external_parameters[:component_name]} - #{external_parameters[:component_version]}" |
4 | 4 |
|
5 | 5 | tags = [] |
6 | 6 | tags << { Key: 'Environment', Value: Ref(:EnvironmentName) } |
7 | 7 | tags << { Key: 'EnvironmentType', Value: Ref(:EnvironmentType) } |
8 | 8 |
|
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 } } |
10 | 11 |
|
11 | 12 | EC2_SecurityGroup "SecurityGroupRDS" do |
12 | 13 | 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' ])}] |
16 | 17 | end |
17 | 18 |
|
18 | 19 | RDS_DBSubnetGroup 'SubnetGroupRDS' do |
19 | | - DBSubnetGroupDescription FnJoin(' ', [ Ref(:EnvironmentName), component_name, 'subnet group' ]) |
| 20 | + DBSubnetGroupDescription FnJoin(' ', [ Ref(:EnvironmentName), external_parameters[:component_name], 'subnet group' ]) |
20 | 21 | 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' ])}] |
22 | 23 | end |
23 | 24 |
|
| 25 | + parameters = external_parameters.fetch(:parameters, {}) |
24 | 26 | 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' ])}] |
29 | 31 | end |
30 | 32 |
|
| 33 | + master_login = external_parameters.fetch(:master_login, {}) |
31 | 34 | RDS_DBInstance 'RDS' do |
32 | | - DeletionPolicy deletion_policy if defined? deletion_policy |
| 35 | + DeletionPolicy external_parameters[:deletion_policy] |
33 | 36 | DBInstanceClass Ref('RDSInstanceType') |
34 | 37 | AllocatedStorage Ref('RDSAllocatedStorage') |
35 | 38 | StorageType 'gp2' |
36 | 39 | Engine 'mysql' |
37 | | - EngineVersion engine_version |
| 40 | + EngineVersion external_parameters[:engine_version] |
38 | 41 | 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? |
41 | 44 | DBSnapshotIdentifier Ref('RDSSnapshotID') |
42 | 45 | DBSubnetGroupName Ref('SubnetGroupRDS') |
43 | 46 | VPCSecurityGroups [Ref('SecurityGroupRDS')] |
44 | 47 | MultiAZ Ref('MultiAZ') |
45 | 48 | Tags tags + [ |
46 | | - { Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), component_name, 'instance' ])}, |
| 49 | + { Key: 'Name', Value: FnJoin('-', [ Ref(:EnvironmentName), external_parameters[:component_name], 'instance' ])}, |
47 | 50 | { Key: 'SnapshotID', Value: Ref('RDSSnapshotID')}, |
48 | | - { Key: 'Version', Value: family} |
| 51 | + { Key: 'Version', Value: external_parameters[:family]} |
49 | 52 | ] |
50 | 53 | end |
51 | 54 |
|
52 | | - record = defined?(dns_record) ? dns_record : 'mysql' |
| 55 | + record = external_parameters.fetch(:dns_record, 'mysql') |
53 | 56 |
|
54 | 57 | Route53_RecordSet('DatabaseIntHostRecord') do |
55 | 58 | HostedZoneName FnJoin('', [ Ref('EnvironmentName'), '.', Ref('DnsDomain'), '.']) |
|
0 commit comments