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 NeutronTunnelIdRanges:
161 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
162 of GRE tunnel IDs that are available for tenant network allocation
163 default: ["1:1000", ]
164 type: comma_delimited_list
167 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
168 of VXLAN VNI IDs that are available for tenant network allocation
169 default: ["1:1000", ]
170 type: comma_delimited_list
171 NeutronPublicInterfaceRawDevice:
177 NeutronMetadataProxySharedSecret:
179 description: Shared secret to prevent spoofing
181 NeutronMechanismDrivers:
182 default: 'openvswitch'
184 The mechanism drivers for the Neutron tenant network. To specify multiple
185 values, use a comma separated string, like so: 'openvswitch,l2_population'
187 # Not relevant for Computes, should be removed
188 NeutronAllowL3AgentFailover:
190 description: Allow automatic l3-agent failover
192 # Not relevant for Computes, should be removed
195 description: Whether to enable l3-agent HA
199 description: Agent mode for the neutron-l3-agent on the controller hosts
203 default: '' # Has to be here because of the ignored empty value bug
206 default: libvirt.LibvirtDriver
207 NovaComputeExtraConfig:
210 NovaCompute specific configuration to inject into the cluster. Same
211 structure as ExtraConfig.
213 NovaComputeLibvirtType:
216 NovaEnableRbdBackend:
218 description: Whether to enable or not the Rbd backend for Nova
222 description: The password for the nova service account, used by nova-api.
227 default: '' # Has to be here because of the ignored empty value bug
233 default: '' # Has to be here because of the ignored empty value bug
236 description: The password for RabbitMQ
241 description: The username for RabbitMQ
246 Rabbit client subscriber parameter to specify
247 an SSL connection to the RabbitMQ host.
251 description: Set rabbit subscriber port, change this if using SSL
253 SnmpdReadonlyUserName:
254 default: ro_snmp_user
255 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
257 SnmpdReadonlyUserPassword:
259 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
264 description: Mapping of service_name -> network name. Typically set
265 via parameter_defaults in the resource registry.
271 Setting to a previously unused value during stack-update will trigger
272 package update on all nodes
275 default: '' # Defaults to Heat created hostname
280 type: OS::Nova::Server
285 get_param: ImageUpdatePolicy
286 flavor: {get_param: Flavor}
287 key_name: {get_param: KeyName}
290 user_data_format: SOFTWARE_CONFIG
291 user_data: {get_resource: NodeUserData}
292 name: {get_param: Hostname}
295 type: OS::TripleO::NodeUserData
298 type: OS::TripleO::Compute::Ports::InternalApiPort
300 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
303 type: OS::TripleO::Compute::Ports::StoragePort
305 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
308 type: OS::TripleO::Compute::Ports::TenantPort
310 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
313 type: OS::TripleO::Compute::Net::SoftwareConfig
315 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
316 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
317 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
320 type: OS::TripleO::SoftwareDeployment
322 signal_transport: NO_SIGNAL
323 config: {get_resource: NetworkConfig}
324 server: {get_resource: NovaCompute}
326 bridge_name: {get_param: NeutronPhysicalBridge}
327 interface_name: {get_param: NeutronPublicInterface}
330 type: OS::Heat::StructuredConfig
332 group: os-apply-config
335 compute_driver: { get_input: nova_compute_driver }
336 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
337 debug: {get_input: debug}
338 host: {get_input: nova_api_host}
339 public_ip: {get_input: nova_public_ip}
340 service-password: {get_input: nova_password}
342 debug: {get_input: debug}
343 metering_secret: {get_input: ceilometer_metering_secret}
344 service-password: {get_input: ceilometer_password}
345 compute_agent: {get_input: ceilometer_compute_agent}
347 export_MIB: UCD-SNMP-MIB
348 readonly_user_name: {get_input: snmpd_readonly_user_name}
349 readonly_user_password: {get_input: snmpd_readonly_user_password}
351 debug: {get_input: debug}
352 host: {get_input: glance_host}
353 port: {get_input: glance_port}
354 protocol: {get_input: glance_protocol}
356 debug: {get_input: debug}
357 host: {get_input: keystone_host}
359 debug: {get_input: debug}
360 flat-networks: {get_input: neutron_flat_networks}
361 host: {get_input: neutron_host}
362 router_distributed: {get_input: neutron_router_distributed}
363 agent_mode: {get_input: neutron_agent_mode}
364 ovs_db: {get_input: neutron_dsn}
365 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
366 mechanism_drivers: {get_input: neutron_mechanism_drivers}
367 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
368 l3_ha: {get_input: neutron_l3_ha}
370 local_ip: {get_input: neutron_local_ip}
371 tenant_network_type: {get_input: neutron_tenant_network_type}
372 tunnel_types: {get_input: neutron_tunnel_types}
373 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
374 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
375 vni_ranges: {get_input: neutron_vni_ranges}
376 bridge_mappings: {get_input: neutron_bridge_mappings}
377 enable_tunneling: {get_input: neutron_enable_tunneling}
378 physical_bridge: {get_input: neutron_physical_bridge}
379 public_interface: {get_input: neutron_public_interface}
380 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
381 service-password: {get_input: neutron_password}
382 admin-password: {get_input: admin_password}
384 host: {get_input: rabbit_host}
385 username: {get_input: rabbit_username}
386 password: {get_input: rabbit_password}
389 - {server: {get_input: ntp_server}}
391 NovaComputeDeployment:
392 type: OS::TripleO::SoftwareDeployment
394 signal_transport: NO_SIGNAL
395 config: {get_resource: NovaComputeConfig}
396 server: {get_resource: NovaCompute}
398 debug: {get_param: Debug}
399 nova_compute_driver: {get_param: NovaComputeDriver}
400 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
401 nova_public_ip: {get_param: NovaPublicIP}
402 nova_api_host: {get_param: NovaApiHost}
403 nova_password: {get_param: NovaPassword}
404 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
405 ceilometer_password: {get_param: CeilometerPassword}
406 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
407 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
408 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
409 glance_host: {get_param: GlanceHost}
410 glance_port: {get_param: GlancePort}
411 glance_protocol: {get_param: GlanceProtocol}
412 keystone_host: {get_param: KeystoneHost}
413 neutron_flat_networks: {get_param: NeutronFlatNetworks}
414 neutron_host: {get_param: NeutronHost}
415 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
416 neutron_tenant_network_type: {get_param: NeutronNetworkType}
417 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
418 neutron_tunnel_id_ranges:
420 template: "['RANGES']"
425 - {get_param: NeutronTunnelIdRanges}
428 template: "['RANGES']"
433 - {get_param: NeutronVniRanges}
434 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
435 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
436 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
437 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
438 neutron_public_interface: {get_param: NeutronPublicInterface}
439 neutron_password: {get_param: NeutronPassword}
440 neutron_agent_mode: {get_param: NeutronAgentMode}
441 neutron_router_distributed: {get_param: NeutronDVR}
442 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
443 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
444 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
445 neutron_l3_ha: {get_param: NeutronL3HA}
446 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
447 admin_password: {get_param: AdminPassword}
448 rabbit_host: {get_param: RabbitHost}
449 rabbit_username: {get_param: RabbitUserName}
450 rabbit_password: {get_param: RabbitPassword}
451 ntp_server: {get_param: NtpServer}
453 NovaComputePassthrough:
454 type: OS::Heat::StructuredConfig
456 group: os-apply-config
457 config: {get_input: passthrough_config}
459 NovaComputePassthroughSpecific:
460 type: OS::Heat::StructuredConfig
462 group: os-apply-config
463 config: {get_input: passthrough_config_specific}
465 NovaComputePassthroughDeployment:
466 depends_on: [NovaComputeDeployment]
467 type: OS::Heat::StructuredDeployment
469 config: {get_resource: NovaComputePassthrough}
470 server: {get_resource: NovaCompute}
471 signal_transport: NO_SIGNAL
473 passthrough_config: {get_param: ExtraConfig}
475 NovaComputePassthroughDeploymentSpecific:
476 depends_on: [NovaComputePassthroughDeployment]
477 type: OS::Heat::StructuredDeployment
479 config: {get_resource: NovaComputePassthroughSpecific}
480 server: {get_resource: NovaCompute}
481 signal_transport: NO_SIGNAL
483 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
487 description: IP address of the server in the ctlplane network
488 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
489 internal_api_ip_address:
490 description: IP address of the server in the internal_api network
491 value: {get_attr: [InternalApiPort, ip_address]}
493 description: IP address of the server in the storage network
494 value: {get_attr: [StoragePort, ip_address]}
496 description: IP address of the server in the tenant network
497 value: {get_attr: [TenantPort, ip_address]}
499 description: Hostname of the server
500 value: {get_attr: [NovaCompute, name]}
503 Server's IP address and hostname in the /etc/hosts format
508 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
509 HOST: {get_attr: [NovaCompute, name]}
510 nova_server_resource:
511 description: Heat resource handle for the Nova compute server
513 {get_resource: NovaCompute}
515 description: identifier which changes if the node configuration may need re-applying
516 value: "None - NO_SIGNAL"