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
192 The core plugin for Neutron. The value should be the entrypoint to be loaded
193 from neutron.core_plugins namespace.
195 NeutronServicePlugins:
198 Comma-separated list of service plugin entrypoints to be loaded from the
199 neutron.service_plugins namespace.
200 type: comma_delimited_list
202 default: "vxlan,vlan,flat,gre"
204 Comma-separated list of network type driver entrypoints to be loaded.
205 type: comma_delimited_list
206 NeutronMechanismDrivers:
207 default: 'openvswitch'
209 The mechanism drivers for the Neutron tenant network. To specify multiple
210 values, use a comma separated string, like so: 'openvswitch,l2_population'
212 # Not relevant for Computes, should be removed
213 NeutronAllowL3AgentFailover:
215 description: Allow automatic l3-agent failover
217 # Not relevant for Computes, should be removed
220 description: Whether to enable l3-agent HA
224 description: Agent mode for the neutron-l3-agent on the controller hosts
228 default: '' # Has to be here because of the ignored empty value bug
231 default: libvirt.LibvirtDriver
232 NovaComputeExtraConfig:
235 NovaCompute specific configuration to inject into the cluster. Same
236 structure as ExtraConfig.
238 NovaComputeLibvirtType:
241 NovaEnableRbdBackend:
243 description: Whether to enable or not the Rbd backend for Nova
247 description: The password for the nova service account, used by nova-api.
252 default: '' # Has to be here because of the ignored empty value bug
258 default: '' # Has to be here because of the ignored empty value bug
261 description: The password for RabbitMQ
266 description: The username for RabbitMQ
271 Rabbit client subscriber parameter to specify
272 an SSL connection to the RabbitMQ host.
276 description: Set rabbit subscriber port, change this if using SSL
278 SnmpdReadonlyUserName:
279 default: ro_snmp_user
280 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
282 SnmpdReadonlyUserPassword:
284 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
289 description: Mapping of service_name -> network name. Typically set
290 via parameter_defaults in the resource registry.
296 Setting to a previously unused value during stack-update will trigger
297 package update on all nodes
300 default: '' # Defaults to Heat created hostname
305 type: OS::Nova::Server
310 get_param: ImageUpdatePolicy
311 flavor: {get_param: Flavor}
312 key_name: {get_param: KeyName}
315 user_data_format: SOFTWARE_CONFIG
316 user_data: {get_resource: NodeUserData}
317 name: {get_param: Hostname}
320 type: OS::TripleO::NodeUserData
323 type: OS::TripleO::Compute::Ports::InternalApiPort
325 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
328 type: OS::TripleO::Compute::Ports::StoragePort
330 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
333 type: OS::TripleO::Compute::Ports::TenantPort
335 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
338 type: OS::TripleO::Compute::Net::SoftwareConfig
340 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
341 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
342 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
343 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
346 type: OS::TripleO::SoftwareDeployment
348 signal_transport: NO_SIGNAL
349 config: {get_resource: NetworkConfig}
350 server: {get_resource: NovaCompute}
352 bridge_name: {get_param: NeutronPhysicalBridge}
353 interface_name: {get_param: NeutronPublicInterface}
356 type: OS::Heat::StructuredConfig
358 group: os-apply-config
361 compute_driver: { get_input: nova_compute_driver }
362 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
363 debug: {get_input: debug}
364 host: {get_input: nova_api_host}
365 public_ip: {get_input: nova_public_ip}
366 service-password: {get_input: nova_password}
368 debug: {get_input: debug}
369 metering_secret: {get_input: ceilometer_metering_secret}
370 service-password: {get_input: ceilometer_password}
371 compute_agent: {get_input: ceilometer_compute_agent}
373 export_MIB: UCD-SNMP-MIB
374 readonly_user_name: {get_input: snmpd_readonly_user_name}
375 readonly_user_password: {get_input: snmpd_readonly_user_password}
377 debug: {get_input: debug}
378 host: {get_input: glance_host}
379 port: {get_input: glance_port}
380 protocol: {get_input: glance_protocol}
382 debug: {get_input: debug}
383 host: {get_input: keystone_host}
385 debug: {get_input: debug}
386 flat-networks: {get_input: neutron_flat_networks}
387 host: {get_input: neutron_host}
388 router_distributed: {get_input: neutron_router_distributed}
389 agent_mode: {get_input: neutron_agent_mode}
390 ovs_db: {get_input: neutron_dsn}
391 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
392 core_plugin: {get_input: neutron_core_plugin}
393 service_plugins: {get_input: neutron_service_plugins}
394 type_drivers: {get_input: neutron_type_drivers}
395 mechanism_drivers: {get_input: neutron_mechanism_drivers}
396 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
397 l3_ha: {get_input: neutron_l3_ha}
399 local_ip: {get_input: neutron_local_ip}
400 tenant_network_type: {get_input: neutron_tenant_network_type}
401 tunnel_types: {get_input: neutron_tunnel_types}
402 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
403 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
404 vni_ranges: {get_input: neutron_vni_ranges}
405 bridge_mappings: {get_input: neutron_bridge_mappings}
406 enable_tunneling: {get_input: neutron_enable_tunneling}
407 physical_bridge: {get_input: neutron_physical_bridge}
408 public_interface: {get_input: neutron_public_interface}
409 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
410 service-password: {get_input: neutron_password}
411 admin-password: {get_input: admin_password}
413 host: {get_input: rabbit_host}
414 username: {get_input: rabbit_username}
415 password: {get_input: rabbit_password}
418 - {server: {get_input: ntp_server}}
420 NovaComputeDeployment:
421 type: OS::TripleO::SoftwareDeployment
423 signal_transport: NO_SIGNAL
424 config: {get_resource: NovaComputeConfig}
425 server: {get_resource: NovaCompute}
427 debug: {get_param: Debug}
428 nova_compute_driver: {get_param: NovaComputeDriver}
429 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
430 nova_public_ip: {get_param: NovaPublicIP}
431 nova_api_host: {get_param: NovaApiHost}
432 nova_password: {get_param: NovaPassword}
433 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
434 ceilometer_password: {get_param: CeilometerPassword}
435 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
436 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
437 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
438 glance_host: {get_param: GlanceHost}
439 glance_port: {get_param: GlancePort}
440 glance_protocol: {get_param: GlanceProtocol}
441 keystone_host: {get_param: KeystonePublicApiVirtualIP}
442 neutron_flat_networks: {get_param: NeutronFlatNetworks}
443 neutron_host: {get_param: NeutronHost}
444 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
445 neutron_tenant_network_type: {get_param: NeutronNetworkType}
446 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
447 neutron_tunnel_id_ranges:
449 template: "['RANGES']"
454 - {get_param: NeutronTunnelIdRanges}
457 template: "['RANGES']"
462 - {get_param: NeutronVniRanges}
463 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
464 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
465 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
466 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
467 neutron_public_interface: {get_param: NeutronPublicInterface}
468 neutron_password: {get_param: NeutronPassword}
469 neutron_agent_mode: {get_param: NeutronAgentMode}
470 neutron_router_distributed: {get_param: NeutronDVR}
471 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
472 neutron_core_plugin: {get_param: NeutronCorePlugin}
473 neutron_service_plugins:
475 template: "['PLUGINS']"
480 - {get_param: NeutronServicePlugins}
481 neutron_type_drivers:
483 template: "['DRIVERS']"
488 - {get_param: NeutronTypeDrivers}
489 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
490 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
491 neutron_l3_ha: {get_param: NeutronL3HA}
492 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
493 admin_password: {get_param: AdminPassword}
494 rabbit_host: {get_param: RabbitHost}
495 rabbit_username: {get_param: RabbitUserName}
496 rabbit_password: {get_param: RabbitPassword}
497 ntp_server: {get_param: NtpServer}
499 NovaComputePassthrough:
500 type: OS::Heat::StructuredConfig
502 group: os-apply-config
503 config: {get_input: passthrough_config}
505 NovaComputePassthroughSpecific:
506 type: OS::Heat::StructuredConfig
508 group: os-apply-config
509 config: {get_input: passthrough_config_specific}
511 NovaComputePassthroughDeployment:
512 depends_on: [NovaComputeDeployment]
513 type: OS::Heat::StructuredDeployment
515 config: {get_resource: NovaComputePassthrough}
516 server: {get_resource: NovaCompute}
517 signal_transport: NO_SIGNAL
519 passthrough_config: {get_param: ExtraConfig}
521 NovaComputePassthroughDeploymentSpecific:
522 depends_on: [NovaComputePassthroughDeployment]
523 type: OS::Heat::StructuredDeployment
525 config: {get_resource: NovaComputePassthroughSpecific}
526 server: {get_resource: NovaCompute}
527 signal_transport: NO_SIGNAL
529 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
533 description: IP address of the server in the ctlplane network
534 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
535 internal_api_ip_address:
536 description: IP address of the server in the internal_api network
537 value: {get_attr: [InternalApiPort, ip_address]}
539 description: IP address of the server in the storage network
540 value: {get_attr: [StoragePort, ip_address]}
542 description: IP address of the server in the tenant network
543 value: {get_attr: [TenantPort, ip_address]}
545 description: Hostname of the server
546 value: {get_attr: [NovaCompute, name]}
549 Server's IP address and hostname in the /etc/hosts format
554 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
555 HOST: {get_attr: [NovaCompute, name]}
556 nova_server_resource:
557 description: Heat resource handle for the Nova compute server
559 {get_resource: NovaCompute}
561 description: identifier which changes if the node configuration may need re-applying
562 value: "None - NO_SIGNAL"