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
32 CinderEnableRbdBackend:
34 description: Whether to enable or not the Rbd backend for Cinder
38 description: Set to True to enable debugging on all services.
43 Additional configuration to inject into the cluster. The JSON should have
44 the following structure:
47 [{"section": "SECTIONNAME",
49 [{"option": "OPTIONNAME",
60 [{"section": "default",
62 [{"option": "force_config_drive",
70 "value": "nova.cells.rpc_driver.CellsRPCDriver"
79 description: Flavor for the nova compute node
82 - custom_constraint: nova.flavor
85 default: '' # Has to be here because of the ignored empty value bug
88 description: Glance port.
92 description: Protocol to use when connecting to glance, set to https for SSL.
96 default: overcloud-compute
98 - custom_constraint: glance.image
100 default: 'REBUILD_PRESERVE_EPHEMERAL'
101 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
104 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
108 - custom_constraint: nova.keypair
109 KeystoneAdminApiVirtualIP:
112 KeystonePublicApiVirtualIP:
115 NeutronBridgeMappings:
117 The OVS logical->physical bridge mappings to use. See the Neutron
118 documentation for details. Defaults to mapping br-ex - the external
119 bridge on hosts - to a physical name 'datacentre' which can be used
120 to create provider networks (and we use this for the default floating
121 network) - if changing this either use different post-install network
122 scripts or be sure to keep 'datacentre' as a mapping network name.
124 default: "datacentre:br-ex"
125 NeutronEnableTunnelling:
130 default: 'datacentre'
132 If set, flat networks to configure in neutron plugins.
135 default: '' # Has to be here because of the ignored empty value bug
138 description: The tenant network type for Neutron, either gre or vxlan.
140 NeutronNetworkVLANRanges:
141 default: 'datacentre'
143 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
144 Neutron documentation for permitted values. Defaults to permitting any
145 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
146 type: comma_delimited_list
149 description: The password for the neutron service account, used by neutron agents.
152 NeutronPhysicalBridge:
154 description: An OVS bridge to create for accessing external networks.
156 NeutronPublicInterface:
158 description: A port to add to the NeutronPhysicalBridge.
163 The tunnel types for the Neutron tenant network. To specify multiple
164 values, use a comma separated string, like so: 'gre,vxlan'
166 NeutronTunnelIdRanges:
168 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
169 of GRE tunnel IDs that are available for tenant network allocation
170 default: ["1:1000", ]
171 type: comma_delimited_list
174 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
175 of VXLAN VNI IDs that are available for tenant network allocation
176 default: ["1:1000", ]
177 type: comma_delimited_list
178 NeutronPublicInterfaceRawDevice:
184 NeutronMetadataProxySharedSecret:
186 description: Shared secret to prevent spoofing
191 The core plugin for Neutron. The value should be the entrypoint to be loaded
192 from neutron.core_plugins namespace.
194 NeutronServicePlugins:
197 Comma-separated list of service plugin entrypoints to be loaded from the
198 neutron.service_plugins namespace.
199 type: comma_delimited_list
201 default: "vxlan,vlan,flat,gre"
203 Comma-separated list of network type driver entrypoints to be loaded.
204 type: comma_delimited_list
205 NeutronMechanismDrivers:
206 default: 'openvswitch'
208 The mechanism drivers for the Neutron tenant network. To specify multiple
209 values, use a comma separated string, like so: 'openvswitch,l2_population'
211 # Not relevant for Computes, should be removed
212 NeutronAllowL3AgentFailover:
214 description: Allow automatic l3-agent failover
216 # Not relevant for Computes, should be removed
219 description: Whether to enable l3-agent HA
223 description: Agent mode for the neutron-l3-agent on the controller hosts
227 default: '' # Has to be here because of the ignored empty value bug
230 default: libvirt.LibvirtDriver
231 NovaComputeExtraConfig:
234 NovaCompute specific configuration to inject into the cluster. Same
235 structure as ExtraConfig.
237 NovaComputeLibvirtType:
240 NovaEnableRbdBackend:
242 description: Whether to enable or not the Rbd backend for Nova
246 description: The password for the nova service account, used by nova-api.
251 default: '' # Has to be here because of the ignored empty value bug
257 default: '' # Has to be here because of the ignored empty value bug
260 description: The password for RabbitMQ
265 description: The username for RabbitMQ
270 Rabbit client subscriber parameter to specify
271 an SSL connection to the RabbitMQ host.
275 description: Set rabbit subscriber port, change this if using SSL
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
288 description: Mapping of service_name -> network name. Typically set
289 via parameter_defaults in the resource registry.
295 Setting to a previously unused value during stack-update will trigger
296 package update on all nodes
299 default: '' # Defaults to Heat created hostname
304 type: OS::Nova::Server
309 get_param: ImageUpdatePolicy
310 flavor: {get_param: Flavor}
311 key_name: {get_param: KeyName}
314 user_data_format: SOFTWARE_CONFIG
315 user_data: {get_resource: NodeUserData}
316 name: {get_param: Hostname}
319 type: OS::TripleO::NodeUserData
322 type: OS::TripleO::Compute::Ports::InternalApiPort
324 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
327 type: OS::TripleO::Compute::Ports::StoragePort
329 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
332 type: OS::TripleO::Compute::Ports::TenantPort
334 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
337 type: OS::TripleO::Compute::Net::SoftwareConfig
339 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
340 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
341 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
342 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
345 type: OS::TripleO::SoftwareDeployment
347 signal_transport: NO_SIGNAL
348 config: {get_resource: NetworkConfig}
349 server: {get_resource: NovaCompute}
351 bridge_name: {get_param: NeutronPhysicalBridge}
352 interface_name: {get_param: NeutronPublicInterface}
355 type: OS::Heat::StructuredConfig
357 group: os-apply-config
360 compute_driver: { get_input: nova_compute_driver }
361 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
362 debug: {get_input: debug}
363 host: {get_input: nova_api_host}
364 public_ip: {get_input: nova_public_ip}
365 service-password: {get_input: nova_password}
367 debug: {get_input: debug}
368 metering_secret: {get_input: ceilometer_metering_secret}
369 service-password: {get_input: ceilometer_password}
370 compute_agent: {get_input: ceilometer_compute_agent}
372 export_MIB: UCD-SNMP-MIB
373 readonly_user_name: {get_input: snmpd_readonly_user_name}
374 readonly_user_password: {get_input: snmpd_readonly_user_password}
376 debug: {get_input: debug}
377 host: {get_input: glance_host}
378 port: {get_input: glance_port}
379 protocol: {get_input: glance_protocol}
381 debug: {get_input: debug}
382 host: {get_input: keystone_host}
384 debug: {get_input: debug}
385 flat-networks: {get_input: neutron_flat_networks}
386 host: {get_input: neutron_host}
387 router_distributed: {get_input: neutron_router_distributed}
388 agent_mode: {get_input: neutron_agent_mode}
389 ovs_db: {get_input: neutron_dsn}
390 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
391 core_plugin: {get_input: neutron_core_plugin}
392 service_plugins: {get_input: neutron_service_plugins}
393 type_drivers: {get_input: neutron_type_drivers}
394 mechanism_drivers: {get_input: neutron_mechanism_drivers}
395 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
396 l3_ha: {get_input: neutron_l3_ha}
398 local_ip: {get_input: neutron_local_ip}
399 tenant_network_type: {get_input: neutron_tenant_network_type}
400 tunnel_types: {get_input: neutron_tunnel_types}
401 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
402 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
403 vni_ranges: {get_input: neutron_vni_ranges}
404 bridge_mappings: {get_input: neutron_bridge_mappings}
405 enable_tunneling: {get_input: neutron_enable_tunneling}
406 physical_bridge: {get_input: neutron_physical_bridge}
407 public_interface: {get_input: neutron_public_interface}
408 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
409 service-password: {get_input: neutron_password}
410 admin-password: {get_input: admin_password}
412 host: {get_input: rabbit_host}
413 username: {get_input: rabbit_username}
414 password: {get_input: rabbit_password}
417 - {server: {get_input: ntp_server}}
419 NovaComputeDeployment:
420 type: OS::TripleO::SoftwareDeployment
422 signal_transport: NO_SIGNAL
423 config: {get_resource: NovaComputeConfig}
424 server: {get_resource: NovaCompute}
426 debug: {get_param: Debug}
427 nova_compute_driver: {get_param: NovaComputeDriver}
428 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
429 nova_public_ip: {get_param: NovaPublicIP}
430 nova_api_host: {get_param: NovaApiHost}
431 nova_password: {get_param: NovaPassword}
432 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
433 ceilometer_password: {get_param: CeilometerPassword}
434 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
435 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
436 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
437 glance_host: {get_param: GlanceHost}
438 glance_port: {get_param: GlancePort}
439 glance_protocol: {get_param: GlanceProtocol}
440 keystone_host: {get_param: KeystonePublicApiVirtualIP}
441 neutron_flat_networks: {get_param: NeutronFlatNetworks}
442 neutron_host: {get_param: NeutronHost}
443 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
444 neutron_tenant_network_type: {get_param: NeutronNetworkType}
445 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
446 neutron_tunnel_id_ranges:
448 template: "['RANGES']"
453 - {get_param: NeutronTunnelIdRanges}
456 template: "['RANGES']"
461 - {get_param: NeutronVniRanges}
462 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
463 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
464 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
465 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
466 neutron_public_interface: {get_param: NeutronPublicInterface}
467 neutron_password: {get_param: NeutronPassword}
468 neutron_agent_mode: {get_param: NeutronAgentMode}
469 neutron_router_distributed: {get_param: NeutronDVR}
470 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
471 neutron_core_plugin: {get_param: NeutronCorePlugin}
472 neutron_service_plugins:
474 template: "['PLUGINS']"
479 - {get_param: NeutronServicePlugins}
480 neutron_type_drivers:
482 template: "['DRIVERS']"
487 - {get_param: NeutronTypeDrivers}
488 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
489 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
490 neutron_l3_ha: {get_param: NeutronL3HA}
491 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
492 admin_password: {get_param: AdminPassword}
493 rabbit_host: {get_param: RabbitHost}
494 rabbit_username: {get_param: RabbitUserName}
495 rabbit_password: {get_param: RabbitPassword}
496 ntp_server: {get_param: NtpServer}
498 NovaComputePassthrough:
499 type: OS::Heat::StructuredConfig
501 group: os-apply-config
502 config: {get_input: passthrough_config}
504 NovaComputePassthroughSpecific:
505 type: OS::Heat::StructuredConfig
507 group: os-apply-config
508 config: {get_input: passthrough_config_specific}
510 NovaComputePassthroughDeployment:
511 depends_on: [NovaComputeDeployment]
512 type: OS::Heat::StructuredDeployment
514 config: {get_resource: NovaComputePassthrough}
515 server: {get_resource: NovaCompute}
516 signal_transport: NO_SIGNAL
518 passthrough_config: {get_param: ExtraConfig}
520 NovaComputePassthroughDeploymentSpecific:
521 depends_on: [NovaComputePassthroughDeployment]
522 type: OS::Heat::StructuredDeployment
524 config: {get_resource: NovaComputePassthroughSpecific}
525 server: {get_resource: NovaCompute}
526 signal_transport: NO_SIGNAL
528 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
532 description: IP address of the server in the ctlplane network
533 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
534 internal_api_ip_address:
535 description: IP address of the server in the internal_api network
536 value: {get_attr: [InternalApiPort, ip_address]}
538 description: IP address of the server in the storage network
539 value: {get_attr: [StoragePort, ip_address]}
541 description: IP address of the server in the tenant network
542 value: {get_attr: [TenantPort, ip_address]}
544 description: Hostname of the server
545 value: {get_attr: [NovaCompute, name]}
548 Server's IP address and hostname in the /etc/hosts format
553 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
554 HOST: {get_attr: [NovaCompute, name]}
555 nova_server_resource:
556 description: Heat resource handle for the Nova compute server
558 {get_resource: NovaCompute}
560 description: identifier which changes if the node configuration may need re-applying
561 value: "None - NO_SIGNAL"