1 heat_template_version: 2015-04-30
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.
28 CinderEnableNfsBackend:
30 description: Whether to enable or not the NFS backend for Cinder
34 description: Set to True to enable debugging on all services.
39 Additional configuration to inject into the cluster. The JSON should have
40 the following structure:
43 [{"section": "SECTIONNAME",
45 [{"option": "OPTIONNAME",
56 [{"section": "default",
58 [{"option": "force_config_drive",
66 "value": "nova.cells.rpc_driver.CellsRPCDriver"
75 description: Flavor for the nova compute node
78 - custom_constraint: nova.flavor
81 default: '' # Has to be here because of the ignored empty value bug
84 description: Glance port.
88 description: Protocol to use when connecting to glance, set to https for SSL.
92 default: overcloud-compute
94 - custom_constraint: glance.image
96 default: 'REBUILD_PRESERVE_EPHEMERAL'
97 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
100 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
104 - custom_constraint: nova.keypair
108 NeutronBridgeMappings:
110 The OVS logical->physical bridge mappings to use. See the Neutron
111 documentation for details. Defaults to mapping br-ex - the external
112 bridge on hosts - to a physical name 'datacentre' which can be used
113 to create provider networks (and we use this for the default floating
114 network) - if changing this either use different post-install network
115 scripts or be sure to keep 'datacentre' as a mapping network name.
117 default: "datacentre:br-ex"
118 NeutronEnableTunnelling:
123 default: 'datacentre'
125 If set, flat networks to configure in neutron plugins.
128 default: '' # Has to be here because of the ignored empty value bug
131 description: The tenant network type for Neutron, either gre or vxlan.
133 NeutronNetworkVLANRanges:
134 default: 'datacentre'
136 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
137 Neutron documentation for permitted values. Defaults to permitting any
138 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
139 type: comma_delimited_list
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPhysicalBridge:
147 description: An OVS bridge to create for accessing external networks.
149 NeutronPublicInterface:
151 description: A port to add to the NeutronPhysicalBridge.
156 The tunnel types for the Neutron tenant network. To specify multiple
157 values, use a comma separated string, like so: 'gre,vxlan'
159 NeutronPublicInterfaceRawDevice:
165 NeutronMetadataProxySharedSecret:
167 description: Shared secret to prevent spoofing
169 NeutronMechanismDrivers:
170 default: 'openvswitch'
172 The mechanism drivers for the Neutron tenant network. To specify multiple
173 values, use a comma separated string, like so: 'openvswitch,l2_population'
175 # Not relevant for Computes, should be removed
176 NeutronAllowL3AgentFailover:
178 description: Allow automatic l3-agent failover
180 # Not relevant for Computes, should be removed
183 description: Whether to enable l3-agent HA
187 description: Agent mode for the neutron-l3-agent on the controller hosts
191 default: '' # Has to be here because of the ignored empty value bug
194 default: libvirt.LibvirtDriver
195 NovaComputeExtraConfig:
198 NovaCompute specific configuration to inject into the cluster. Same
199 structure as ExtraConfig.
201 NovaComputeLibvirtType:
204 NovaEnableRbdBackend:
206 description: Whether to enable or not the Rbd backend for Nova
210 description: The password for the nova service account, used by nova-api.
215 default: '' # Has to be here because of the ignored empty value bug
221 default: '' # Has to be here because of the ignored empty value bug
224 description: The password for RabbitMQ
229 description: The username for RabbitMQ
234 Rabbit client subscriber parameter to specify
235 an SSL connection to the RabbitMQ host.
239 description: Set rabbit subscriber port, change this if using SSL
241 SnmpdReadonlyUserName:
242 default: ro_snmp_user
243 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
245 SnmpdReadonlyUserPassword:
247 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
252 description: Mapping of service_name -> network name. Typically set
253 via parameter_defaults in the resource registry.
259 Setting to a previously unused value during stack-update will trigger
260 package update on all nodes
263 default: '' # Defaults to Heat created hostname
268 type: OS::Nova::Server
273 get_param: ImageUpdatePolicy
274 flavor: {get_param: Flavor}
275 key_name: {get_param: KeyName}
278 user_data_format: SOFTWARE_CONFIG
279 user_data: {get_resource: NodeUserData}
280 name: {get_param: Hostname}
283 type: OS::TripleO::NodeUserData
286 type: OS::TripleO::Compute::Ports::InternalApiPort
288 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
291 type: OS::TripleO::Compute::Ports::StoragePort
293 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
296 type: OS::TripleO::Compute::Ports::TenantPort
298 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
301 type: OS::TripleO::Compute::Net::SoftwareConfig
303 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
304 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
305 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
308 type: OS::TripleO::SoftwareDeployment
310 signal_transport: NO_SIGNAL
311 config: {get_resource: NetworkConfig}
312 server: {get_resource: NovaCompute}
314 bridge_name: {get_param: NeutronPhysicalBridge}
315 interface_name: {get_param: NeutronPublicInterface}
318 type: OS::Heat::StructuredConfig
320 group: os-apply-config
323 compute_driver: { get_input: nova_compute_driver }
324 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
325 debug: {get_input: debug}
326 host: {get_input: nova_api_host}
327 public_ip: {get_input: nova_public_ip}
328 service-password: {get_input: nova_password}
330 debug: {get_input: debug}
331 metering_secret: {get_input: ceilometer_metering_secret}
332 service-password: {get_input: ceilometer_password}
333 compute_agent: {get_input: ceilometer_compute_agent}
335 export_MIB: UCD-SNMP-MIB
336 readonly_user_name: {get_input: snmpd_readonly_user_name}
337 readonly_user_password: {get_input: snmpd_readonly_user_password}
339 debug: {get_input: debug}
340 host: {get_input: glance_host}
341 port: {get_input: glance_port}
342 protocol: {get_input: glance_protocol}
344 debug: {get_input: debug}
345 host: {get_input: keystone_host}
347 debug: {get_input: debug}
348 flat-networks: {get_input: neutron_flat_networks}
349 host: {get_input: neutron_host}
350 router_distributed: {get_input: neutron_router_distributed}
351 agent_mode: {get_input: neutron_agent_mode}
352 ovs_db: {get_input: neutron_dsn}
353 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
354 mechanism_drivers: {get_input: neutron_mechanism_drivers}
355 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
356 l3_ha: {get_input: neutron_l3_ha}
358 local_ip: {get_input: neutron_local_ip}
359 tenant_network_type: {get_input: neutron_tenant_network_type}
360 tunnel_types: {get_input: neutron_tunnel_types}
361 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
362 bridge_mappings: {get_input: neutron_bridge_mappings}
363 enable_tunneling: {get_input: neutron_enable_tunneling}
364 physical_bridge: {get_input: neutron_physical_bridge}
365 public_interface: {get_input: neutron_public_interface}
366 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
367 service-password: {get_input: neutron_password}
368 admin-password: {get_input: admin_password}
370 host: {get_input: rabbit_host}
371 username: {get_input: rabbit_username}
372 password: {get_input: rabbit_password}
375 - {server: {get_input: ntp_server}}
377 NovaComputeDeployment:
378 type: OS::TripleO::SoftwareDeployment
380 signal_transport: NO_SIGNAL
381 config: {get_resource: NovaComputeConfig}
382 server: {get_resource: NovaCompute}
384 debug: {get_param: Debug}
385 nova_compute_driver: {get_param: NovaComputeDriver}
386 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
387 nova_public_ip: {get_param: NovaPublicIP}
388 nova_api_host: {get_param: NovaApiHost}
389 nova_password: {get_param: NovaPassword}
390 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
391 ceilometer_password: {get_param: CeilometerPassword}
392 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
393 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
394 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
395 glance_host: {get_param: GlanceHost}
396 glance_port: {get_param: GlancePort}
397 glance_protocol: {get_param: GlanceProtocol}
398 keystone_host: {get_param: KeystoneHost}
399 neutron_flat_networks: {get_param: NeutronFlatNetworks}
400 neutron_host: {get_param: NeutronHost}
401 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
402 neutron_tenant_network_type: {get_param: NeutronNetworkType}
403 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
404 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
405 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
406 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
407 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
408 neutron_public_interface: {get_param: NeutronPublicInterface}
409 neutron_password: {get_param: NeutronPassword}
410 neutron_agent_mode: {get_param: NeutronAgentMode}
411 neutron_router_distributed: {get_param: NeutronDVR}
412 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
413 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
414 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
415 neutron_l3_ha: {get_param: NeutronL3HA}
416 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
417 admin_password: {get_param: AdminPassword}
418 rabbit_host: {get_param: RabbitHost}
419 rabbit_username: {get_param: RabbitUserName}
420 rabbit_password: {get_param: RabbitPassword}
421 ntp_server: {get_param: NtpServer}
423 NovaComputePassthrough:
424 type: OS::Heat::StructuredConfig
426 group: os-apply-config
427 config: {get_input: passthrough_config}
429 NovaComputePassthroughSpecific:
430 type: OS::Heat::StructuredConfig
432 group: os-apply-config
433 config: {get_input: passthrough_config_specific}
435 NovaComputePassthroughDeployment:
436 depends_on: [NovaComputeDeployment]
437 type: OS::Heat::StructuredDeployment
439 config: {get_resource: NovaComputePassthrough}
440 server: {get_resource: NovaCompute}
441 signal_transport: NO_SIGNAL
443 passthrough_config: {get_param: ExtraConfig}
445 NovaComputePassthroughDeploymentSpecific:
446 depends_on: [NovaComputePassthroughDeployment]
447 type: OS::Heat::StructuredDeployment
449 config: {get_resource: NovaComputePassthroughSpecific}
450 server: {get_resource: NovaCompute}
451 signal_transport: NO_SIGNAL
453 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
457 description: IP address of the server in the ctlplane network
458 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
459 internal_api_ip_address:
460 description: IP address of the server in the internal_api network
461 value: {get_attr: [InternalApiPort, ip_address]}
463 description: IP address of the server in the storage network
464 value: {get_attr: [StoragePort, ip_address]}
466 description: IP address of the server in the tenant network
467 value: {get_attr: [TenantPort, ip_address]}
469 description: Hostname of the server
470 value: {get_attr: [NovaCompute, name]}
473 Server's IP address and hostname in the /etc/hosts format
478 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
479 HOST: {get_attr: [NovaCompute, name]}
480 nova_server_resource:
481 description: Heat resource handle for the Nova compute server
483 {get_resource: NovaCompute}
485 description: identifier which changes if the node configuration may need re-applying
486 value: "None - NO_SIGNAL"