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.
30 description: Set to True to enable debugging on all services.
35 Additional configuration to inject into the cluster. The JSON should have
36 the following structure:
39 [{"section": "SECTIONNAME",
41 [{"option": "OPTIONNAME",
52 [{"section": "default",
54 [{"option": "force_config_drive",
62 "value": "nova.cells.rpc_driver.CellsRPCDriver"
71 description: Flavor for the nova compute node
74 - custom_constraint: nova.flavor
77 default: '' # Has to be here because of the ignored empty value bug
80 description: Glance port.
84 description: Protocol to use when connecting to glance, set to https for SSL.
88 default: overcloud-compute
90 - custom_constraint: glance.image
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
100 - custom_constraint: nova.keypair
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronEnableTunnelling:
119 default: 'datacentre'
121 If set, flat networks to configure in neutron plugins.
124 default: '' # Has to be here because of the ignored empty value bug
127 description: The tenant network type for Neutron, either gre or vxlan.
129 NeutronNetworkVLANRanges:
130 default: 'datacentre'
132 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
133 Neutron documentation for permitted values. Defaults to permitting any
134 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
135 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPhysicalBridge:
143 description: An OVS bridge to create for accessing external networks.
145 NeutronPublicInterface:
147 description: A port to add to the NeutronPhysicalBridge.
152 The tunnel types for the Neutron tenant network. To specify multiple
153 values, use a comma separated string, like so: 'gre,vxlan'
155 NeutronTunnelIdRanges:
157 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
158 of GRE tunnel IDs that are available for tenant network allocation
159 default: ["1:1000", ]
160 type: comma_delimited_list
163 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
164 of VXLAN VNI IDs that are available for tenant network allocation
165 default: ["1:1000", ]
166 type: comma_delimited_list
167 NeutronPublicInterfaceRawDevice:
173 NeutronMetadataProxySharedSecret:
175 description: Shared secret to prevent spoofing
177 NeutronMechanismDrivers:
178 default: 'openvswitch'
180 The mechanism drivers for the Neutron tenant network. To specify multiple
181 values, use a comma separated string, like so: 'openvswitch,l2_population'
183 # Not relevant for Computes, should be removed
184 NeutronAllowL3AgentFailover:
186 description: Allow automatic l3-agent failover
188 # Not relevant for Computes, should be removed
191 description: Whether to enable l3-agent HA
195 description: Agent mode for the neutron-l3-agent on the controller hosts
199 default: '' # Has to be here because of the ignored empty value bug
202 default: libvirt.LibvirtDriver
203 NovaComputeExtraConfig:
206 NovaCompute specific configuration to inject into the cluster. Same
207 structure as ExtraConfig.
209 NovaComputeLibvirtType:
212 NovaEnableRbdBackend:
214 description: Whether to enable or not the Rbd backend for Nova
218 description: The password for the nova service account, used by nova-api.
223 default: '' # Has to be here because of the ignored empty value bug
229 default: '' # Has to be here because of the ignored empty value bug
232 description: The password for RabbitMQ
237 description: The username for RabbitMQ
242 Rabbit client subscriber parameter to specify
243 an SSL connection to the RabbitMQ host.
247 description: Set rabbit subscriber port, change this if using SSL
249 SnmpdReadonlyUserName:
250 default: ro_snmp_user
251 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
253 SnmpdReadonlyUserPassword:
255 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
260 description: Mapping of service_name -> network name. Typically set
261 via parameter_defaults in the resource registry.
267 Setting to a previously unused value during stack-update will trigger
268 package update on all nodes
271 default: '' # Defaults to Heat created hostname
276 type: OS::Nova::Server
281 get_param: ImageUpdatePolicy
282 flavor: {get_param: Flavor}
283 key_name: {get_param: KeyName}
286 user_data_format: SOFTWARE_CONFIG
287 user_data: {get_resource: NodeUserData}
288 name: {get_param: Hostname}
291 type: OS::TripleO::NodeUserData
294 type: OS::TripleO::Compute::Ports::InternalApiPort
296 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
299 type: OS::TripleO::Compute::Ports::StoragePort
301 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
304 type: OS::TripleO::Compute::Ports::TenantPort
306 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
309 type: OS::TripleO::Compute::Net::SoftwareConfig
311 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
312 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
313 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
316 type: OS::TripleO::SoftwareDeployment
318 signal_transport: NO_SIGNAL
319 config: {get_resource: NetworkConfig}
320 server: {get_resource: NovaCompute}
322 bridge_name: {get_param: NeutronPhysicalBridge}
323 interface_name: {get_param: NeutronPublicInterface}
326 type: OS::Heat::StructuredConfig
328 group: os-apply-config
331 compute_driver: { get_input: nova_compute_driver }
332 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
333 debug: {get_input: debug}
334 host: {get_input: nova_api_host}
335 public_ip: {get_input: nova_public_ip}
336 service-password: {get_input: nova_password}
338 debug: {get_input: debug}
339 metering_secret: {get_input: ceilometer_metering_secret}
340 service-password: {get_input: ceilometer_password}
341 compute_agent: {get_input: ceilometer_compute_agent}
343 export_MIB: UCD-SNMP-MIB
344 readonly_user_name: {get_input: snmpd_readonly_user_name}
345 readonly_user_password: {get_input: snmpd_readonly_user_password}
347 debug: {get_input: debug}
348 host: {get_input: glance_host}
349 port: {get_input: glance_port}
350 protocol: {get_input: glance_protocol}
352 debug: {get_input: debug}
353 host: {get_input: keystone_host}
355 debug: {get_input: debug}
356 flat-networks: {get_input: neutron_flat_networks}
357 host: {get_input: neutron_host}
358 router_distributed: {get_input: neutron_router_distributed}
359 agent_mode: {get_input: neutron_agent_mode}
360 ovs_db: {get_input: neutron_dsn}
361 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
362 mechanism_drivers: {get_input: neutron_mechanism_drivers}
363 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
364 l3_ha: {get_input: neutron_l3_ha}
366 local_ip: {get_input: neutron_local_ip}
367 tenant_network_type: {get_input: neutron_tenant_network_type}
368 tunnel_types: {get_input: neutron_tunnel_types}
369 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
370 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
371 vni_ranges: {get_input: neutron_vni_ranges}
372 bridge_mappings: {get_input: neutron_bridge_mappings}
373 enable_tunneling: {get_input: neutron_enable_tunneling}
374 physical_bridge: {get_input: neutron_physical_bridge}
375 public_interface: {get_input: neutron_public_interface}
376 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
377 service-password: {get_input: neutron_password}
378 admin-password: {get_input: admin_password}
380 host: {get_input: rabbit_host}
381 username: {get_input: rabbit_username}
382 password: {get_input: rabbit_password}
385 - {server: {get_input: ntp_server}}
387 NovaComputeDeployment:
388 type: OS::TripleO::SoftwareDeployment
390 signal_transport: NO_SIGNAL
391 config: {get_resource: NovaComputeConfig}
392 server: {get_resource: NovaCompute}
394 debug: {get_param: Debug}
395 nova_compute_driver: {get_param: NovaComputeDriver}
396 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
397 nova_public_ip: {get_param: NovaPublicIP}
398 nova_api_host: {get_param: NovaApiHost}
399 nova_password: {get_param: NovaPassword}
400 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
401 ceilometer_password: {get_param: CeilometerPassword}
402 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
403 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
404 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
405 glance_host: {get_param: GlanceHost}
406 glance_port: {get_param: GlancePort}
407 glance_protocol: {get_param: GlanceProtocol}
408 keystone_host: {get_param: KeystoneHost}
409 neutron_flat_networks: {get_param: NeutronFlatNetworks}
410 neutron_host: {get_param: NeutronHost}
411 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
412 neutron_tenant_network_type: {get_param: NeutronNetworkType}
413 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
414 neutron_tunnel_id_ranges:
416 template: "['RANGES']"
421 - {get_param: NeutronTunnelIdRanges}
424 template: "['RANGES']"
429 - {get_param: NeutronVniRanges}
430 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
431 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
432 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
433 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
434 neutron_public_interface: {get_param: NeutronPublicInterface}
435 neutron_password: {get_param: NeutronPassword}
436 neutron_agent_mode: {get_param: NeutronAgentMode}
437 neutron_router_distributed: {get_param: NeutronDVR}
438 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
439 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
440 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
441 neutron_l3_ha: {get_param: NeutronL3HA}
442 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
443 admin_password: {get_param: AdminPassword}
444 rabbit_host: {get_param: RabbitHost}
445 rabbit_username: {get_param: RabbitUserName}
446 rabbit_password: {get_param: RabbitPassword}
447 ntp_server: {get_param: NtpServer}
449 NovaComputePassthrough:
450 type: OS::Heat::StructuredConfig
452 group: os-apply-config
453 config: {get_input: passthrough_config}
455 NovaComputePassthroughSpecific:
456 type: OS::Heat::StructuredConfig
458 group: os-apply-config
459 config: {get_input: passthrough_config_specific}
461 NovaComputePassthroughDeployment:
462 depends_on: [NovaComputeDeployment]
463 type: OS::Heat::StructuredDeployment
465 config: {get_resource: NovaComputePassthrough}
466 server: {get_resource: NovaCompute}
467 signal_transport: NO_SIGNAL
469 passthrough_config: {get_param: ExtraConfig}
471 NovaComputePassthroughDeploymentSpecific:
472 depends_on: [NovaComputePassthroughDeployment]
473 type: OS::Heat::StructuredDeployment
475 config: {get_resource: NovaComputePassthroughSpecific}
476 server: {get_resource: NovaCompute}
477 signal_transport: NO_SIGNAL
479 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
483 description: IP address of the server in the ctlplane network
484 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
485 internal_api_ip_address:
486 description: IP address of the server in the internal_api network
487 value: {get_attr: [InternalApiPort, ip_address]}
489 description: IP address of the server in the storage network
490 value: {get_attr: [StoragePort, ip_address]}
492 description: IP address of the server in the tenant network
493 value: {get_attr: [TenantPort, ip_address]}
495 description: Hostname of the server
496 value: {get_attr: [NovaCompute, name]}
499 Server's IP address and hostname in the /etc/hosts format
504 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
505 HOST: {get_attr: [NovaCompute, name]}
506 nova_server_resource:
507 description: Heat resource handle for the Nova compute server
509 {get_resource: NovaCompute}
511 description: identifier which changes if the node configuration may need re-applying
512 value: "None - NO_SIGNAL"