Description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL server,Dedicated RabbitMQ Server,Group of Nova Computes 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 CinderPassword: Default: unset Description: The password for the cinder service account, used by cinder-api. Type: String NoEcho: true 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 HeatPassword: Default: unset Description: The password for the Heat service account, used by the Heat services. Type: String NoEcho: true ImageUpdatePolicy: Default: 'REPLACE' Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt. Type: String KeyName: Default: default Description: Name of an existing EC2 KeyPair to enable SSH access to the instances Type: String NeutronPassword: Default: unset Description: The password for the neutron service account, used by neutron agents. Type: String NoEcho: true CeilometerComputeAgent: Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly Type: String Default: '' AllowedValues: ['', Present] CeilometerMeteringSecret: Default: unset Description: Secret shared by the ceilometer services. Type: String NoEcho: true CeilometerPassword: Default: unset Description: The password for the ceilometer service account. Type: String NoEcho: true NovaComputeDriver: Default: libvirt.LibvirtDriver Type: String NovaComputeLibvirtType: Default: '' Type: String NovaImage: Type: String Default: overcloud-compute NovaPassword: Default: unset Description: The password for the nova service account, used by nova-api. Type: String NoEcho: true PowerUserName: Default: stack Description: What username to ssh to the virtual power host with. Type: String NeutronPublicInterface: Default: eth0 Description: What interface to bridge onto br-ex for network nodes. Type: String NeutronPublicInterfaceDefaultRoute: Default: '' Description: A custom default route for the NeutronPublicInterface. Type: String NeutronPublicInterfaceIP: Default: '' Description: A custom IP address to put onto the NeutronPublicInterface. Type: String NeutronPublicInterfaceRawDevice: Default: '' Description: If set, the public interface is a vlan with this device as the raw device. Type: String notcomputeImage: Type: String Default: overcloud-control Resources: AccessPolicy: Properties: AllowedResources: - notcompute - notcomputeConfig Type: OS::Heat::AccessPolicy ComputeAccessPolicy: Properties: AllowedResources: - NovaCompute0 - NovaCompute0Config Type: OS::Heat::AccessPolicy Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey CompletionCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: notcompute Properties: Handle: {Ref: CompletionHandle} Count: '2' Timeout: '1800' CompletionHandle: Type: AWS::CloudFormation::WaitConditionHandle ComputeKey: Properties: UserName: Ref: ComputeUser Type: AWS::IAM::AccessKey ComputeUser: Properties: Policies: - Ref: ComputeAccessPolicy Type: AWS::IAM::User NovaCompute0Config: Type: FileInclude Path: nova-compute-instance.yaml SubKey: Resources.NovaCompute0Config Parameters: NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] } NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/nova']]} CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/ceilometer']]} NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/neutron']]} NeutronNetworkType: "gre" NeutronEnableTunnelling: "True" NeutronNetworkVLANRanges: "" NeutronBridgeMappings: "" RabbitPassword: "guest" NovaCompute0: Type: FileInclude Path: nova-compute-instance.yaml SubKey: Resources.NovaCompute0 User: Properties: Policies: - Ref: AccessPolicy Type: AWS::IAM::User notcomputeConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: '0' InstanceType: '0' Metadata: OpenStack::Heat::Stack: {} OpenStack::ImageBuilder::Elements: - boot-stack - heat-cfntools - heat-localip - neutron-network-node admin-password: Ref: AdminPassword admin-token: Ref: AdminToken bootstack: public_interface_ip: Ref: NeutronPublicInterfaceIP cinder: db: mysql://cinder:unset@localhost/cinder volume_size_mb: '5000' service-password: Ref: CinderPassword completion-handle: Ref: CompletionHandle controller-address: Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks db-password: unset glance: backend: swift db: mysql://glance:unset@localhost/glance host: Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks service-password: Ref: GlancePassword swift-store-user: service:glance swift-store-key: Ref: GlancePassword heat: admin_password: Ref: HeatPassword admin_tenant_name: service admin_user: heat auth_encryption_key: unset___________ db: mysql://heat:unset@localhost/heat watch_server_url: Fn::Join: - '' - - 'http://' - Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks - ':8003' metadata_server_url: Fn::Join: - '' - - 'http://' - Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks - ':8000' waitcondition_server_url: Fn::Join: - '' - - 'http://' - Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks - ':8000/v1/waitcondition' keystone: db: mysql://keystone:unset@localhost/keystone host: Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks neutron: host: Fn::Select: - 0 - Fn::Select: - ctlplane - Fn::GetAtt: - notcompute - networks metadata_proxy_shared_secret: unset ovs: enable_tunneling: 'True' local_ip: Fn::Select: - 0 - Fn::Select: - ctlplane - Fn::GetAtt: - notcompute - networks public_interface: Ref: NeutronPublicInterface public_interface_raw_device: Ref: NeutronPublicInterfaceRawDevice public_interface_route: Ref: NeutronPublicInterfaceDefaultRoute physical_bridge: br-ex tenant_network_type: gre ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 service-password: Ref: NeutronPassword ceilometer: db: mysql://ceilometer:unset@localhost/ceilometer metering_secret: {Ref: CeilometerMeteringSecret} service-password: Ref: CeilometerPassword nova: compute_driver: libvirt.LibvirtDriver db: mysql://nova:unset@localhost/nova default_floating_pool: ext-net host: Fn::Select: - 0 - Fn::Select: - 'ctlplane' - Fn::GetAtt: - notcompute - networks metadata-proxy: true service-password: Ref: NovaPassword os-collect-config: cfn: access_key_id: Ref: Key path: notcomputeConfig.Metadata secret_access_key: Fn::GetAtt: - Key - SecretAccessKey stack_name: Ref: AWS::StackName rabbit: host: Fn::Select: - 0 - Fn::Select: - ctlplane - Fn::GetAtt: - notcompute - networks password: guest notcompute: Type: OS::Nova::Server Properties: image: Ref: notcomputeImage image_update_policy: Ref: ImageUpdatePolicy flavor: Ref: Flavor key_name: Ref: KeyName Metadata: os-collect-config: cfn: access_key_id: Ref: Key path: notcomputeConfig.Metadata secret_access_key: Fn::GetAtt: - Key - SecretAccessKey stack_name: Ref: AWS::StackName Outputs: KeystoneURL: Description: URL for the Overcloud Keystone service Value: Fn::Join: - '' - - http:// - Fn::Select: - 0 - Fn::Select: - ctlplane - Fn::GetAtt: - notcompute - networks - :5000/v2.0/