|
10 | 10 | template['Resources']['CoreOSServerLaunchConfig']['Properties']['UserData']['Fn::Base64']['Fn::Join'] = [ '', lines ] |
11 | 11 | template['Parameters']['ClusterSize']['Default'] = str(os.getenv('DEIS_NUM_INSTANCES', 3)) |
12 | 12 |
|
| 13 | +VPC_ID = os.getenv('VPC_ID', None) |
| 14 | +VPC_SUBNETS = os.getenv('VPC_SUBNETS', None) |
| 15 | +VPC_ZONES = os.getenv('VPC_ZONES', None) |
| 16 | + |
| 17 | +if VPC_ID and VPC_SUBNETS and VPC_ZONES: |
| 18 | + for resource in template['Resources'].keys(): |
| 19 | + resource_type = template['Resources'][resource]['Type'] |
| 20 | + if resource_type == 'AWS::EC2::SecurityGroup': |
| 21 | + template['Resources'][resource]['Properties']['VpcId'] = VPC_ID |
| 22 | + elif resource_type == 'AWS::EC2::SecurityGroupIngress': |
| 23 | + template['Resources'][resource]['Properties']['GroupId'] = template['Resources'][resource]['Properties']['GroupName'] |
| 24 | + del template['Resources'][resource]['Properties']['GroupName'] |
| 25 | + template['Resources'][resource]['Properties']['SourceSecurityGroupId'] = { |
| 26 | + 'Ref': template['Resources'][resource]['Properties']['SourceSecurityGroupId']['Fn::GetAtt'][0] |
| 27 | + } |
| 28 | + elif resource_type == 'AWS::AutoScaling::LaunchConfiguration': |
| 29 | + template['Resources'][resource]['Properties']['AssociatePublicIpAddress'] = False |
| 30 | + elif resource_type == 'AWS::ElasticLoadBalancing::LoadBalancer': |
| 31 | + del template['Resources'][resource]['Properties']['AvailabilityZones'] |
| 32 | + template['Resources'][resource]['Properties']['Subnets'] = VPC_SUBNETS.split(',') |
| 33 | + elif resource_type == 'AWS::AutoScaling::AutoScalingGroup': |
| 34 | + template['Resources'][resource]['Properties']['VPCZoneIdentifier'] = VPC_SUBNETS.split(',') |
| 35 | + template['Resources'][resource]['Properties']['AvailabilityZones'] = VPC_ZONES.split(',') |
| 36 | + |
13 | 37 | print json.dumps(template) |
0 commit comments