heat/heat_integrationtests/scenario/templates/test_server_cfn_init.yaml
Rakesh H S c4d6d66e69 Adds coverage for AWS EIP resource in scenario tests
Change-Id: Ie37fd388ba3d6c7bc5ec03609d7d27c84ab474cc
Closes-Bug: #1269551
2015-07-21 12:45:03 +05:30

98 lines
2.6 KiB
YAML

HeatTemplateFormatVersion: '2012-12-12'
Description: |
Template which uses a wait condition to confirm that a minimal
cfn-init and cfn-signal has worked
Parameters:
key_name:
Type: String
flavor:
Type: String
image:
Type: String
subnet:
Type: String
timeout:
Type: Number
Resources:
CfnUser:
Type: AWS::IAM::User
SmokeSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Enable only ping and SSH access
SecurityGroupIngress:
- {CidrIp: 0.0.0.0/0, FromPort: '-1', IpProtocol: icmp, ToPort: '-1'}
- {CidrIp: 0.0.0.0/0, FromPort: '22', IpProtocol: tcp, ToPort: '22'}
SmokeKeys:
Type: AWS::IAM::AccessKey
Properties:
UserName: {Ref: CfnUser}
ElasticIp:
Type: AWS::EC2::EIP
Properties:
Domain: vpc
SmokeServerElasticIp:
Type: AWS::EC2::EIPAssociation
Properties:
EIP: {Ref: ElasticIp}
InstanceId: {Ref: SmokeServer}
SmokeServer:
Type: AWS::EC2::Instance
Metadata:
AWS::CloudFormation::Init:
config:
files:
/tmp/smoke-status:
content: smoke test complete
/etc/cfn/cfn-credentials:
content:
Fn::Replace:
- SmokeKeys: {Ref: SmokeKeys}
SecretAccessKey:
'Fn::GetAtt': [SmokeKeys, SecretAccessKey]
- |
AWSAccessKeyId=SmokeKeys
AWSSecretKey=SecretAccessKey
mode: '000400'
owner: root
group: root
Properties:
ImageId: {Ref: image}
InstanceType: {Ref: flavor}
KeyName: {Ref: key_name}
SubnetId: {Ref: subnet}
SecurityGroups:
- {Ref: SmokeSecurityGroup}
UserData:
Fn::Replace:
- WaitHandle: {Ref: WaitHandle}
- |
#!/bin/bash -v
/opt/aws/bin/cfn-init
/opt/aws/bin/cfn-signal -e 0 --data "`cat /tmp/smoke-status`" \
--id smoke_status "WaitHandle"
WaitHandle:
Type: AWS::CloudFormation::WaitConditionHandle
WaitCondition:
Type: AWS::CloudFormation::WaitCondition
DependsOn: SmokeServer
Properties:
Handle: {Ref: WaitHandle}
Timeout: {Ref: timeout}
Outputs:
WaitConditionStatus:
Description: Contents of /tmp/smoke-status on SmokeServer
Value:
Fn::GetAtt: [WaitCondition, Data]
ElasticIp_Id:
Description: Elastic ip allocation id
Value:
Fn::GetAtt: [ElasticIp, AllocationId]
SmokeServerElasticIp:
Description: Elastic ip address of server
Value:
Ref: ElasticIp