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 NeutronAllowL3AgentFailover:
173 description: Allow automatic l3-agent failover
177 description: Whether to enable l3-agent HA
181 description: Agent mode for the neutron-l3-agent on the controller hosts
185 default: '' # Has to be here because of the ignored empty value bug
188 default: libvirt.LibvirtDriver
189 NovaComputeExtraConfig:
192 NovaCompute specific configuration to inject into the cluster. Same
193 structure as ExtraConfig.
195 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::TripleO::Net::SoftwareConfig
251 type: OS::TripleO::SoftwareDeployment
253 signal_transport: NO_SIGNAL
254 config: {get_attr: [NetworkConfig, config_id]}
255 server: {get_resource: NovaCompute}
257 bridge_name: {get_param: NeutronPhysicalBridge}
258 interface_name: {get_param: NeutronPublicInterface}
261 type: OS::Heat::StructuredConfig
263 group: os-apply-config
266 compute_driver: { get_input: nova_compute_driver }
267 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
268 debug: {get_input: debug}
269 host: {get_input: nova_api_host}
270 public_ip: {get_input: nova_public_ip}
271 service-password: {get_input: nova_password}
273 debug: {get_input: debug}
274 metering_secret: {get_input: ceilometer_metering_secret}
275 service-password: {get_input: ceilometer_password}
276 compute_agent: {get_input: ceilometer_compute_agent}
278 export_MIB: UCD-SNMP-MIB
279 readonly_user_name: {get_input: snmpd_readonly_user_name}
280 readonly_user_password: {get_input: snmpd_readonly_user_password}
282 debug: {get_input: debug}
283 host: {get_input: glance_host}
284 port: {get_input: glance_port}
285 protocol: {get_input: glance_protocol}
287 debug: {get_input: debug}
288 host: {get_input: keystone_host}
290 debug: {get_input: debug}
291 flat-networks: {get_input: neutron_flat_networks}
292 host: {get_input: neutron_host}
293 router_distributed: {get_input: neutron_router_distributed}
294 agent_mode: {get_input: neutron_agent_mode}
295 ovs_db: {get_input: neutron_dsn}
296 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
297 mechanism_drivers: {get_input: neutron_mechanism_drivers}
298 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
299 l3_ha: {get_input: neutron_l3_ha}
301 local_ip: {get_input: neutron_local_ip}
302 tenant_network_type: {get_input: neutron_tenant_network_type}
303 tunnel_types: {get_input: neutron_tunnel_types}
304 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
305 bridge_mappings: {get_input: neutron_bridge_mappings}
306 enable_tunneling: {get_input: neutron_enable_tunneling}
307 physical_bridge: {get_input: neutron_physical_bridge}
308 public_interface: {get_input: neutron_public_interface}
309 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
310 service-password: {get_input: neutron_password}
311 admin-password: {get_input: admin_password}
313 host: {get_input: rabbit_host}
314 username: {get_input: rabbit_username}
315 password: {get_input: rabbit_password}
318 - {server: {get_input: ntp_server}}
320 NovaComputeDeployment:
321 type: OS::TripleO::SoftwareDeployment
323 signal_transport: NO_SIGNAL
324 config: {get_resource: NovaComputeConfig}
325 server: {get_resource: NovaCompute}
327 debug: {get_param: Debug}
328 nova_compute_driver: {get_param: NovaComputeDriver}
329 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
330 nova_public_ip: {get_param: NovaPublicIP}
331 nova_api_host: {get_param: NovaApiHost}
332 nova_password: {get_param: NovaPassword}
333 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
334 ceilometer_password: {get_param: CeilometerPassword}
335 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
336 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
337 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
338 glance_host: {get_param: GlanceHost}
339 glance_port: {get_param: GlancePort}
340 glance_protocol: {get_param: GlanceProtocol}
341 keystone_host: {get_param: KeystoneHost}
342 neutron_flat_networks: {get_param: NeutronFlatNetworks}
343 neutron_host: {get_param: NeutronHost}
344 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
345 neutron_tenant_network_type: {get_param: NeutronNetworkType}
346 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
347 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
348 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
349 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
350 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
351 neutron_public_interface: {get_param: NeutronPublicInterface}
352 neutron_password: {get_param: NeutronPassword}
353 neutron_agent_mode: {get_param: NeutronAgentMode}
354 neutron_router_distributed: {get_param: NeutronDVR}
355 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
356 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
357 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
358 neutron_l3_ha: {get_param: NeutronL3HA}
359 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
360 admin_password: {get_param: AdminPassword}
361 rabbit_host: {get_param: RabbitHost}
362 rabbit_username: {get_param: RabbitUserName}
363 rabbit_password: {get_param: RabbitPassword}
364 ntp_server: {get_param: NtpServer}
366 NovaComputePassthrough:
367 type: OS::Heat::StructuredConfig
369 group: os-apply-config
370 config: {get_input: passthrough_config}
372 NovaComputePassthroughSpecific:
373 type: OS::Heat::StructuredConfig
375 group: os-apply-config
376 config: {get_input: passthrough_config_specific}
378 NovaComputePassthroughDeployment:
379 depends_on: [NovaComputeDeployment]
380 type: OS::Heat::StructuredDeployment
382 config: {get_resource: NovaComputePassthrough}
383 server: {get_resource: NovaCompute}
384 signal_transport: NO_SIGNAL
386 passthrough_config: {get_param: ExtraConfig}
388 NovaComputePassthroughDeploymentSpecific:
389 depends_on: [NovaComputePassthroughDeployment]
390 type: OS::Heat::StructuredDeployment
392 config: {get_resource: NovaComputePassthroughSpecific}
393 server: {get_resource: NovaCompute}
394 signal_transport: NO_SIGNAL
396 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
400 description: IP address of the server in the ctlplane network
401 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
403 description: Hostname of the server
404 value: {get_attr: [NovaCompute, name]}
407 Server's IP address and hostname in the /etc/hosts format
410 template: "IP HOST HOST.novalocal"
412 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
413 HOST: {get_attr: [NovaCompute, name]}
414 nova_server_resource:
415 description: Heat resource handle for the Nova compute server
417 {get_resource: NovaCompute}