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 Flavor: Description: Use this flavor Type: String Default: baremetal NovaImage: Type: String Default: overcloud-compute KeystoneHost: Type: String ServicePassword: Description: admin_password for setting up auth in nova. Type: String NeutronHost: Type: String RabbitHost: Type: String RabbitPassword: Type: String NovaInterfaces: Type: String Default: eth0 NovaComputeDriver: Type: String Default: libvirt.LibvirtDriver NovaComputeLibvirtType: Type: String Default: '' NovaApiHost: Type: String GlanceHost: Type: String NovaDSN: Type: String NeutronDSN: Type: String NeutronBridgeMappings: Type: String NeutronNetworkVLANRanges: Type: String NeutronNetworkType: Type: String NeutronEnableTunnelling: Type: String Resources: ComputeAccessPolicy: Type: OS::Heat::AccessPolicy Properties: AllowedResources: [ NovaCompute0 ] ComputeUser: Type: AWS::IAM::User Properties: Policies: [ { Ref: ComputeAccessPolicy } ] ComputeKey: Type: AWS::IAM::AccessKey Properties: UserName: Ref: ComputeUser NovaCompute0: Type: OS::Nova::Server Properties: image: {Ref: NovaImage} flavor: {Ref: Flavor} key_name: {Ref: KeyName} Metadata: os-collect-config: cfn: access_key_id: Ref: ComputeKey secret_access_key: Fn::GetAtt: [ ComputeKey, SecretAccessKey ] stack_name: {Ref: 'AWS::StackName'} path: NovaCompute0Config.Metadata OpenStack::ImageBuilder::Elements: [ nova-compute ] NovaCompute0Config: Type: AWS::AutoScaling::LaunchConfiguration Properties: InstanceType: '0' ImageId: '0' Metadata: os-collect-config: cfn: access_key_id: Ref: ComputeKey secret_access_key: Fn::GetAtt: [ ComputeKey, SecretAccessKey ] stack_name: {Ref: 'AWS::StackName'} path: NovaCompute0Config.Metadata nova: compute_driver: {Ref: NovaComputeDriver} compute_libvirt_type: {Ref: NovaComputeLibvirtType} db: {Ref: NovaDSN} host: {Ref: NovaApiHost} glance: host: {Ref: GlanceHost} keystone: host: {Ref: KeystoneHost} neutron: host: {Ref: NeutronHost} ovs_db: {Ref: NeutronDSN} ovs: local_ip: Fn::GetAtt: - NovaCompute0 - PrivateIp tenant_network_type: {Ref: NeutronNetworkType} network_vlan_ranges: {Ref: NeutronNetworkVLANRanges} bridge_mappings: {Ref: NeutronBridgeMappings} enable_tunneling: {Ref: NeutronEnableTunnelling} service-password: {Ref: ServicePassword} admin-password: {Ref: ServicePassword} rabbit: host: {Ref: RabbitHost} password: {Ref: RabbitPassword} swift: store_user: '' store_key: '' interfaces: control: {Ref: NovaInterfaces}