description: All-in-one baremetal OpenStack and all dependencies. heat_template_version: 2013-05-23 parameters: AdminPassword: default: unset description: The password for the keystone admin account, used for monitoring, querying neutron etc. type: string hidden: true AdminToken: default: unset description: The keystone auth secret. type: string hidden: true CinderLVMLoopDeviceSize: default: 5000 description: The size of the loopback file used by the cinder LVM driver. type: number BaremetalArch: default: i386 description: The architecture to use in Nova-BM - i386 or amd64. type: string CeilometerMeteringSecret: default: unset description: Secret shared by the ceilometer services. type: string hidden: true CeilometerPassword: default: unset description: The password for the ceilometer service account. type: string hidden: true SnmpdReadonlyUserName: default: ro_snmp_user description: The user name for SNMPd with readonly rights running on all Overcloud nodes type: string SnmpdReadonlyUserPassword: default: unset description: The user password for SNMPd with readonly rights running on all Overcloud nodes type: string hidden: true ExtraConfig: default: {} description: | Additional configuration to inject into the cluster. The JSON should have the following structure: {"FILEKEY": {"config: [{"section": "SECTIONNAME", "values": [{"option": "OPTIONNAME", "value": "VALUENAME" } ] } ] } } For instance: {"nova": {"config": [{"section": "default", "values": [{"option": "compute_manager", "value": "ironic.nova.compute.manager.ClusterComputeManager" } ] }, {"section": "cells", "values": [{"option": "driver", "value": "nova.cells.rpc_driver.CellsRPCDriver" } ] } ] } } type: json Flavor: default: baremetal description: Flavor to request when deploying. type: string GlancePort: default: 9292 description: Glance port. type: string GlanceProtocol: default: http description: Protocol to use when connecting to glance, set to https for SSL. type: string GlancePassword: default: unset description: The password for the glance service account, used by the glance services. type: string hidden: 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 hidden: 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 hidden: true NovaPassword: default: unset description: The password for the nova service account, used by nova-api. type: string hidden: true NeutronPublicInterfaceDefaultRoute: default: '' description: A custom default route for the NeutronPublicInterface. type: string NeutronPublicInterfaceIP: default: '' description: > A custom IP address to put onto the NeutronPublicInterface bridge. See also NeutronPublicInterfaceTagIP for adding a VLAN tagging IP. NeutronPublicInterfaceIP is deprecated in the context of deploying underclouds - its only needed for the seed bootstrap process. type: string NeutronPublicInterfaceTag: default: '' description: > VLAN tag for creating a public VLAN. The tag will be used to create an access port on the exterior bridge, and that port will be given the IP address returned by neutron from the public network. type: string NeutronPublicInterfaceRawDevice: default: '' description: If set, the public interface is a vlan with this device as the raw device. type: string NtpServer: type: string default: '' RabbitUserName: default: guest description: The username for RabbitMQ type: string RabbitPassword: default: guest description: The password for RabbitMQ type: string hidden: 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: '' hidden: true MysqlInnodbBufferPoolSize: description: > Specifies the size of the buffer pool in megabytes. Setting to zero should be interpreted as "no value" and will defer to the lower level default. type: number default: 0 KeystoneCACertificate: default: '' description: Keystone self-signed certificate authority certificate. type: string KeystoneSigningCertificate: default: '' description: Keystone certificate for verifying token validity. type: string KeystoneSigningKey: default: '' description: Keystone key for signing tokens. type: string hidden: true DefaultSignalTransport: default: CFN_SIGNAL description: Transport to use for software-config signals. type: string constraints: - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ] resources: RabbitCookie: type: OS::Heat::RandomString properties: length: 20 salt: get_param: RabbitCookieSalt MysqlRootPassword: type: OS::Heat::RandomString properties: length: 10 undercloudConfig: type: OS::Heat::StructuredConfig properties: config: completion-signal: {get_input: deploy_signal_id} admin-password: get_param: AdminPassword admin-token: get_param: AdminToken bootstrap_host: bootstrap_nodeid: Fn::Select: - 0 - Fn::Select: - 0 - Merge::Map: undercloud: - Fn::Select: - name - get_attr: - undercloud - show nodeid: {get_input: bootstack_nodeid} bootstack: public_interface_ip: get_param: NeutronPublicInterfaceIP controller-address: get_input: controller_host corosync: bindnetaddr: {get_input: controller_host} mcastport: 5577 nodes: Merge::Map: controller0: ip: {get_attr: [undercloud, networks, ctlplane, 0]} pacemaker: stonith_enabled : false recheck_interval : 5 quorum_policy : ignore ceilometer: db: mysql://ceilometer:unset@localhost/ceilometer metering_secret: {get_param: CeilometerMeteringSecret} snmpd_readonly_user_name: get_param: SnmpdReadonlyUserName snmpd_readonly_user_password: get_param: SnmpdReadonlyUserPassword service-password: get_param: CeilometerPassword db-password: unset glance: backend: file db: mysql://glance:unset@localhost/glance host: 127.0.0.1 port: get_param: GlancePort protocol: get_param: GlanceProtocol service-password: get_param: GlancePassword notifier-strategy: get_param: GlanceNotifierStrategy log-file: get_param: GlanceLogFile heat: admin_password: get_param: HeatPassword admin_tenant_name: service admin_user: heat auth_encryption_key: unset___________ db: mysql://heat:unset@localhost/heat stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword} watch_server_url: {get_input: heat.watch_server_url} metadata_server_url: {get_input: heat.metadata_server_url} waitcondition_server_url: {get_input: heat.waitcondition_server_url} keystone: db: mysql://keystone:unset@localhost/keystone host: 127.0.0.1 ca_certificate: {get_param: KeystoneCACertificate} signing_key: {get_param: KeystoneSigningKey} signing_certificate: {get_param: KeystoneSigningCertificate} mysql: innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} root-password: {get_resource: MysqlRootPassword} neutron: host: 127.0.0.1 ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 ovs: public_interface: get_param: NeutronPublicInterface public_interface_raw_device: get_param: NeutronPublicInterfaceRawDevice public_interface_route: get_param: NeutronPublicInterfaceDefaultRoute public_interface_tag: get_param: NeutronPublicInterfaceTag 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: get_param: NeutronPassword rabbit: host: 127.0.0.1 username: get_param: RabbitUserName password: get_param: RabbitPassword cookie: get_attr: - RabbitCookie - value ntp: servers: - {server: {get_param: NtpServer}, fudge: "stratum 0"} undercloudPassthroughConfig: type: OS::Heat::StructuredConfig properties: config: {get_input: passthrough_config} undercloud: type: OS::Nova::Server properties: image: get_param: undercloudImage flavor: get_param: Flavor key_name: get_param: KeyName image_update_policy: get_param: ImageUpdatePolicy networks: - network: ctlplane user_data_format: SOFTWARE_CONFIG undercloudDeployment: depends_on: [undercloudPassthroughDeployment] type: OS::Heat::StructuredDeployment properties: config: {get_resource: undercloudConfig} server: {get_resource: undercloud} signal_transport: {get_param: DefaultSignalTransport} input_values: bootstack_nodeid: get_attr: - undercloud - show - name controller_host: get_attr: - undercloud - networks - ctlplane - 0 heat.watch_server_url: Fn::Join: - '' - - 'http://' - get_attr: [undercloud, networks, ctlplane, 0] - ':8003' heat.metadata_server_url: Fn::Join: - '' - - 'http://' - {get_attr: [undercloud, networks, ctlplane, 0]} - ':8000' heat.waitcondition_server_url: Fn::Join: - '' - - 'http://' - {get_attr: [undercloud, networks, ctlplane, 0]} - ':8000/v1/waitcondition' undercloudPassthroughDeployment: depends_on: [undercloudNovaDeployment] type: OS::Heat::StructuredDeployment properties: config: {get_resource: undercloudPassthroughConfig} server: {get_resource: undercloud} signal_transport: NO_SIGNAL input_values: passthrough_config: {get_param: ExtraConfig}