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]
18 CeilometerMeteringSecret:
20 description: Secret shared by the ceilometer services.
25 description: The password for the ceilometer service account.
30 description: Set to True to enable debugging on all services.
35 Additional configuration to inject into the cluster. The JSON should have
36 the following structure:
39 [{"section": "SECTIONNAME",
41 [{"option": "OPTIONNAME",
52 [{"section": "default",
54 [{"option": "force_config_drive",
62 "value": "nova.cells.rpc_driver.CellsRPCDriver"
71 description: Flavor for the nova compute node
74 - custom_constraint: nova.flavor
77 default: '' # Has to be here because of the ignored empty value bug
80 description: Glance port.
84 description: Protocol to use when connecting to glance, set to https for SSL.
88 default: overcloud-compute
90 - custom_constraint: glance.image
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
100 - custom_constraint: nova.keypair
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
114 NeutronEnableTunnelling:
121 If set, flat networks to configure in neutron plugins.
124 default: '' # Has to be here because of the ignored empty value bug
127 description: The tenant network type for Neutron, either gre or vxlan.
129 NeutronNetworkVLANRanges:
130 default: 'datacentre'
132 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
133 Neutron documentation for permitted values. Defaults to permitting any
134 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPhysicalBridge:
143 description: An OVS bridge to create for accessing external networks.
145 NeutronPublicInterface:
147 description: A port to add to the NeutronPhysicalBridge.
152 The tunnel types for the Neutron tenant network. To specify multiple
153 values, use a comma separated string, like so: 'gre,vxlan'
155 NeutronPublicInterfaceRawDevice:
161 NeutronMetadataProxySharedSecret:
163 description: Shared secret to prevent spoofing
165 NeutronMechanismDrivers:
166 default: 'openvswitch'
168 The mechanism drivers for the Neutron tenant network. To specify multiple
169 values, use a comma separated string, like so: 'openvswitch,l2_population'
171 # Not relevant for Computes, should be removed
172 NeutronAllowL3AgentFailover:
174 description: Allow automatic l3-agent failover
176 # Not relevant for Computes, should be removed
179 description: Whether to enable l3-agent HA
183 description: Agent mode for the neutron-l3-agent on the controller hosts
187 default: '' # Has to be here because of the ignored empty value bug
190 default: libvirt.LibvirtDriver
191 NovaComputeExtraConfig:
194 NovaCompute specific configuration to inject into the cluster. Same
195 structure as ExtraConfig.
197 NovaComputeLibvirtType:
200 NovaEnableRbdBackend:
202 description: Whether to enable or not the Rbd backend for Nova
206 description: The password for the nova service account, used by nova-api.
211 default: '' # Has to be here because of the ignored empty value bug
217 default: '' # Has to be here because of the ignored empty value bug
220 description: The password for RabbitMQ
225 description: The username for RabbitMQ
227 SnmpdReadonlyUserName:
228 default: ro_snmp_user
229 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
231 SnmpdReadonlyUserPassword:
233 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
241 type: OS::Nova::Server
246 get_param: ImageUpdatePolicy
247 flavor: {get_param: Flavor}
248 key_name: {get_param: KeyName}
251 user_data_format: SOFTWARE_CONFIG
254 type: OS::TripleO::Net::SoftwareConfig
257 type: OS::TripleO::SoftwareDeployment
259 signal_transport: NO_SIGNAL
260 config: {get_attr: [NetworkConfig, config_id]}
261 server: {get_resource: NovaCompute}
263 bridge_name: {get_param: NeutronPhysicalBridge}
264 interface_name: {get_param: NeutronPublicInterface}
267 type: OS::Heat::StructuredConfig
269 group: os-apply-config
272 compute_driver: { get_input: nova_compute_driver }
273 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
274 debug: {get_input: debug}
275 host: {get_input: nova_api_host}
276 public_ip: {get_input: nova_public_ip}
277 service-password: {get_input: nova_password}
279 debug: {get_input: debug}
280 metering_secret: {get_input: ceilometer_metering_secret}
281 service-password: {get_input: ceilometer_password}
282 compute_agent: {get_input: ceilometer_compute_agent}
284 export_MIB: UCD-SNMP-MIB
285 readonly_user_name: {get_input: snmpd_readonly_user_name}
286 readonly_user_password: {get_input: snmpd_readonly_user_password}
288 debug: {get_input: debug}
289 host: {get_input: glance_host}
290 port: {get_input: glance_port}
291 protocol: {get_input: glance_protocol}
293 debug: {get_input: debug}
294 host: {get_input: keystone_host}
296 debug: {get_input: debug}
297 flat-networks: {get_input: neutron_flat_networks}
298 host: {get_input: neutron_host}
299 router_distributed: {get_input: neutron_router_distributed}
300 agent_mode: {get_input: neutron_agent_mode}
301 ovs_db: {get_input: neutron_dsn}
302 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
303 mechanism_drivers: {get_input: neutron_mechanism_drivers}
304 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
305 l3_ha: {get_input: neutron_l3_ha}
307 local_ip: {get_input: neutron_local_ip}
308 tenant_network_type: {get_input: neutron_tenant_network_type}
309 tunnel_types: {get_input: neutron_tunnel_types}
310 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
311 bridge_mappings: {get_input: neutron_bridge_mappings}
312 enable_tunneling: {get_input: neutron_enable_tunneling}
313 physical_bridge: {get_input: neutron_physical_bridge}
314 public_interface: {get_input: neutron_public_interface}
315 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
316 service-password: {get_input: neutron_password}
317 admin-password: {get_input: admin_password}
319 host: {get_input: rabbit_host}
320 username: {get_input: rabbit_username}
321 password: {get_input: rabbit_password}
324 - {server: {get_input: ntp_server}}
326 NovaComputeDeployment:
327 type: OS::TripleO::SoftwareDeployment
329 signal_transport: NO_SIGNAL
330 config: {get_resource: NovaComputeConfig}
331 server: {get_resource: NovaCompute}
333 debug: {get_param: Debug}
334 nova_compute_driver: {get_param: NovaComputeDriver}
335 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
336 nova_public_ip: {get_param: NovaPublicIP}
337 nova_api_host: {get_param: NovaApiHost}
338 nova_password: {get_param: NovaPassword}
339 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
340 ceilometer_password: {get_param: CeilometerPassword}
341 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
342 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
343 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
344 glance_host: {get_param: GlanceHost}
345 glance_port: {get_param: GlancePort}
346 glance_protocol: {get_param: GlanceProtocol}
347 keystone_host: {get_param: KeystoneHost}
348 neutron_flat_networks: {get_param: NeutronFlatNetworks}
349 neutron_host: {get_param: NeutronHost}
350 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
351 neutron_tenant_network_type: {get_param: NeutronNetworkType}
352 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
353 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
354 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
355 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
356 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
357 neutron_public_interface: {get_param: NeutronPublicInterface}
358 neutron_password: {get_param: NeutronPassword}
359 neutron_agent_mode: {get_param: NeutronAgentMode}
360 neutron_router_distributed: {get_param: NeutronDVR}
361 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
362 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
363 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
364 neutron_l3_ha: {get_param: NeutronL3HA}
365 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
366 admin_password: {get_param: AdminPassword}
367 rabbit_host: {get_param: RabbitHost}
368 rabbit_username: {get_param: RabbitUserName}
369 rabbit_password: {get_param: RabbitPassword}
370 ntp_server: {get_param: NtpServer}
372 NovaComputePassthrough:
373 type: OS::Heat::StructuredConfig
375 group: os-apply-config
376 config: {get_input: passthrough_config}
378 NovaComputePassthroughSpecific:
379 type: OS::Heat::StructuredConfig
381 group: os-apply-config
382 config: {get_input: passthrough_config_specific}
384 NovaComputePassthroughDeployment:
385 depends_on: [NovaComputeDeployment]
386 type: OS::Heat::StructuredDeployment
388 config: {get_resource: NovaComputePassthrough}
389 server: {get_resource: NovaCompute}
390 signal_transport: NO_SIGNAL
392 passthrough_config: {get_param: ExtraConfig}
394 NovaComputePassthroughDeploymentSpecific:
395 depends_on: [NovaComputePassthroughDeployment]
396 type: OS::Heat::StructuredDeployment
398 config: {get_resource: NovaComputePassthroughSpecific}
399 server: {get_resource: NovaCompute}
400 signal_transport: NO_SIGNAL
402 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
406 description: IP address of the server in the ctlplane network
407 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
409 description: Hostname of the server
410 value: {get_attr: [NovaCompute, name]}
413 Server's IP address and hostname in the /etc/hosts format
416 template: "IP HOST HOST.novalocal"
418 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
419 HOST: {get_attr: [NovaCompute, name]}
420 nova_server_resource:
421 description: Heat resource handle for the Nova compute server
423 {get_resource: NovaCompute}