1 heat_template_version: 2014-10-16
4 OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
9 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
12 CeilometerComputeAgent:
13 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
17 - allowed_values: ['', Present]
20 CeilometerMeteringSecret:
22 description: Secret shared by the ceilometer services.
27 description: The password for the ceilometer service account.
32 description: Set to True to enable debugging on all services.
37 Additional configuration to inject into the cluster. The JSON should have
38 the following structure:
41 [{"section": "SECTIONNAME",
43 [{"option": "OPTIONNAME",
54 [{"section": "default",
56 [{"option": "force_config_drive",
64 "value": "nova.cells.rpc_driver.CellsRPCDriver"
73 description: Flavor for the nova compute node
77 - custom_constraint: nova.flavor
80 default: '' # Has to be here because of the ignored empty value bug
83 description: Glance port.
87 description: Protocol to use when connecting to glance, set to https for SSL.
91 default: overcloud-compute
93 - custom_constraint: glance.image
95 default: 'REBUILD_PRESERVE_EPHEMERAL'
96 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
99 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
103 - custom_constraint: nova.keypair
107 LiveUpdateComputeImage:
109 description: The image ID for live-updates to the overcloud compute nodes.
113 description: The IP address for the undercloud Glance API.
118 description: The live-update password for the undercloud Glance API.
120 LiveUpdateTenantName:
122 description: The live-update tenant name for the undercloud Glance API.
126 description: The live-update username for the undercloud Glance API.
128 NeutronBridgeMappings:
130 The OVS logical->physical bridge mappings to use. See the Neutron
131 documentation for details. Defaults to mapping br-ex - the external
132 bridge on hosts - to a physical name 'datacentre' which can be used
133 to create provider networks (and we use this for the default floating
134 network) - if changing this either use different post-install network
135 scripts or be sure to keep 'datacentre' as a mapping network name.
140 NeutronEnableTunnelling:
147 If set, flat networks to configure in neutron plugins.
150 default: '' # Has to be here because of the ignored empty value bug
153 description: The tenant network type for Neutron, either gre or vxlan.
155 NeutronNetworkVLANRanges:
156 default: 'datacentre'
158 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
159 Neutron documentation for permitted values. Defaults to permitting any
160 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
164 description: The password for the neutron service account, used by neutron agents.
167 NeutronPhysicalBridge:
169 description: An OVS bridge to create for accessing external networks.
171 NeutronPublicInterface:
173 description: A port to add to the NeutronPhysicalBridge.
178 The tunnel types for the Neutron tenant network. To specify multiple
179 values, use a comma separated string, like so: 'gre,vxlan'
183 default: '' # Has to be here because of the ignored empty value bug
186 default: libvirt.LibvirtDriver
187 NovaComputeExtraConfig:
190 NovaCompute specific configuration to inject into the cluster. Same
191 structure as ExtraConfig.
193 NovaComputeLibvirtType:
200 description: The password for the nova service account, used by nova-api.
205 default: '' # Has to be here because of the ignored empty value bug
211 default: '' # Has to be here because of the ignored empty value bug
214 description: The password for RabbitMQ
219 description: The username for RabbitMQ
221 SnmpdReadonlyUserName:
222 default: ro_snmp_user
223 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
225 SnmpdReadonlyUserPassword:
227 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
235 type: OS::Nova::Server
240 get_param: ImageUpdatePolicy
241 flavor: {get_param: Flavor}
242 key_name: {get_param: KeyName}
245 user_data_format: SOFTWARE_CONFIG
248 type: OS::Heat::StructuredConfig
250 group: os-apply-config
253 compute_driver: { get_input: nova_compute_driver }
254 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
255 db: {get_input: nova_dsn}
256 debug: {get_param: Debug}
257 host: {get_input: nova_api_host}
258 public_ip: {get_input: nova_public_ip}
259 service-password: {get_input: nova_password}
261 db: {get_input: ceilometer_dsn}
262 debug: {get_param: Debug}
263 metering_secret: {get_input: ceilometer_metering_secret}
264 service-password: {get_input: ceilometer_password}
265 compute_agent: {get_input: ceilometer_compute_agent}
267 export_MIB: UCD-SNMP-MIB
268 readonly_user_name: {get_input: snmpd_readonly_user_name}
269 readonly_user_password: {get_input: snmpd_readonly_user_password}
271 debug: {get_param: Debug}
272 host: {get_input: glance_host}
273 port: {get_input: glance_port}
274 protocol: {get_input: glance_protocol}
276 debug: {get_param: Debug}
277 host: {get_input: keystone_host}
279 debug: {get_param: Debug}
280 flat-networks: {get_input: neutron_flat_networks}
281 host: {get_input: neutron_host}
282 ovs_db: {get_input: neutron_dsn}
284 local_ip: {get_input: neutron_local_ip}
285 tenant_network_type: {get_input: neutron_tenant_network_type}
286 tunnel_types: {get_input: neutron_tunnel_types}
287 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
288 bridge_mappings: {get_input: neutron_bridge_mappings}
289 enable_tunneling: {get_input: neutron_enable_tunneling}
290 physical_bridge: {get_input: neutron_physical_bridge}
291 public_interface: {get_input: neutron_public_interface}
292 service-password: {get_input: neutron_password}
293 admin-password: {get_input: admin_password}
295 host: {get_input: rabbit_host}
296 username: {get_input: rabbit_username}
297 password: {get_input: rabbit_password}
299 host: {get_input: live_update_host}
300 username: {get_input: live_update_username}
301 password: {get_input: live_update_password}
302 tenant-name: {get_input: live_update_tenant_name}
303 base_image_id: {get_input: nova_image}
304 live_update_image_id: {get_input: live_update_compute_image}
307 - {server: {get_input: ntp_server}, fudge: "stratum 0"}
309 NovaComputeDeployment:
310 type: OS::Heat::StructuredDeployment
312 signal_transport: NO_SIGNAL
313 config: {get_resource: NovaComputeConfig}
314 server: {get_resource: NovaCompute}
316 nova_compute_driver: {get_param: NovaComputeDriver}
317 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
318 nova_dsn: {get_param: NovaDSN}
319 nova_public_ip: {get_param: NovaPublicIP}
320 nova_api_host: {get_param: NovaApiHost}
321 nova_password: {get_param: NovaPassword}
322 ceilometer_dsn: {get_param: CeilometerDSN}
323 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
324 ceilometer_password: {get_param: CeilometerPassword}
325 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
326 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
327 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
328 glance_host: {get_param: GlanceHost}
329 glance_port: {get_param: GlancePort}
330 glance_protocol: {get_param: GlanceProtocol}
331 keystone_host: {get_param: KeystoneHost}
332 neutron_flat_networks: {get_param: NeutronFlatNetworks}
333 neutron_host: {get_param: NeutronHost}
334 neutron_dsn: {get_param: NeutronDSN}
335 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
336 neutron_tenant_network_type: {get_param: NeutronNetworkType}
337 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
338 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
339 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
340 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
341 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
342 neutron_public_interface: {get_param: NeutronPublicInterface}
343 neutron_password: {get_param: NeutronPassword}
344 admin_password: {get_param: AdminPassword}
345 rabbit_host: {get_param: RabbitHost}
346 rabbit_username: {get_param: RabbitUserName}
347 rabbit_password: {get_param: RabbitPassword}
348 live_update_host: {get_param: LiveUpdateHost}
349 live_update_username: {get_param: LiveUpdateUserName}
350 live_update_password: {get_param: LiveUpdatePassword}
351 live_update_tenant_name: {get_param: LiveUpdateTenantName}
352 nova_image: {get_param: Image}
353 live_update_image_id: {get_param: LiveUpdateComputeImage}
354 ntp_server: {get_param: NtpServer}
356 NovaComputePassthrough:
357 type: OS::Heat::StructuredConfig
359 group: os-apply-config
360 config: {get_input: passthrough_config}
362 NovaComputePassthroughSpecific:
363 type: OS::Heat::StructuredConfig
365 group: os-apply-config
366 config: {get_input: passthrough_config_specific}
368 NovaComputePassthroughDeployment:
369 depends_on: [NovaComputeDeployment]
370 type: OS::Heat::StructuredDeployment
372 config: {get_resource: NovaComputePassthrough}
373 server: {get_resource: NovaCompute}
374 signal_transport: NO_SIGNAL
376 passthrough_config: {get_param: ExtraConfig}
378 NovaComputePassthroughDeploymentSpecific:
379 depends_on: [NovaComputePassthroughDeployment]
380 type: OS::Heat::StructuredDeployment
382 config: {get_resource: NovaComputePassthroughSpecific}
383 server: {get_resource: NovaCompute}
384 signal_transport: NO_SIGNAL
386 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
390 description: IP address of the server in the ctlplane network
391 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
393 description: Hostname of the server
394 value: {get_attr: [NovaCompute, name]}
397 Server's IP address and hostname in the /etc/hosts format
400 template: "IP HOST HOST.novalocal"
402 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
403 HOST: {get_attr: [NovaCompute, name]}
404 nova_server_resource:
405 description: Heat resource handle for the Nova compute server
407 {get_resource: NovaCompute}