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.
113 default: "datacentre:br-ex"
114 NeutronEnableTunnelling:
119 default: 'datacentre'
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
262 user_data: {get_resource: NodeUserData}
265 type: OS::TripleO::NodeUserData
268 type: OS::TripleO::Compute::Net::SoftwareConfig
271 type: OS::TripleO::SoftwareDeployment
273 signal_transport: NO_SIGNAL
274 config: {get_attr: [NetworkConfig, config_id]}
275 server: {get_resource: NovaCompute}
277 bridge_name: {get_param: NeutronPhysicalBridge}
278 interface_name: {get_param: NeutronPublicInterface}
281 type: OS::Heat::StructuredConfig
283 group: os-apply-config
286 compute_driver: { get_input: nova_compute_driver }
287 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
288 debug: {get_input: debug}
289 host: {get_input: nova_api_host}
290 public_ip: {get_input: nova_public_ip}
291 service-password: {get_input: nova_password}
293 debug: {get_input: debug}
294 metering_secret: {get_input: ceilometer_metering_secret}
295 service-password: {get_input: ceilometer_password}
296 compute_agent: {get_input: ceilometer_compute_agent}
298 export_MIB: UCD-SNMP-MIB
299 readonly_user_name: {get_input: snmpd_readonly_user_name}
300 readonly_user_password: {get_input: snmpd_readonly_user_password}
302 debug: {get_input: debug}
303 host: {get_input: glance_host}
304 port: {get_input: glance_port}
305 protocol: {get_input: glance_protocol}
307 debug: {get_input: debug}
308 host: {get_input: keystone_host}
310 debug: {get_input: debug}
311 flat-networks: {get_input: neutron_flat_networks}
312 host: {get_input: neutron_host}
313 router_distributed: {get_input: neutron_router_distributed}
314 agent_mode: {get_input: neutron_agent_mode}
315 ovs_db: {get_input: neutron_dsn}
316 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
317 mechanism_drivers: {get_input: neutron_mechanism_drivers}
318 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
319 l3_ha: {get_input: neutron_l3_ha}
321 local_ip: {get_input: neutron_local_ip}
322 tenant_network_type: {get_input: neutron_tenant_network_type}
323 tunnel_types: {get_input: neutron_tunnel_types}
324 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
325 bridge_mappings: {get_input: neutron_bridge_mappings}
326 enable_tunneling: {get_input: neutron_enable_tunneling}
327 physical_bridge: {get_input: neutron_physical_bridge}
328 public_interface: {get_input: neutron_public_interface}
329 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
330 service-password: {get_input: neutron_password}
331 admin-password: {get_input: admin_password}
333 host: {get_input: rabbit_host}
334 username: {get_input: rabbit_username}
335 password: {get_input: rabbit_password}
338 - {server: {get_input: ntp_server}}
340 NovaComputeDeployment:
341 type: OS::TripleO::SoftwareDeployment
343 signal_transport: NO_SIGNAL
344 config: {get_resource: NovaComputeConfig}
345 server: {get_resource: NovaCompute}
347 debug: {get_param: Debug}
348 nova_compute_driver: {get_param: NovaComputeDriver}
349 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
350 nova_public_ip: {get_param: NovaPublicIP}
351 nova_api_host: {get_param: NovaApiHost}
352 nova_password: {get_param: NovaPassword}
353 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
354 ceilometer_password: {get_param: CeilometerPassword}
355 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
356 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
357 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
358 glance_host: {get_param: GlanceHost}
359 glance_port: {get_param: GlancePort}
360 glance_protocol: {get_param: GlanceProtocol}
361 keystone_host: {get_param: KeystoneHost}
362 neutron_flat_networks: {get_param: NeutronFlatNetworks}
363 neutron_host: {get_param: NeutronHost}
364 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
365 neutron_tenant_network_type: {get_param: NeutronNetworkType}
366 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
367 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
368 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
369 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
370 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
371 neutron_public_interface: {get_param: NeutronPublicInterface}
372 neutron_password: {get_param: NeutronPassword}
373 neutron_agent_mode: {get_param: NeutronAgentMode}
374 neutron_router_distributed: {get_param: NeutronDVR}
375 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
376 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
377 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
378 neutron_l3_ha: {get_param: NeutronL3HA}
379 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
380 admin_password: {get_param: AdminPassword}
381 rabbit_host: {get_param: RabbitHost}
382 rabbit_username: {get_param: RabbitUserName}
383 rabbit_password: {get_param: RabbitPassword}
384 ntp_server: {get_param: NtpServer}
386 NovaComputePassthrough:
387 type: OS::Heat::StructuredConfig
389 group: os-apply-config
390 config: {get_input: passthrough_config}
392 NovaComputePassthroughSpecific:
393 type: OS::Heat::StructuredConfig
395 group: os-apply-config
396 config: {get_input: passthrough_config_specific}
398 NovaComputePassthroughDeployment:
399 depends_on: [NovaComputeDeployment]
400 type: OS::Heat::StructuredDeployment
402 config: {get_resource: NovaComputePassthrough}
403 server: {get_resource: NovaCompute}
404 signal_transport: NO_SIGNAL
406 passthrough_config: {get_param: ExtraConfig}
408 NovaComputePassthroughDeploymentSpecific:
409 depends_on: [NovaComputePassthroughDeployment]
410 type: OS::Heat::StructuredDeployment
412 config: {get_resource: NovaComputePassthroughSpecific}
413 server: {get_resource: NovaCompute}
414 signal_transport: NO_SIGNAL
416 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
420 description: IP address of the server in the ctlplane network
421 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
423 description: Hostname of the server
424 value: {get_attr: [NovaCompute, name]}
427 Server's IP address and hostname in the /etc/hosts format
432 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
433 HOST: {get_attr: [NovaCompute, name]}
434 nova_server_resource:
435 description: Heat resource handle for the Nova compute server
437 {get_resource: NovaCompute}