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
78 default: '' # Has to be here because of the ignored empty value bug
81 description: Glance port.
85 description: Protocol to use when connecting to glance, set to https for SSL.
89 default: overcloud-compute
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
101 LiveUpdateComputeImage:
103 description: The image ID for live-updates to the overcloud compute nodes.
107 description: The IP address for the undercloud Glance API.
112 description: The live-update password for the undercloud Glance API.
114 LiveUpdateTenantName:
116 description: The live-update tenant name for the undercloud Glance API.
120 description: The live-update username for the undercloud Glance API.
122 NeutronBridgeMappings:
124 The OVS logical->physical bridge mappings to use. See the Neutron
125 documentation for details. Defaults to mapping br-ex - the external
126 bridge on hosts - to a physical name 'datacentre' which can be used
127 to create provider networks (and we use this for the default floating
128 network) - if changing this either use different post-install network
129 scripts or be sure to keep 'datacentre' as a mapping network name.
134 NeutronEnableTunnelling:
141 If set, flat networks to configure in neutron plugins.
144 default: '' # Has to be here because of the ignored empty value bug
147 description: The tenant network type for Neutron, either gre or vxlan.
149 NeutronNetworkVLANRanges:
150 default: 'datacentre'
152 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
153 Neutron documentation for permitted values. Defaults to permitting any
154 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
158 description: The password for the neutron service account, used by neutron agents.
161 NeutronPhysicalBridge:
163 description: An OVS bridge to create for accessing external networks.
165 NeutronPublicInterface:
167 description: A port to add to the NeutronPhysicalBridge.
172 The tunnel types for the Neutron tenant network. To specify multiple
173 values, use a comma separated string, like so: 'gre,vxlan'
177 default: '' # Has to be here because of the ignored empty value bug
180 default: libvirt.LibvirtDriver
181 NovaComputeExtraConfig:
184 NovaCompute specific configuration to inject into the cluster. Same
185 structure as ExtraConfig.
187 NovaComputeLibvirtType:
194 description: The password for the nova service account, used by nova-api.
199 default: '' # Has to be here because of the ignored empty value bug
205 default: '' # Has to be here because of the ignored empty value bug
208 description: The password for RabbitMQ
213 description: The username for RabbitMQ
215 SnmpdReadonlyUserName:
216 default: ro_snmp_user
217 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
219 SnmpdReadonlyUserPassword:
221 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
229 type: OS::Nova::Server
234 get_param: ImageUpdatePolicy
235 flavor: {get_param: Flavor}
236 key_name: {get_param: KeyName}
239 user_data_format: SOFTWARE_CONFIG
242 type: OS::Heat::StructuredConfig
244 group: os-apply-config
247 compute_driver: { get_input: nova_compute_driver }
248 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
249 db: {get_input: nova_dsn}
250 debug: {get_param: Debug}
251 host: {get_input: nova_api_host}
252 public_ip: {get_input: nova_public_ip}
253 service-password: {get_input: nova_password}
255 db: {get_input: ceilometer_dsn}
256 debug: {get_param: Debug}
257 metering_secret: {get_input: ceilometer_metering_secret}
258 service-password: {get_input: ceilometer_password}
259 compute_agent: {get_input: ceilometer_compute_agent}
261 export_MIB: UCD-SNMP-MIB
262 readonly_user_name: {get_input: snmpd_readonly_user_name}
263 readonly_user_password: {get_input: snmpd_readonly_user_password}
265 debug: {get_param: Debug}
266 host: {get_input: glance_host}
267 port: {get_input: glance_port}
268 protocol: {get_input: glance_protocol}
270 debug: {get_param: Debug}
271 host: {get_input: keystone_host}
273 debug: {get_param: Debug}
274 flat-networks: {get_input: neutron_flat_networks}
275 host: {get_input: neutron_host}
276 ovs_db: {get_input: neutron_dsn}
278 local_ip: {get_input: neutron_local_ip}
279 tenant_network_type: {get_input: neutron_tenant_network_type}
280 tunnel_types: {get_input: neutron_tunnel_types}
281 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
282 bridge_mappings: {get_input: neutron_bridge_mappings}
283 enable_tunneling: {get_input: neutron_enable_tunneling}
284 physical_bridge: {get_input: neutron_physical_bridge}
285 public_interface: {get_input: neutron_public_interface}
286 service-password: {get_input: neutron_password}
287 admin-password: {get_input: admin_password}
289 host: {get_input: rabbit_host}
290 username: {get_input: rabbit_username}
291 password: {get_input: rabbit_password}
293 host: {get_input: live_update_host}
294 username: {get_input: live_update_username}
295 password: {get_input: live_update_password}
296 tenant-name: {get_input: live_update_tenant_name}
297 base_image_id: {get_input: nova_image}
298 live_update_image_id: {get_input: live_update_compute_image}
301 - {server: {get_input: ntp_server}, fudge: "stratum 0"}
303 NovaComputeDeployment:
304 type: OS::Heat::StructuredDeployment
306 signal_transport: NO_SIGNAL
307 config: {get_resource: NovaComputeConfig}
308 server: {get_resource: NovaCompute}
310 nova_compute_driver: {get_param: NovaComputeDriver}
311 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
312 nova_dsn: {get_param: NovaDSN}
313 nova_public_ip: {get_param: NovaPublicIP}
314 nova_api_host: {get_param: NovaApiHost}
315 nova_password: {get_param: NovaPassword}
316 ceilometer_dsn: {get_param: CeilometerDSN}
317 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
318 ceilometer_password: {get_param: CeilometerPassword}
319 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
320 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
321 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
322 glance_host: {get_param: GlanceHost}
323 glance_port: {get_param: GlancePort}
324 glance_protocol: {get_param: GlanceProtocol}
325 keystone_host: {get_param: KeystoneHost}
326 neutron_flat_networks: {get_param: NeutronFlatNetworks}
327 neutron_host: {get_param: NeutronHost}
328 neutron_dsn: {get_param: NeutronDSN}
329 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
330 neutron_tenant_network_type: {get_param: NeutronNetworkType}
331 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
332 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
333 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
334 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
335 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
336 neutron_public_interface: {get_param: NeutronPublicInterface}
337 neutron_password: {get_param: NeutronPassword}
338 admin_password: {get_param: AdminPassword}
339 rabbit_host: {get_param: RabbitHost}
340 rabbit_username: {get_param: RabbitUserName}
341 rabbit_password: {get_param: RabbitPassword}
342 live_update_host: {get_param: LiveUpdateHost}
343 live_update_username: {get_param: LiveUpdateUserName}
344 live_update_password: {get_param: LiveUpdatePassword}
345 live_update_tenant_name: {get_param: LiveUpdateTenantName}
346 nova_image: {get_param: Image}
347 live_update_image_id: {get_param: LiveUpdateComputeImage}
348 ntp_server: {get_param: NtpServer}
350 NovaComputePassthrough:
351 type: OS::Heat::StructuredConfig
353 group: os-apply-config
354 config: {get_input: passthrough_config}
356 NovaComputePassthroughSpecific:
357 type: OS::Heat::StructuredConfig
359 group: os-apply-config
360 config: {get_input: passthrough_config_specific}
362 NovaComputePassthroughDeployment:
363 depends_on: [NovaComputeDeployment]
364 type: OS::Heat::StructuredDeployment
366 config: {get_resource: NovaComputePassthrough}
367 server: {get_resource: NovaCompute}
368 signal_transport: NO_SIGNAL
370 passthrough_config: {get_param: ExtraConfig}
372 NovaComputePassthroughDeploymentSpecific:
373 depends_on: [NovaComputePassthroughDeployment]
374 type: OS::Heat::StructuredDeployment
376 config: {get_resource: NovaComputePassthroughSpecific}
377 server: {get_resource: NovaCompute}
378 signal_transport: NO_SIGNAL
380 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
384 description: IP address of the server in the ctlplane network
385 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
387 description: Hostname of the server
388 value: {get_attr: [NovaCompute, name]}
391 Server's IP address and hostname in the /etc/hosts format
394 template: "IP HOST HOST.novalocal"
396 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
397 HOST: {get_attr: [NovaCompute, name]}
398 nova_server_resource:
399 description: Heat resource handle for the Nova compute server
401 {get_resource: NovaCompute}