diff options
author | Clint Byrum <clint@fewbar.com> | 2013-04-18 11:17:08 -0700 |
---|---|---|
committer | Clint Byrum <clint@fewbar.com> | 2013-04-18 11:17:08 -0700 |
commit | 67533a2d9dc87454ca2cbfe4778aa280e1a6392e (patch) | |
tree | e5b4a6079aa4884642a5672f3007dd9ca4de136a | |
parent | a15ca0394cb8427d11070ba6a0512b3e87ece833 (diff) |
Add stack for deploying Heat.
-rw-r--r-- | heat.yaml | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/heat.yaml b/heat.yaml new file mode 100644 index 00000000..351feae5 --- /dev/null +++ b/heat.yaml @@ -0,0 +1,111 @@ +HeatTemplateFormatVersion: '2012-12-12' +Description: 'HEAT Template - Heat Engine and API' +Parameters: + KeyName: + Description: Name of an existing EC2 KeyPair to enable SSH access to the instances + Type: String + Default: default + InstanceType: + Description: Use this flavor + Type: String + Default: bm.small + HeatUser: + Description: Heat database username. + Type: String + Default: heat + HeatEngineImage: + Type: String + HeatApiImage: + Type: String + RabbitMQHost: + Description: Host for RabbitMQ + Type: String + RabbitMQPassword: + Description: Password for RabbitMQ + Type: String + ApiGroupSize: + Description: How many API nodes to run + Type: Integer + Default: 1 + AvailabilityZones: + Type: List + Default: [ 1 ] +Resources: + EngineAccessPolicy: + Type: OS::Heat::AccessPolicy + Properties: + AllowedResources: [ HeatEngine ] + EngineUser: + Type: AWS::IAM::User + Properties: + Policies: [ { Ref: EngineAccessPolicy } ] + EngineKey: + Type: AWS::IAM::AccessKey + Properties: + UserName: + Ref: EngineUser + ApiAccessPolicy: + Type: OS::Heat::AccessPolicy + Properties: + AllowedResources: [ HeatAPILaunch ] + ApiUser: + Type: AWS::IAM::User + Properties: + Policies: [ { Ref: ApiAccessPolicy } ] + ApiKey: + Type: AWS::IAM::AccessKey + Properties: + UserName: + Ref: ApiUser + HeatAPILaunch: + Type: AWS::AutoScaling::LaunchConfiguration + Metadata: + OpenStack::ImageBuilder::Elements: [ heat-api ] + OpenStack::Config: + heat: + rpc_backend: heat.openstack.common.rpc.impl_kombu + rabbit: + host: {Ref: RabbitMQHost} + password: {Ref: RabbitMQPassword} + access_key_id: + Ref: ApiKey + secret_key: + Fn::GetAtt: [ ApiKey, SecretAccessKey ] + stack: + name: {Ref: 'AWS::StackName'} + region: {Ref: 'AWS::Region'} + refresh: + - resource: HeatAPILaunch + Properties: + ImageId: + {Ref: HeatApiImage} + InstanceType: {Ref: InstanceType} + KeyName: {Ref: KeyName} + UserData: "#!/bin/bash\ntouch /tmp/userdata-finished\necho Userdata finished $(date)\n" + HeatAPI: + Type: OS::Heat::InstanceGroup + Properties: + LaunchConfiguration: {Ref: HeatApiLaunch} + Size: {Ref: ApiGroupSize} + AvailabilityZones: {Ref: AvailabilityZones} + HeatEngine: + Type: AWS::EC2::Instance + Properties: + ImageId: + {Ref: HeatEngineImage} + Metadata: + OpenStack::Config: + heat: + rpc_backend: heat.openstack.common.rpc.impl_kombu + rabbit: + host: {Ref: RabbitMQHost} + password: {Ref: RabbitMQPassword} + access_key_id: + Ref: EngineKey + secret_key: + Fn::GetAtt: [ EngineKey, SecretAccessKey ] + stack: + name: {Ref: 'AWS::StackName'} + region: {Ref: 'AWS::Region'} + refresh: + - resource: HeatEngine |