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
187 The core plugin for Neutron. The value should be the entrypoint to be loaded
188 from neutron.core_plugins namespace.
190 NeutronServicePlugins:
193 Comma-separated list of service plugin entrypoints to be loaded from the
194 neutron.service_plugins namespace.
195 type: comma_delimited_list
197 default: "vxlan,vlan,flat,gre"
199 Comma-separated list of network type driver entrypoints to be loaded.
200 type: comma_delimited_list
201 NeutronMechanismDrivers:
202 default: 'openvswitch'
204 The mechanism drivers for the Neutron tenant network. To specify multiple
205 values, use a comma separated string, like so: 'openvswitch,l2_population'
207 # Not relevant for Computes, should be removed
208 NeutronAllowL3AgentFailover:
210 description: Allow automatic l3-agent failover
212 # Not relevant for Computes, should be removed
215 description: Whether to enable l3-agent HA
219 description: Agent mode for the neutron-l3-agent on the controller hosts
223 default: '' # Has to be here because of the ignored empty value bug
226 default: libvirt.LibvirtDriver
227 NovaComputeExtraConfig:
230 NovaCompute specific configuration to inject into the cluster. Same
231 structure as ExtraConfig.
233 NovaComputeLibvirtType:
236 NovaEnableRbdBackend:
238 description: Whether to enable or not the Rbd backend for Nova
242 description: The password for the nova service account, used by nova-api.
247 default: '' # Has to be here because of the ignored empty value bug
253 default: '' # Has to be here because of the ignored empty value bug
256 description: The password for RabbitMQ
261 description: The username for RabbitMQ
266 Rabbit client subscriber parameter to specify
267 an SSL connection to the RabbitMQ host.
271 description: Set rabbit subscriber port, change this if using SSL
273 SnmpdReadonlyUserName:
274 default: ro_snmp_user
275 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
277 SnmpdReadonlyUserPassword:
279 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
284 description: Mapping of service_name -> network name. Typically set
285 via parameter_defaults in the resource registry.
291 Setting to a previously unused value during stack-update will trigger
292 package update on all nodes
295 default: '' # Defaults to Heat created hostname
300 type: OS::Nova::Server
305 get_param: ImageUpdatePolicy
306 flavor: {get_param: Flavor}
307 key_name: {get_param: KeyName}
310 user_data_format: SOFTWARE_CONFIG
311 user_data: {get_resource: NodeUserData}
312 name: {get_param: Hostname}
315 type: OS::TripleO::NodeUserData
318 type: OS::TripleO::Compute::Ports::InternalApiPort
320 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
323 type: OS::TripleO::Compute::Ports::StoragePort
325 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
328 type: OS::TripleO::Compute::Ports::TenantPort
330 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
333 type: OS::TripleO::Compute::Net::SoftwareConfig
335 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
336 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
337 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
338 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
341 type: OS::TripleO::SoftwareDeployment
343 signal_transport: NO_SIGNAL
344 config: {get_resource: NetworkConfig}
345 server: {get_resource: NovaCompute}
347 bridge_name: {get_param: NeutronPhysicalBridge}
348 interface_name: {get_param: NeutronPublicInterface}
351 type: OS::Heat::StructuredConfig
353 group: os-apply-config
356 compute_driver: { get_input: nova_compute_driver }
357 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
358 debug: {get_input: debug}
359 host: {get_input: nova_api_host}
360 public_ip: {get_input: nova_public_ip}
361 service-password: {get_input: nova_password}
363 debug: {get_input: debug}
364 metering_secret: {get_input: ceilometer_metering_secret}
365 service-password: {get_input: ceilometer_password}
366 compute_agent: {get_input: ceilometer_compute_agent}
368 export_MIB: UCD-SNMP-MIB
369 readonly_user_name: {get_input: snmpd_readonly_user_name}
370 readonly_user_password: {get_input: snmpd_readonly_user_password}
372 debug: {get_input: debug}
373 host: {get_input: glance_host}
374 port: {get_input: glance_port}
375 protocol: {get_input: glance_protocol}
377 debug: {get_input: debug}
378 host: {get_input: keystone_host}
380 debug: {get_input: debug}
381 flat-networks: {get_input: neutron_flat_networks}
382 host: {get_input: neutron_host}
383 router_distributed: {get_input: neutron_router_distributed}
384 agent_mode: {get_input: neutron_agent_mode}
385 ovs_db: {get_input: neutron_dsn}
386 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
387 core_plugin: {get_input: neutron_core_plugin}
388 service_plugins: {get_input: neutron_service_plugins}
389 type_drivers: {get_input: neutron_type_drivers}
390 mechanism_drivers: {get_input: neutron_mechanism_drivers}
391 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
392 l3_ha: {get_input: neutron_l3_ha}
394 local_ip: {get_input: neutron_local_ip}
395 tenant_network_type: {get_input: neutron_tenant_network_type}
396 tunnel_types: {get_input: neutron_tunnel_types}
397 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
398 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
399 vni_ranges: {get_input: neutron_vni_ranges}
400 bridge_mappings: {get_input: neutron_bridge_mappings}
401 enable_tunneling: {get_input: neutron_enable_tunneling}
402 physical_bridge: {get_input: neutron_physical_bridge}
403 public_interface: {get_input: neutron_public_interface}
404 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
405 service-password: {get_input: neutron_password}
406 admin-password: {get_input: admin_password}
408 host: {get_input: rabbit_host}
409 username: {get_input: rabbit_username}
410 password: {get_input: rabbit_password}
413 - {server: {get_input: ntp_server}}
415 NovaComputeDeployment:
416 type: OS::TripleO::SoftwareDeployment
418 signal_transport: NO_SIGNAL
419 config: {get_resource: NovaComputeConfig}
420 server: {get_resource: NovaCompute}
422 debug: {get_param: Debug}
423 nova_compute_driver: {get_param: NovaComputeDriver}
424 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
425 nova_public_ip: {get_param: NovaPublicIP}
426 nova_api_host: {get_param: NovaApiHost}
427 nova_password: {get_param: NovaPassword}
428 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
429 ceilometer_password: {get_param: CeilometerPassword}
430 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
431 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
432 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
433 glance_host: {get_param: GlanceHost}
434 glance_port: {get_param: GlancePort}
435 glance_protocol: {get_param: GlanceProtocol}
436 keystone_host: {get_param: KeystonePublicApiVirtualIP}
437 neutron_flat_networks: {get_param: NeutronFlatNetworks}
438 neutron_host: {get_param: NeutronHost}
439 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
440 neutron_tenant_network_type: {get_param: NeutronNetworkType}
441 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
442 neutron_tunnel_id_ranges:
444 template: "['RANGES']"
449 - {get_param: NeutronTunnelIdRanges}
452 template: "['RANGES']"
457 - {get_param: NeutronVniRanges}
458 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
459 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
460 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
461 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
462 neutron_public_interface: {get_param: NeutronPublicInterface}
463 neutron_password: {get_param: NeutronPassword}
464 neutron_agent_mode: {get_param: NeutronAgentMode}
465 neutron_router_distributed: {get_param: NeutronDVR}
466 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
467 neutron_core_plugin: {get_param: NeutronCorePlugin}
468 neutron_service_plugins:
470 template: "['PLUGINS']"
475 - {get_param: NeutronServicePlugins}
476 neutron_type_drivers:
478 template: "['DRIVERS']"
483 - {get_param: NeutronTypeDrivers}
484 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
485 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
486 neutron_l3_ha: {get_param: NeutronL3HA}
487 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
488 admin_password: {get_param: AdminPassword}
489 rabbit_host: {get_param: RabbitHost}
490 rabbit_username: {get_param: RabbitUserName}
491 rabbit_password: {get_param: RabbitPassword}
492 ntp_server: {get_param: NtpServer}
494 NovaComputePassthrough:
495 type: OS::Heat::StructuredConfig
497 group: os-apply-config
498 config: {get_input: passthrough_config}
500 NovaComputePassthroughSpecific:
501 type: OS::Heat::StructuredConfig
503 group: os-apply-config
504 config: {get_input: passthrough_config_specific}
506 NovaComputePassthroughDeployment:
507 depends_on: [NovaComputeDeployment]
508 type: OS::Heat::StructuredDeployment
510 config: {get_resource: NovaComputePassthrough}
511 server: {get_resource: NovaCompute}
512 signal_transport: NO_SIGNAL
514 passthrough_config: {get_param: ExtraConfig}
516 NovaComputePassthroughDeploymentSpecific:
517 depends_on: [NovaComputePassthroughDeployment]
518 type: OS::Heat::StructuredDeployment
520 config: {get_resource: NovaComputePassthroughSpecific}
521 server: {get_resource: NovaCompute}
522 signal_transport: NO_SIGNAL
524 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
528 description: IP address of the server in the ctlplane network
529 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
530 internal_api_ip_address:
531 description: IP address of the server in the internal_api network
532 value: {get_attr: [InternalApiPort, ip_address]}
534 description: IP address of the server in the storage network
535 value: {get_attr: [StoragePort, ip_address]}
537 description: IP address of the server in the tenant network
538 value: {get_attr: [TenantPort, ip_address]}
540 description: Hostname of the server
541 value: {get_attr: [NovaCompute, name]}
544 Server's IP address and hostname in the /etc/hosts format
549 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
550 HOST: {get_attr: [NovaCompute, name]}
551 nova_server_resource:
552 description: Heat resource handle for the Nova compute server
554 {get_resource: NovaCompute}
556 description: identifier which changes if the node configuration may need re-applying
557 value: "None - NO_SIGNAL"