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
188 The core plugin for Neutron. The value should be the entrypoint to be loaded
189 from neutron.core_plugins namespace.
191 NeutronServicePlugins:
194 Comma-separated list of service plugin entrypoints to be loaded from the
195 neutron.service_plugins namespace.
196 type: comma_delimited_list
198 default: "vxlan,vlan,flat,gre"
200 Comma-separated list of network type driver entrypoints to be loaded.
201 type: comma_delimited_list
202 NeutronMechanismDrivers:
203 default: 'openvswitch'
205 The mechanism drivers for the Neutron tenant network. To specify multiple
206 values, use a comma separated string, like so: 'openvswitch,l2_population'
208 # Not relevant for Computes, should be removed
209 NeutronAllowL3AgentFailover:
211 description: Allow automatic l3-agent failover
213 # Not relevant for Computes, should be removed
216 description: Whether to enable l3-agent HA
220 description: Agent mode for the neutron-l3-agent on the controller hosts
224 default: '' # Has to be here because of the ignored empty value bug
227 default: libvirt.LibvirtDriver
228 NovaComputeExtraConfig:
231 NovaCompute specific configuration to inject into the cluster. Same
232 structure as ExtraConfig.
234 NovaComputeLibvirtType:
237 NovaEnableRbdBackend:
239 description: Whether to enable or not the Rbd backend for Nova
243 description: The password for the nova service account, used by nova-api.
248 default: '' # Has to be here because of the ignored empty value bug
254 default: '' # Has to be here because of the ignored empty value bug
257 description: The password for RabbitMQ
262 description: The username for RabbitMQ
267 Rabbit client subscriber parameter to specify
268 an SSL connection to the RabbitMQ host.
272 description: Set rabbit subscriber port, change this if using SSL
274 SnmpdReadonlyUserName:
275 default: ro_snmp_user
276 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
278 SnmpdReadonlyUserPassword:
280 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
285 description: Mapping of service_name -> network name. Typically set
286 via parameter_defaults in the resource registry.
292 Setting to a previously unused value during stack-update will trigger
293 package update on all nodes
296 default: '' # Defaults to Heat created hostname
301 type: OS::Nova::Server
306 get_param: ImageUpdatePolicy
307 flavor: {get_param: Flavor}
308 key_name: {get_param: KeyName}
311 user_data_format: SOFTWARE_CONFIG
312 user_data: {get_resource: NodeUserData}
313 name: {get_param: Hostname}
316 type: OS::TripleO::NodeUserData
319 type: OS::TripleO::Compute::Ports::InternalApiPort
321 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
324 type: OS::TripleO::Compute::Ports::StoragePort
326 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
329 type: OS::TripleO::Compute::Ports::TenantPort
331 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
334 type: OS::TripleO::Compute::Net::SoftwareConfig
336 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
337 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
338 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
339 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
342 type: OS::TripleO::SoftwareDeployment
344 signal_transport: NO_SIGNAL
345 config: {get_resource: NetworkConfig}
346 server: {get_resource: NovaCompute}
348 bridge_name: {get_param: NeutronPhysicalBridge}
349 interface_name: {get_param: NeutronPublicInterface}
352 type: OS::Heat::StructuredConfig
354 group: os-apply-config
357 compute_driver: { get_input: nova_compute_driver }
358 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
359 debug: {get_input: debug}
360 host: {get_input: nova_api_host}
361 public_ip: {get_input: nova_public_ip}
362 service-password: {get_input: nova_password}
364 debug: {get_input: debug}
365 metering_secret: {get_input: ceilometer_metering_secret}
366 service-password: {get_input: ceilometer_password}
367 compute_agent: {get_input: ceilometer_compute_agent}
369 export_MIB: UCD-SNMP-MIB
370 readonly_user_name: {get_input: snmpd_readonly_user_name}
371 readonly_user_password: {get_input: snmpd_readonly_user_password}
373 debug: {get_input: debug}
374 host: {get_input: glance_host}
375 port: {get_input: glance_port}
376 protocol: {get_input: glance_protocol}
378 debug: {get_input: debug}
379 host: {get_input: keystone_host}
381 debug: {get_input: debug}
382 flat-networks: {get_input: neutron_flat_networks}
383 host: {get_input: neutron_host}
384 router_distributed: {get_input: neutron_router_distributed}
385 agent_mode: {get_input: neutron_agent_mode}
386 ovs_db: {get_input: neutron_dsn}
387 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
388 core_plugin: {get_input: neutron_core_plugin}
389 service_plugins: {get_input: neutron_service_plugins}
390 type_drivers: {get_input: neutron_type_drivers}
391 mechanism_drivers: {get_input: neutron_mechanism_drivers}
392 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
393 l3_ha: {get_input: neutron_l3_ha}
395 local_ip: {get_input: neutron_local_ip}
396 tenant_network_type: {get_input: neutron_tenant_network_type}
397 tunnel_types: {get_input: neutron_tunnel_types}
398 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
399 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
400 vni_ranges: {get_input: neutron_vni_ranges}
401 bridge_mappings: {get_input: neutron_bridge_mappings}
402 enable_tunneling: {get_input: neutron_enable_tunneling}
403 physical_bridge: {get_input: neutron_physical_bridge}
404 public_interface: {get_input: neutron_public_interface}
405 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
406 service-password: {get_input: neutron_password}
407 admin-password: {get_input: admin_password}
409 host: {get_input: rabbit_host}
410 username: {get_input: rabbit_username}
411 password: {get_input: rabbit_password}
414 - {server: {get_input: ntp_server}}
416 NovaComputeDeployment:
417 type: OS::TripleO::SoftwareDeployment
419 signal_transport: NO_SIGNAL
420 config: {get_resource: NovaComputeConfig}
421 server: {get_resource: NovaCompute}
423 debug: {get_param: Debug}
424 nova_compute_driver: {get_param: NovaComputeDriver}
425 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
426 nova_public_ip: {get_param: NovaPublicIP}
427 nova_api_host: {get_param: NovaApiHost}
428 nova_password: {get_param: NovaPassword}
429 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
430 ceilometer_password: {get_param: CeilometerPassword}
431 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
432 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
433 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
434 glance_host: {get_param: GlanceHost}
435 glance_port: {get_param: GlancePort}
436 glance_protocol: {get_param: GlanceProtocol}
437 keystone_host: {get_param: KeystonePublicApiVirtualIP}
438 neutron_flat_networks: {get_param: NeutronFlatNetworks}
439 neutron_host: {get_param: NeutronHost}
440 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
441 neutron_tenant_network_type: {get_param: NeutronNetworkType}
442 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
443 neutron_tunnel_id_ranges:
445 template: "['RANGES']"
450 - {get_param: NeutronTunnelIdRanges}
453 template: "['RANGES']"
458 - {get_param: NeutronVniRanges}
459 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
460 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
461 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
462 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
463 neutron_public_interface: {get_param: NeutronPublicInterface}
464 neutron_password: {get_param: NeutronPassword}
465 neutron_agent_mode: {get_param: NeutronAgentMode}
466 neutron_router_distributed: {get_param: NeutronDVR}
467 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
468 neutron_core_plugin: {get_param: NeutronCorePlugin}
469 neutron_service_plugins:
471 template: "['PLUGINS']"
476 - {get_param: NeutronServicePlugins}
477 neutron_type_drivers:
479 template: "['DRIVERS']"
484 - {get_param: NeutronTypeDrivers}
485 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
486 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
487 neutron_l3_ha: {get_param: NeutronL3HA}
488 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
489 admin_password: {get_param: AdminPassword}
490 rabbit_host: {get_param: RabbitHost}
491 rabbit_username: {get_param: RabbitUserName}
492 rabbit_password: {get_param: RabbitPassword}
493 ntp_server: {get_param: NtpServer}
495 NovaComputePassthrough:
496 type: OS::Heat::StructuredConfig
498 group: os-apply-config
499 config: {get_input: passthrough_config}
501 NovaComputePassthroughSpecific:
502 type: OS::Heat::StructuredConfig
504 group: os-apply-config
505 config: {get_input: passthrough_config_specific}
507 NovaComputePassthroughDeployment:
508 depends_on: [NovaComputeDeployment]
509 type: OS::Heat::StructuredDeployment
511 config: {get_resource: NovaComputePassthrough}
512 server: {get_resource: NovaCompute}
513 signal_transport: NO_SIGNAL
515 passthrough_config: {get_param: ExtraConfig}
517 NovaComputePassthroughDeploymentSpecific:
518 depends_on: [NovaComputePassthroughDeployment]
519 type: OS::Heat::StructuredDeployment
521 config: {get_resource: NovaComputePassthroughSpecific}
522 server: {get_resource: NovaCompute}
523 signal_transport: NO_SIGNAL
525 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
529 description: IP address of the server in the ctlplane network
530 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
531 internal_api_ip_address:
532 description: IP address of the server in the internal_api network
533 value: {get_attr: [InternalApiPort, ip_address]}
535 description: IP address of the server in the storage network
536 value: {get_attr: [StoragePort, ip_address]}
538 description: IP address of the server in the tenant network
539 value: {get_attr: [TenantPort, ip_address]}
541 description: Hostname of the server
542 value: {get_attr: [NovaCompute, name]}
545 Server's IP address and hostname in the /etc/hosts format
550 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
551 HOST: {get_attr: [NovaCompute, name]}
552 nova_server_resource:
553 description: Heat resource handle for the Nova compute server
555 {get_resource: NovaCompute}
557 description: identifier which changes if the node configuration may need re-applying
558 value: "None - NO_SIGNAL"