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
230 Rabbit client subscriber parameter to specify
231 an SSL connection to the RabbitMQ host.
235 description: Set rabbit subscriber port, change this if using SSL
237 SnmpdReadonlyUserName:
238 default: ro_snmp_user
239 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
241 SnmpdReadonlyUserPassword:
243 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
251 type: OS::Nova::Server
256 get_param: ImageUpdatePolicy
257 flavor: {get_param: Flavor}
258 key_name: {get_param: KeyName}
261 user_data_format: SOFTWARE_CONFIG
264 type: OS::TripleO::Net::SoftwareConfig
267 type: OS::TripleO::SoftwareDeployment
269 signal_transport: NO_SIGNAL
270 config: {get_attr: [NetworkConfig, config_id]}
271 server: {get_resource: NovaCompute}
273 bridge_name: {get_param: NeutronPhysicalBridge}
274 interface_name: {get_param: NeutronPublicInterface}
277 type: OS::Heat::StructuredConfig
279 group: os-apply-config
282 compute_driver: { get_input: nova_compute_driver }
283 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
284 debug: {get_input: debug}
285 host: {get_input: nova_api_host}
286 public_ip: {get_input: nova_public_ip}
287 service-password: {get_input: nova_password}
289 debug: {get_input: debug}
290 metering_secret: {get_input: ceilometer_metering_secret}
291 service-password: {get_input: ceilometer_password}
292 compute_agent: {get_input: ceilometer_compute_agent}
294 export_MIB: UCD-SNMP-MIB
295 readonly_user_name: {get_input: snmpd_readonly_user_name}
296 readonly_user_password: {get_input: snmpd_readonly_user_password}
298 debug: {get_input: debug}
299 host: {get_input: glance_host}
300 port: {get_input: glance_port}
301 protocol: {get_input: glance_protocol}
303 debug: {get_input: debug}
304 host: {get_input: keystone_host}
306 debug: {get_input: debug}
307 flat-networks: {get_input: neutron_flat_networks}
308 host: {get_input: neutron_host}
309 router_distributed: {get_input: neutron_router_distributed}
310 agent_mode: {get_input: neutron_agent_mode}
311 ovs_db: {get_input: neutron_dsn}
312 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
313 mechanism_drivers: {get_input: neutron_mechanism_drivers}
314 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
315 l3_ha: {get_input: neutron_l3_ha}
317 local_ip: {get_input: neutron_local_ip}
318 tenant_network_type: {get_input: neutron_tenant_network_type}
319 tunnel_types: {get_input: neutron_tunnel_types}
320 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
321 bridge_mappings: {get_input: neutron_bridge_mappings}
322 enable_tunneling: {get_input: neutron_enable_tunneling}
323 physical_bridge: {get_input: neutron_physical_bridge}
324 public_interface: {get_input: neutron_public_interface}
325 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
326 service-password: {get_input: neutron_password}
327 admin-password: {get_input: admin_password}
329 host: {get_input: rabbit_host}
330 username: {get_input: rabbit_username}
331 password: {get_input: rabbit_password}
334 - {server: {get_input: ntp_server}}
336 NovaComputeDeployment:
337 type: OS::TripleO::SoftwareDeployment
339 signal_transport: NO_SIGNAL
340 config: {get_resource: NovaComputeConfig}
341 server: {get_resource: NovaCompute}
343 debug: {get_param: Debug}
344 nova_compute_driver: {get_param: NovaComputeDriver}
345 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
346 nova_public_ip: {get_param: NovaPublicIP}
347 nova_api_host: {get_param: NovaApiHost}
348 nova_password: {get_param: NovaPassword}
349 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
350 ceilometer_password: {get_param: CeilometerPassword}
351 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
352 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
353 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
354 glance_host: {get_param: GlanceHost}
355 glance_port: {get_param: GlancePort}
356 glance_protocol: {get_param: GlanceProtocol}
357 keystone_host: {get_param: KeystoneHost}
358 neutron_flat_networks: {get_param: NeutronFlatNetworks}
359 neutron_host: {get_param: NeutronHost}
360 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
361 neutron_tenant_network_type: {get_param: NeutronNetworkType}
362 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
363 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
364 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
365 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
366 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
367 neutron_public_interface: {get_param: NeutronPublicInterface}
368 neutron_password: {get_param: NeutronPassword}
369 neutron_agent_mode: {get_param: NeutronAgentMode}
370 neutron_router_distributed: {get_param: NeutronDVR}
371 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
372 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
373 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
374 neutron_l3_ha: {get_param: NeutronL3HA}
375 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
376 admin_password: {get_param: AdminPassword}
377 rabbit_host: {get_param: RabbitHost}
378 rabbit_username: {get_param: RabbitUserName}
379 rabbit_password: {get_param: RabbitPassword}
380 ntp_server: {get_param: NtpServer}
382 NovaComputePassthrough:
383 type: OS::Heat::StructuredConfig
385 group: os-apply-config
386 config: {get_input: passthrough_config}
388 NovaComputePassthroughSpecific:
389 type: OS::Heat::StructuredConfig
391 group: os-apply-config
392 config: {get_input: passthrough_config_specific}
394 NovaComputePassthroughDeployment:
395 depends_on: [NovaComputeDeployment]
396 type: OS::Heat::StructuredDeployment
398 config: {get_resource: NovaComputePassthrough}
399 server: {get_resource: NovaCompute}
400 signal_transport: NO_SIGNAL
402 passthrough_config: {get_param: ExtraConfig}
404 NovaComputePassthroughDeploymentSpecific:
405 depends_on: [NovaComputePassthroughDeployment]
406 type: OS::Heat::StructuredDeployment
408 config: {get_resource: NovaComputePassthroughSpecific}
409 server: {get_resource: NovaCompute}
410 signal_transport: NO_SIGNAL
412 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
416 description: IP address of the server in the ctlplane network
417 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
419 description: Hostname of the server
420 value: {get_attr: [NovaCompute, name]}
423 Server's IP address and hostname in the /etc/hosts format
426 template: "IP HOST HOST.novalocal"
428 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
429 HOST: {get_attr: [NovaCompute, name]}
430 nova_server_resource:
431 description: Heat resource handle for the Nova compute server
433 {get_resource: NovaCompute}