Description: All-in-one baremetal OpenStack and all dependencies. HeatTemplateFormatVersion: '2012-12-12' Parameters: AdminPassword: Default: unset Description: The password for the keystone admin account, used for monitoring, querying neutron etc. Type: String NoEcho: true AdminToken: Default: unset Description: The keystone auth secret. Type: String NoEcho: true BaremetalArch: Default: i386 Description: The architecture to use in Nova-BM - i386 or amd64. Type: String Flavor: Default: baremetal Description: Flavor to request when deploying. Type: String GlancePassword: Default: unset Description: The password for the glance service account, used by the glance services. Type: String NoEcho: true GlanceNotifierStrategy: Description: Strategy to use for Glance notification queue Type: String Default: noop GlanceLogFile: Description: The filepath of the file to use for logging messages from Glance. Type: String Default: '' KeyName: Default: default Description: Name of an existing EC2 KeyPair to enable SSH access to the instances Type: String HeatPassword: Default: unset Description: The password for the Heat service account, used by the Heat services. Type: String NoEcho: true ImageUpdatePolicy: Default: REBUILD_PRESERVE_EPHEMERAL Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt. Type: String undercloudImage: Default: undercloud Type: String NeutronPassword: Default: unset Description: The password for the neutron service account, used by neutron agents. Type: String NoEcho: true NovaPassword: Default: unset Description: The password for the nova service account, used by nova-api. Type: String NoEcho: true RabbitUserName: Default: guest Description: The username for RabbitMQ Type: String RabbitPassword: Default: guest Description: The password for RabbitMQ Type: String NoEcho: true RabbitCookieSalt: Type: String Default: unset Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change. HeatStackDomainAdminPassword: Description: Password for heat_domain_admin user. Type: String Default: '' NoEcho: true Resources: RabbitCookie: Type: OS::Heat::RandomString Properties: length: 20 salt: Ref: RabbitCookieSalt AccessPolicy: Properties: AllowedResources: - undercloudConfig Type: OS::Heat::AccessPolicy notCompute0Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey notCompute0CompletionCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: undercloud Properties: Handle: {Ref: notCompute0CompletionHandle} Count: '1' Timeout: '1800' notCompute0CompletionHandle: Type: AWS::CloudFormation::WaitConditionHandle User: Properties: Policies: - Ref: AccessPolicy Type: AWS::IAM::User undercloudConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: '0' InstanceType: foo Metadata: OpenStack::Role: undercloudConfig OpenStack::Heat::Stack: {} OpenStack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ] admin-password: Ref: AdminPassword admin-token: Ref: AdminToken controller-address: Fn::Select: - 0 - Fn::Select: - "ctlplane" - Fn::GetAtt: - undercloud - networks cinder: db: mysql://cinder:unset@localhost/cinder volume_size_mb: '5000' completion-handle: Ref: notCompute0CompletionHandle db-password: unset glance: backend: file db: mysql://glance:unset@localhost/glance host: 127.0.0.1 service-password: Ref: GlancePassword notifier-strategy: Ref: GlanceNotifierStrategy log-file: Ref: GlanceLogFile heat: admin_password: Ref: HeatPassword admin_tenant_name: service admin_user: heat auth_encryption_key: unset___________ db: mysql://heat:unset@localhost/heat stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword} watch_server_url: Fn::Join: - '' - - http:// - Fn::Select: - 0 - Fn::Select: - "ctlplane" - Fn::GetAtt: - undercloud - networks - ":8003" metadata_server_url: Fn::Join: - '' - - http:// - Fn::Select: - 0 - Fn::Select: - "ctlplane" - Fn::GetAtt: - undercloud - networks - ":8000" waitcondition_server_url: Fn::Join: - '' - - http:// - Fn::Select: - 0 - Fn::Select: - "ctlplane" - Fn::GetAtt: - undercloud - networks - ":8000/v1/waitcondition" os-collect-config: cfn: access_key_id: Ref: notCompute0Key path: undercloudConfig.Metadata secret_access_key: Fn::GetAtt: - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName keystone: db: mysql://keystone:unset@localhost/keystone host: 127.0.0.1 neutron: host: 127.0.0.1 ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 ovs: public_interface: Ref: NeutronPublicInterface physical_bridge: br-ctlplane physical_network: ctlplane network_vlan_ranges: ctlplane bridge_mappings: ctlplane:br-ctlplane tenant_network_type: vlan enable_tunneling: 'False' service-password: Ref: NeutronPassword rabbit: host: 127.0.0.1 username: Ref: RabbitUserName password: Ref: RabbitPassword cookie: Fn::GetAtt: - RabbitCookie - value undercloud: Type: OS::Nova::Server Properties: image: Ref: undercloudImage flavor: Ref: Flavor key_name: Ref: KeyName image_update_policy: Ref: ImageUpdatePolicy Metadata: os-collect-config: cfn: access_key_id: Ref: notCompute0Key path: undercloudConfig.Metadata secret_access_key: Fn::GetAtt: - notCompute0Key - SecretAccessKey stack_name: Ref: AWS::StackName