HeatTemplateFormatVersion: '2012-12-12' Description: 'Nova Compute' 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: baremetal NovaImage: Type: String KeystoneHost: Type: String ServicePassword: Description: admin_password for setting up auth in nova. Type: String QuantumHost: Type: String RabbitHost: Type: String RabbitPassword: Type: String NovaInterfaces: Type: String Default: eth0 NovaComputeDriver: Type: String Default: libvirt.LibvirtDriver NovaApiHost: Type: String GlanceHost: Type: String NovaDSN: Type: String QuantumDSN: Type: String Resources: AccessPolicy: Type: OS::Heat::AccessPolicy Properties: AllowedResources: [ NovaCompute ] User: Type: AWS::IAM::User Properties: Policies: [ { Ref: AccessPolicy } ] Key: Type: AWS::IAM::AccessKey Properties: UserName: Ref: User NovaCompute: Type: AWS::EC2::Instance Properties: ImageId: {Ref: NovaImage} InstanceType: {Ref: InstanceType} KeyName: {Ref: KeyName} Metadata: OpenStack::ImageBuilder::Elements: [ nova-compute ] heat: access_key_id: Ref: Key secret_key: Fn::GetAtt: [ Key, SecretAccessKey ] stack: name: {Ref: 'AWS::StackName'} region: {Ref: 'AWS::Region'} refresh: - resource: NovaCompute nova: compute_driver: {Ref: NovaComputeDriver} db: {Ref: NovaDSN} host: {Ref: NovaApiHost} glance: host: {Ref: GlanceHost} keystone: host: {Ref: KeystoneHost} quantum: host: {Ref: QuantumHost} ovs_db: {Ref: QuantumDSN} ovs: local_ip: Fn::GetAtt: [ NovaCompute, PrivateIp ] tenant_network_type: gre network_vlan_ranges: '' bridge_mappings: '' enable_tunneling: 'True' service-password: {Ref: ServicePassword} admin-password: {Ref: ServicePassword} rabbit: host: {Ref: RabbitHost} password: {Ref: RabbitPassword} swift: store_user: '' store_key: '' interfaces: control: {Ref: NovaInterfaces}