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:
131 Enable/disable the L2 population feature in the Neutron agents.
135 default: 'datacentre'
137 If set, flat networks to configure in neutron plugins.
140 default: '' # Has to be here because of the ignored empty value bug
143 description: The tenant network type for Neutron, either gre or vxlan.
145 NeutronNetworkVLANRanges:
146 default: 'datacentre'
148 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
149 Neutron documentation for permitted values. Defaults to permitting any
150 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
151 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPhysicalBridge:
159 description: An OVS bridge to create for accessing external networks.
161 NeutronPublicInterface:
163 description: A port to add to the NeutronPhysicalBridge.
168 The tunnel types for the Neutron tenant network. To specify multiple
169 values, use a comma separated string, like so: 'gre,vxlan'
171 NeutronTunnelIdRanges:
173 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
174 of GRE tunnel IDs that are available for tenant network allocation
175 default: ["1:1000", ]
176 type: comma_delimited_list
179 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
180 of VXLAN VNI IDs that are available for tenant network allocation
181 default: ["1:1000", ]
182 type: comma_delimited_list
183 NeutronPublicInterfaceRawDevice:
189 NeutronMetadataProxySharedSecret:
191 description: Shared secret to prevent spoofing
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 # Not relevant for Computes, should be removed
218 NeutronAllowL3AgentFailover:
220 description: Allow automatic l3-agent failover
222 # Not relevant for Computes, should be removed
225 description: Whether to enable l3-agent HA
229 description: Agent mode for the neutron-l3-agent on the controller hosts
233 default: '' # Has to be here because of the ignored empty value bug
236 default: libvirt.LibvirtDriver
237 NovaComputeExtraConfig:
240 NovaCompute specific configuration to inject into the cluster. Same
241 structure as ExtraConfig.
243 NovaComputeLibvirtType:
246 NovaEnableRbdBackend:
248 description: Whether to enable or not the Rbd backend for Nova
252 description: The password for the nova service account, used by nova-api.
257 default: '' # Has to be here because of the ignored empty value bug
263 default: '' # Has to be here because of the ignored empty value bug
266 description: The password for RabbitMQ
271 description: The username for RabbitMQ
276 Rabbit client subscriber parameter to specify
277 an SSL connection to the RabbitMQ host.
281 description: Set rabbit subscriber port, change this if using SSL
283 SnmpdReadonlyUserName:
284 default: ro_snmp_user
285 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
287 SnmpdReadonlyUserPassword:
289 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
294 description: Mapping of service_name -> network name. Typically set
295 via parameter_defaults in the resource registry.
301 Setting to a previously unused value during stack-update will trigger
302 package update on all nodes
305 default: '' # Defaults to Heat created hostname
310 type: OS::Nova::Server
315 get_param: ImageUpdatePolicy
316 flavor: {get_param: Flavor}
317 key_name: {get_param: KeyName}
320 user_data_format: SOFTWARE_CONFIG
321 user_data: {get_resource: NodeUserData}
322 name: {get_param: Hostname}
325 type: OS::TripleO::NodeUserData
328 type: OS::TripleO::Compute::Ports::InternalApiPort
330 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
333 type: OS::TripleO::Compute::Ports::StoragePort
335 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
338 type: OS::TripleO::Compute::Ports::TenantPort
340 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
343 type: OS::TripleO::Compute::Net::SoftwareConfig
345 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
346 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
347 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
348 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
351 type: OS::TripleO::SoftwareDeployment
353 signal_transport: NO_SIGNAL
354 config: {get_resource: NetworkConfig}
355 server: {get_resource: NovaCompute}
357 bridge_name: {get_param: NeutronPhysicalBridge}
358 interface_name: {get_param: NeutronPublicInterface}
361 type: OS::Heat::StructuredConfig
363 group: os-apply-config
366 compute_driver: { get_input: nova_compute_driver }
367 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
368 debug: {get_input: debug}
369 host: {get_input: nova_api_host}
370 public_ip: {get_input: nova_public_ip}
371 service-password: {get_input: nova_password}
373 debug: {get_input: debug}
374 metering_secret: {get_input: ceilometer_metering_secret}
375 service-password: {get_input: ceilometer_password}
376 compute_agent: {get_input: ceilometer_compute_agent}
378 export_MIB: UCD-SNMP-MIB
379 readonly_user_name: {get_input: snmpd_readonly_user_name}
380 readonly_user_password: {get_input: snmpd_readonly_user_password}
382 debug: {get_input: debug}
383 host: {get_input: glance_host}
384 port: {get_input: glance_port}
385 protocol: {get_input: glance_protocol}
387 debug: {get_input: debug}
388 host: {get_input: keystone_host}
390 debug: {get_input: debug}
391 flat-networks: {get_input: neutron_flat_networks}
392 host: {get_input: neutron_host}
393 router_distributed: {get_input: neutron_router_distributed}
394 agent_mode: {get_input: neutron_agent_mode}
395 ovs_db: {get_input: neutron_dsn}
396 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
397 core_plugin: {get_input: neutron_core_plugin}
398 service_plugins: {get_input: neutron_service_plugins}
399 type_drivers: {get_input: neutron_type_drivers}
400 mechanism_drivers: {get_input: neutron_mechanism_drivers}
401 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
402 l3_ha: {get_input: neutron_l3_ha}
404 local_ip: {get_input: neutron_local_ip}
405 tenant_network_type: {get_input: neutron_tenant_network_type}
406 tunnel_types: {get_input: neutron_tunnel_types}
407 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
408 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
409 vni_ranges: {get_input: neutron_vni_ranges}
410 bridge_mappings: {get_input: neutron_bridge_mappings}
411 enable_tunneling: {get_input: neutron_enable_tunneling}
412 l2_population: {get_input: neutron_enable_l2pop}
413 physical_bridge: {get_input: neutron_physical_bridge}
414 public_interface: {get_input: neutron_public_interface}
415 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
416 service-password: {get_input: neutron_password}
417 admin-password: {get_input: admin_password}
419 host: {get_input: rabbit_host}
420 username: {get_input: rabbit_username}
421 password: {get_input: rabbit_password}
424 - {server: {get_input: ntp_server}}
426 NovaComputeDeployment:
427 type: OS::TripleO::SoftwareDeployment
429 signal_transport: NO_SIGNAL
430 config: {get_resource: NovaComputeConfig}
431 server: {get_resource: NovaCompute}
433 debug: {get_param: Debug}
434 nova_compute_driver: {get_param: NovaComputeDriver}
435 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
436 nova_public_ip: {get_param: NovaPublicIP}
437 nova_api_host: {get_param: NovaApiHost}
438 nova_password: {get_param: NovaPassword}
439 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
440 ceilometer_password: {get_param: CeilometerPassword}
441 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
442 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
443 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
444 glance_host: {get_param: GlanceHost}
445 glance_port: {get_param: GlancePort}
446 glance_protocol: {get_param: GlanceProtocol}
447 keystone_host: {get_param: KeystonePublicApiVirtualIP}
448 neutron_flat_networks: {get_param: NeutronFlatNetworks}
449 neutron_host: {get_param: NeutronHost}
450 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
451 neutron_tenant_network_type: {get_param: NeutronNetworkType}
452 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
453 neutron_tunnel_id_ranges:
455 template: "['RANGES']"
460 - {get_param: NeutronTunnelIdRanges}
463 template: "['RANGES']"
468 - {get_param: NeutronVniRanges}
469 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
470 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
471 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
472 neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
473 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
474 neutron_public_interface: {get_param: NeutronPublicInterface}
475 neutron_password: {get_param: NeutronPassword}
476 neutron_agent_mode: {get_param: NeutronAgentMode}
477 neutron_router_distributed: {get_param: NeutronDVR}
478 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
479 neutron_core_plugin: {get_param: NeutronCorePlugin}
480 neutron_service_plugins:
482 template: "['PLUGINS']"
487 - {get_param: NeutronServicePlugins}
488 neutron_type_drivers:
490 template: "['DRIVERS']"
495 - {get_param: NeutronTypeDrivers}
496 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
497 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
498 neutron_l3_ha: {get_param: NeutronL3HA}
499 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
500 admin_password: {get_param: AdminPassword}
501 rabbit_host: {get_param: RabbitHost}
502 rabbit_username: {get_param: RabbitUserName}
503 rabbit_password: {get_param: RabbitPassword}
504 ntp_server: {get_param: NtpServer}
506 NovaComputePassthrough:
507 type: OS::Heat::StructuredConfig
509 group: os-apply-config
510 config: {get_input: passthrough_config}
512 NovaComputePassthroughSpecific:
513 type: OS::Heat::StructuredConfig
515 group: os-apply-config
516 config: {get_input: passthrough_config_specific}
518 NovaComputePassthroughDeployment:
519 depends_on: [NovaComputeDeployment]
520 type: OS::Heat::StructuredDeployment
522 config: {get_resource: NovaComputePassthrough}
523 server: {get_resource: NovaCompute}
524 signal_transport: NO_SIGNAL
526 passthrough_config: {get_param: ExtraConfig}
528 NovaComputePassthroughDeploymentSpecific:
529 depends_on: [NovaComputePassthroughDeployment]
530 type: OS::Heat::StructuredDeployment
532 config: {get_resource: NovaComputePassthroughSpecific}
533 server: {get_resource: NovaCompute}
534 signal_transport: NO_SIGNAL
536 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
540 description: IP address of the server in the ctlplane network
541 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
542 internal_api_ip_address:
543 description: IP address of the server in the internal_api network
544 value: {get_attr: [InternalApiPort, ip_address]}
546 description: IP address of the server in the storage network
547 value: {get_attr: [StoragePort, ip_address]}
549 description: IP address of the server in the tenant network
550 value: {get_attr: [TenantPort, ip_address]}
552 description: Hostname of the server
553 value: {get_attr: [NovaCompute, name]}
556 Server's IP address and hostname in the /etc/hosts format
561 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
562 HOST: {get_attr: [NovaCompute, name]}
563 nova_server_resource:
564 description: Heat resource handle for the Nova compute server
566 {get_resource: NovaCompute}
568 description: identifier which changes if the node configuration may need re-applying
569 value: "None - NO_SIGNAL"