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:
198 NovaEnableRbdBackend:
200 description: Whether to enable or not the Rbd backend for Nova
204 description: The password for the nova service account, used by nova-api.
209 default: '' # Has to be here because of the ignored empty value bug
215 default: '' # Has to be here because of the ignored empty value bug
218 description: The password for RabbitMQ
223 description: The username for RabbitMQ
228 Rabbit client subscriber parameter to specify
229 an SSL connection to the RabbitMQ host.
233 description: Set rabbit subscriber port, change this if using SSL
235 SnmpdReadonlyUserName:
236 default: ro_snmp_user
237 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
239 SnmpdReadonlyUserPassword:
241 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
249 type: OS::Nova::Server
254 get_param: ImageUpdatePolicy
255 flavor: {get_param: Flavor}
256 key_name: {get_param: KeyName}
259 user_data_format: SOFTWARE_CONFIG
262 type: OS::TripleO::Net::SoftwareConfig
265 type: OS::TripleO::SoftwareDeployment
267 signal_transport: NO_SIGNAL
268 config: {get_attr: [NetworkConfig, config_id]}
269 server: {get_resource: NovaCompute}
271 bridge_name: {get_param: NeutronPhysicalBridge}
272 interface_name: {get_param: NeutronPublicInterface}
275 type: OS::Heat::StructuredConfig
277 group: os-apply-config
280 compute_driver: { get_input: nova_compute_driver }
281 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
282 debug: {get_input: debug}
283 host: {get_input: nova_api_host}
284 public_ip: {get_input: nova_public_ip}
285 service-password: {get_input: nova_password}
287 debug: {get_input: debug}
288 metering_secret: {get_input: ceilometer_metering_secret}
289 service-password: {get_input: ceilometer_password}
290 compute_agent: {get_input: ceilometer_compute_agent}
292 export_MIB: UCD-SNMP-MIB
293 readonly_user_name: {get_input: snmpd_readonly_user_name}
294 readonly_user_password: {get_input: snmpd_readonly_user_password}
296 debug: {get_input: debug}
297 host: {get_input: glance_host}
298 port: {get_input: glance_port}
299 protocol: {get_input: glance_protocol}
301 debug: {get_input: debug}
302 host: {get_input: keystone_host}
304 debug: {get_input: debug}
305 flat-networks: {get_input: neutron_flat_networks}
306 host: {get_input: neutron_host}
307 router_distributed: {get_input: neutron_router_distributed}
308 agent_mode: {get_input: neutron_agent_mode}
309 ovs_db: {get_input: neutron_dsn}
310 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
311 mechanism_drivers: {get_input: neutron_mechanism_drivers}
312 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
313 l3_ha: {get_input: neutron_l3_ha}
315 local_ip: {get_input: neutron_local_ip}
316 tenant_network_type: {get_input: neutron_tenant_network_type}
317 tunnel_types: {get_input: neutron_tunnel_types}
318 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
319 bridge_mappings: {get_input: neutron_bridge_mappings}
320 enable_tunneling: {get_input: neutron_enable_tunneling}
321 physical_bridge: {get_input: neutron_physical_bridge}
322 public_interface: {get_input: neutron_public_interface}
323 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
324 service-password: {get_input: neutron_password}
325 admin-password: {get_input: admin_password}
327 host: {get_input: rabbit_host}
328 username: {get_input: rabbit_username}
329 password: {get_input: rabbit_password}
332 - {server: {get_input: ntp_server}}
334 NovaComputeDeployment:
335 type: OS::TripleO::SoftwareDeployment
337 signal_transport: NO_SIGNAL
338 config: {get_resource: NovaComputeConfig}
339 server: {get_resource: NovaCompute}
341 debug: {get_param: Debug}
342 nova_compute_driver: {get_param: NovaComputeDriver}
343 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
344 nova_public_ip: {get_param: NovaPublicIP}
345 nova_api_host: {get_param: NovaApiHost}
346 nova_password: {get_param: NovaPassword}
347 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
348 ceilometer_password: {get_param: CeilometerPassword}
349 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
350 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
351 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
352 glance_host: {get_param: GlanceHost}
353 glance_port: {get_param: GlancePort}
354 glance_protocol: {get_param: GlanceProtocol}
355 keystone_host: {get_param: KeystoneHost}
356 neutron_flat_networks: {get_param: NeutronFlatNetworks}
357 neutron_host: {get_param: NeutronHost}
358 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
359 neutron_tenant_network_type: {get_param: NeutronNetworkType}
360 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
361 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
362 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
363 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
364 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
365 neutron_public_interface: {get_param: NeutronPublicInterface}
366 neutron_password: {get_param: NeutronPassword}
367 neutron_agent_mode: {get_param: NeutronAgentMode}
368 neutron_router_distributed: {get_param: NeutronDVR}
369 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
370 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
371 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
372 neutron_l3_ha: {get_param: NeutronL3HA}
373 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
374 admin_password: {get_param: AdminPassword}
375 rabbit_host: {get_param: RabbitHost}
376 rabbit_username: {get_param: RabbitUserName}
377 rabbit_password: {get_param: RabbitPassword}
378 ntp_server: {get_param: NtpServer}
380 NovaComputePassthrough:
381 type: OS::Heat::StructuredConfig
383 group: os-apply-config
384 config: {get_input: passthrough_config}
386 NovaComputePassthroughSpecific:
387 type: OS::Heat::StructuredConfig
389 group: os-apply-config
390 config: {get_input: passthrough_config_specific}
392 NovaComputePassthroughDeployment:
393 depends_on: [NovaComputeDeployment]
394 type: OS::Heat::StructuredDeployment
396 config: {get_resource: NovaComputePassthrough}
397 server: {get_resource: NovaCompute}
398 signal_transport: NO_SIGNAL
400 passthrough_config: {get_param: ExtraConfig}
402 NovaComputePassthroughDeploymentSpecific:
403 depends_on: [NovaComputePassthroughDeployment]
404 type: OS::Heat::StructuredDeployment
406 config: {get_resource: NovaComputePassthroughSpecific}
407 server: {get_resource: NovaCompute}
408 signal_transport: NO_SIGNAL
410 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
414 description: IP address of the server in the ctlplane network
415 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
417 description: Hostname of the server
418 value: {get_attr: [NovaCompute, name]}
421 Server's IP address and hostname in the /etc/hosts format
424 template: "IP HOST HOST.novalocal"
426 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
427 HOST: {get_attr: [NovaCompute, name]}
428 nova_server_resource:
429 description: Heat resource handle for the Nova compute server
431 {get_resource: NovaCompute}