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
105 KeystoneAdminApiVirtualIP:
108 KeystonePublicApiVirtualIP:
111 NeutronBridgeMappings:
113 The OVS logical->physical bridge mappings to use. See the Neutron
114 documentation for details. Defaults to mapping br-ex - the external
115 bridge on hosts - to a physical name 'datacentre' which can be used
116 to create provider networks (and we use this for the default floating
117 network) - if changing this either use different post-install network
118 scripts or be sure to keep 'datacentre' as a mapping network name.
120 default: "datacentre:br-ex"
121 NeutronEnableTunnelling:
126 default: 'datacentre'
128 If set, flat networks to configure in neutron plugins.
131 default: '' # Has to be here because of the ignored empty value bug
134 description: The tenant network type for Neutron, either gre or vxlan.
136 NeutronNetworkVLANRanges:
137 default: 'datacentre'
139 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
140 Neutron documentation for permitted values. Defaults to permitting any
141 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
142 type: comma_delimited_list
145 description: The password for the neutron service account, used by neutron agents.
148 NeutronPhysicalBridge:
150 description: An OVS bridge to create for accessing external networks.
152 NeutronPublicInterface:
154 description: A port to add to the NeutronPhysicalBridge.
159 The tunnel types for the Neutron tenant network. To specify multiple
160 values, use a comma separated string, like so: 'gre,vxlan'
162 NeutronTunnelIdRanges:
164 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
165 of GRE tunnel IDs that are available for tenant network allocation
166 default: ["1:1000", ]
167 type: comma_delimited_list
170 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
171 of VXLAN VNI IDs that are available for tenant network allocation
172 default: ["1:1000", ]
173 type: comma_delimited_list
174 NeutronPublicInterfaceRawDevice:
180 NeutronMetadataProxySharedSecret:
182 description: Shared secret to prevent spoofing
184 NeutronMechanismDrivers:
185 default: 'openvswitch'
187 The mechanism drivers for the Neutron tenant network. To specify multiple
188 values, use a comma separated string, like so: 'openvswitch,l2_population'
190 # Not relevant for Computes, should be removed
191 NeutronAllowL3AgentFailover:
193 description: Allow automatic l3-agent failover
195 # Not relevant for Computes, should be removed
198 description: Whether to enable l3-agent HA
202 description: Agent mode for the neutron-l3-agent on the controller hosts
206 default: '' # Has to be here because of the ignored empty value bug
209 default: libvirt.LibvirtDriver
210 NovaComputeExtraConfig:
213 NovaCompute specific configuration to inject into the cluster. Same
214 structure as ExtraConfig.
216 NovaComputeLibvirtType:
219 NovaEnableRbdBackend:
221 description: Whether to enable or not the Rbd backend for Nova
225 description: The password for the nova service account, used by nova-api.
230 default: '' # Has to be here because of the ignored empty value bug
236 default: '' # Has to be here because of the ignored empty value bug
239 description: The password for RabbitMQ
244 description: The username for RabbitMQ
249 Rabbit client subscriber parameter to specify
250 an SSL connection to the RabbitMQ host.
254 description: Set rabbit subscriber port, change this if using SSL
256 SnmpdReadonlyUserName:
257 default: ro_snmp_user
258 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
260 SnmpdReadonlyUserPassword:
262 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
267 description: Mapping of service_name -> network name. Typically set
268 via parameter_defaults in the resource registry.
274 Setting to a previously unused value during stack-update will trigger
275 package update on all nodes
278 default: '' # Defaults to Heat created hostname
283 type: OS::Nova::Server
288 get_param: ImageUpdatePolicy
289 flavor: {get_param: Flavor}
290 key_name: {get_param: KeyName}
293 user_data_format: SOFTWARE_CONFIG
294 user_data: {get_resource: NodeUserData}
295 name: {get_param: Hostname}
298 type: OS::TripleO::NodeUserData
301 type: OS::TripleO::Compute::Ports::InternalApiPort
303 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
306 type: OS::TripleO::Compute::Ports::StoragePort
308 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
311 type: OS::TripleO::Compute::Ports::TenantPort
313 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
316 type: OS::TripleO::Compute::Net::SoftwareConfig
318 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
319 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
320 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
323 type: OS::TripleO::SoftwareDeployment
325 signal_transport: NO_SIGNAL
326 config: {get_resource: NetworkConfig}
327 server: {get_resource: NovaCompute}
329 bridge_name: {get_param: NeutronPhysicalBridge}
330 interface_name: {get_param: NeutronPublicInterface}
333 type: OS::Heat::StructuredConfig
335 group: os-apply-config
338 compute_driver: { get_input: nova_compute_driver }
339 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
340 debug: {get_input: debug}
341 host: {get_input: nova_api_host}
342 public_ip: {get_input: nova_public_ip}
343 service-password: {get_input: nova_password}
345 debug: {get_input: debug}
346 metering_secret: {get_input: ceilometer_metering_secret}
347 service-password: {get_input: ceilometer_password}
348 compute_agent: {get_input: ceilometer_compute_agent}
350 export_MIB: UCD-SNMP-MIB
351 readonly_user_name: {get_input: snmpd_readonly_user_name}
352 readonly_user_password: {get_input: snmpd_readonly_user_password}
354 debug: {get_input: debug}
355 host: {get_input: glance_host}
356 port: {get_input: glance_port}
357 protocol: {get_input: glance_protocol}
359 debug: {get_input: debug}
360 host: {get_input: keystone_host}
362 debug: {get_input: debug}
363 flat-networks: {get_input: neutron_flat_networks}
364 host: {get_input: neutron_host}
365 router_distributed: {get_input: neutron_router_distributed}
366 agent_mode: {get_input: neutron_agent_mode}
367 ovs_db: {get_input: neutron_dsn}
368 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
369 mechanism_drivers: {get_input: neutron_mechanism_drivers}
370 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
371 l3_ha: {get_input: neutron_l3_ha}
373 local_ip: {get_input: neutron_local_ip}
374 tenant_network_type: {get_input: neutron_tenant_network_type}
375 tunnel_types: {get_input: neutron_tunnel_types}
376 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
377 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
378 vni_ranges: {get_input: neutron_vni_ranges}
379 bridge_mappings: {get_input: neutron_bridge_mappings}
380 enable_tunneling: {get_input: neutron_enable_tunneling}
381 physical_bridge: {get_input: neutron_physical_bridge}
382 public_interface: {get_input: neutron_public_interface}
383 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
384 service-password: {get_input: neutron_password}
385 admin-password: {get_input: admin_password}
387 host: {get_input: rabbit_host}
388 username: {get_input: rabbit_username}
389 password: {get_input: rabbit_password}
392 - {server: {get_input: ntp_server}}
394 NovaComputeDeployment:
395 type: OS::TripleO::SoftwareDeployment
397 signal_transport: NO_SIGNAL
398 config: {get_resource: NovaComputeConfig}
399 server: {get_resource: NovaCompute}
401 debug: {get_param: Debug}
402 nova_compute_driver: {get_param: NovaComputeDriver}
403 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
404 nova_public_ip: {get_param: NovaPublicIP}
405 nova_api_host: {get_param: NovaApiHost}
406 nova_password: {get_param: NovaPassword}
407 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
408 ceilometer_password: {get_param: CeilometerPassword}
409 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
410 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
411 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
412 glance_host: {get_param: GlanceHost}
413 glance_port: {get_param: GlancePort}
414 glance_protocol: {get_param: GlanceProtocol}
415 keystone_host: {get_param: KeystonePublicApiVirtualIP}
416 neutron_flat_networks: {get_param: NeutronFlatNetworks}
417 neutron_host: {get_param: NeutronHost}
418 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
419 neutron_tenant_network_type: {get_param: NeutronNetworkType}
420 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
421 neutron_tunnel_id_ranges:
423 template: "['RANGES']"
428 - {get_param: NeutronTunnelIdRanges}
431 template: "['RANGES']"
436 - {get_param: NeutronVniRanges}
437 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
438 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
439 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
440 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
441 neutron_public_interface: {get_param: NeutronPublicInterface}
442 neutron_password: {get_param: NeutronPassword}
443 neutron_agent_mode: {get_param: NeutronAgentMode}
444 neutron_router_distributed: {get_param: NeutronDVR}
445 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
446 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
447 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
448 neutron_l3_ha: {get_param: NeutronL3HA}
449 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
450 admin_password: {get_param: AdminPassword}
451 rabbit_host: {get_param: RabbitHost}
452 rabbit_username: {get_param: RabbitUserName}
453 rabbit_password: {get_param: RabbitPassword}
454 ntp_server: {get_param: NtpServer}
456 NovaComputePassthrough:
457 type: OS::Heat::StructuredConfig
459 group: os-apply-config
460 config: {get_input: passthrough_config}
462 NovaComputePassthroughSpecific:
463 type: OS::Heat::StructuredConfig
465 group: os-apply-config
466 config: {get_input: passthrough_config_specific}
468 NovaComputePassthroughDeployment:
469 depends_on: [NovaComputeDeployment]
470 type: OS::Heat::StructuredDeployment
472 config: {get_resource: NovaComputePassthrough}
473 server: {get_resource: NovaCompute}
474 signal_transport: NO_SIGNAL
476 passthrough_config: {get_param: ExtraConfig}
478 NovaComputePassthroughDeploymentSpecific:
479 depends_on: [NovaComputePassthroughDeployment]
480 type: OS::Heat::StructuredDeployment
482 config: {get_resource: NovaComputePassthroughSpecific}
483 server: {get_resource: NovaCompute}
484 signal_transport: NO_SIGNAL
486 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
490 description: IP address of the server in the ctlplane network
491 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
492 internal_api_ip_address:
493 description: IP address of the server in the internal_api network
494 value: {get_attr: [InternalApiPort, ip_address]}
496 description: IP address of the server in the storage network
497 value: {get_attr: [StoragePort, ip_address]}
499 description: IP address of the server in the tenant network
500 value: {get_attr: [TenantPort, ip_address]}
502 description: Hostname of the server
503 value: {get_attr: [NovaCompute, name]}
506 Server's IP address and hostname in the /etc/hosts format
511 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
512 HOST: {get_attr: [NovaCompute, name]}
513 nova_server_resource:
514 description: Heat resource handle for the Nova compute server
516 {get_resource: NovaCompute}
518 description: identifier which changes if the node configuration may need re-applying
519 value: "None - NO_SIGNAL"