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
184 NeutronMechanismDrivers:
185 default: 'openvswitch'
187 The mechanism drivers for the Neutron tenant network. To specify multiple
188 values, use a comma separated string, like so: 'openvswitch,l2_population'
190 # Not relevant for Computes, should be removed
191 NeutronAllowL3AgentFailover:
193 description: Allow automatic l3-agent failover
195 # Not relevant for Computes, should be removed
198 description: Whether to enable l3-agent HA
202 description: Agent mode for the neutron-l3-agent on the controller hosts
206 default: '' # Has to be here because of the ignored empty value bug
209 default: libvirt.LibvirtDriver
210 NovaComputeExtraConfig:
213 NovaCompute specific configuration to inject into the cluster. Same
214 structure as ExtraConfig.
216 NovaComputeLibvirtType:
219 NovaEnableRbdBackend:
221 description: Whether to enable or not the Rbd backend for Nova
225 description: The password for the nova service account, used by nova-api.
230 default: '' # Has to be here because of the ignored empty value bug
236 default: '' # Has to be here because of the ignored empty value bug
239 description: The password for RabbitMQ
244 description: The username for RabbitMQ
249 Rabbit client subscriber parameter to specify
250 an SSL connection to the RabbitMQ host.
254 description: Set rabbit subscriber port, change this if using SSL
256 SnmpdReadonlyUserName:
257 default: ro_snmp_user
258 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
260 SnmpdReadonlyUserPassword:
262 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
267 description: Mapping of service_name -> network name. Typically set
268 via parameter_defaults in the resource registry.
274 Setting to a previously unused value during stack-update will trigger
275 package update on all nodes
278 default: '' # Defaults to Heat created hostname
283 type: OS::Nova::Server
288 get_param: ImageUpdatePolicy
289 flavor: {get_param: Flavor}
290 key_name: {get_param: KeyName}
293 user_data_format: SOFTWARE_CONFIG
294 user_data: {get_resource: NodeUserData}
295 name: {get_param: Hostname}
298 type: OS::TripleO::NodeUserData
301 type: OS::TripleO::Compute::Ports::InternalApiPort
303 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
306 type: OS::TripleO::Compute::Ports::StoragePort
308 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
311 type: OS::TripleO::Compute::Ports::TenantPort
313 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
316 type: OS::TripleO::Compute::Net::SoftwareConfig
318 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
319 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
320 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
321 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
324 type: OS::TripleO::SoftwareDeployment
326 signal_transport: NO_SIGNAL
327 config: {get_resource: NetworkConfig}
328 server: {get_resource: NovaCompute}
330 bridge_name: {get_param: NeutronPhysicalBridge}
331 interface_name: {get_param: NeutronPublicInterface}
334 type: OS::Heat::StructuredConfig
336 group: os-apply-config
339 compute_driver: { get_input: nova_compute_driver }
340 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
341 debug: {get_input: debug}
342 host: {get_input: nova_api_host}
343 public_ip: {get_input: nova_public_ip}
344 service-password: {get_input: nova_password}
346 debug: {get_input: debug}
347 metering_secret: {get_input: ceilometer_metering_secret}
348 service-password: {get_input: ceilometer_password}
349 compute_agent: {get_input: ceilometer_compute_agent}
351 export_MIB: UCD-SNMP-MIB
352 readonly_user_name: {get_input: snmpd_readonly_user_name}
353 readonly_user_password: {get_input: snmpd_readonly_user_password}
355 debug: {get_input: debug}
356 host: {get_input: glance_host}
357 port: {get_input: glance_port}
358 protocol: {get_input: glance_protocol}
360 debug: {get_input: debug}
361 host: {get_input: keystone_host}
363 debug: {get_input: debug}
364 flat-networks: {get_input: neutron_flat_networks}
365 host: {get_input: neutron_host}
366 router_distributed: {get_input: neutron_router_distributed}
367 agent_mode: {get_input: neutron_agent_mode}
368 ovs_db: {get_input: neutron_dsn}
369 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
370 mechanism_drivers: {get_input: neutron_mechanism_drivers}
371 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
372 l3_ha: {get_input: neutron_l3_ha}
374 local_ip: {get_input: neutron_local_ip}
375 tenant_network_type: {get_input: neutron_tenant_network_type}
376 tunnel_types: {get_input: neutron_tunnel_types}
377 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
378 tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
379 vni_ranges: {get_input: neutron_vni_ranges}
380 bridge_mappings: {get_input: neutron_bridge_mappings}
381 enable_tunneling: {get_input: neutron_enable_tunneling}
382 physical_bridge: {get_input: neutron_physical_bridge}
383 public_interface: {get_input: neutron_public_interface}
384 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
385 service-password: {get_input: neutron_password}
386 admin-password: {get_input: admin_password}
388 host: {get_input: rabbit_host}
389 username: {get_input: rabbit_username}
390 password: {get_input: rabbit_password}
393 - {server: {get_input: ntp_server}}
395 NovaComputeDeployment:
396 type: OS::TripleO::SoftwareDeployment
398 signal_transport: NO_SIGNAL
399 config: {get_resource: NovaComputeConfig}
400 server: {get_resource: NovaCompute}
402 debug: {get_param: Debug}
403 nova_compute_driver: {get_param: NovaComputeDriver}
404 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
405 nova_public_ip: {get_param: NovaPublicIP}
406 nova_api_host: {get_param: NovaApiHost}
407 nova_password: {get_param: NovaPassword}
408 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
409 ceilometer_password: {get_param: CeilometerPassword}
410 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
411 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
412 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
413 glance_host: {get_param: GlanceHost}
414 glance_port: {get_param: GlancePort}
415 glance_protocol: {get_param: GlanceProtocol}
416 keystone_host: {get_param: KeystonePublicApiVirtualIP}
417 neutron_flat_networks: {get_param: NeutronFlatNetworks}
418 neutron_host: {get_param: NeutronHost}
419 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
420 neutron_tenant_network_type: {get_param: NeutronNetworkType}
421 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
422 neutron_tunnel_id_ranges:
424 template: "['RANGES']"
429 - {get_param: NeutronTunnelIdRanges}
432 template: "['RANGES']"
437 - {get_param: NeutronVniRanges}
438 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
439 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
440 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
441 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
442 neutron_public_interface: {get_param: NeutronPublicInterface}
443 neutron_password: {get_param: NeutronPassword}
444 neutron_agent_mode: {get_param: NeutronAgentMode}
445 neutron_router_distributed: {get_param: NeutronDVR}
446 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
447 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
448 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
449 neutron_l3_ha: {get_param: NeutronL3HA}
450 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
451 admin_password: {get_param: AdminPassword}
452 rabbit_host: {get_param: RabbitHost}
453 rabbit_username: {get_param: RabbitUserName}
454 rabbit_password: {get_param: RabbitPassword}
455 ntp_server: {get_param: NtpServer}
457 NovaComputePassthrough:
458 type: OS::Heat::StructuredConfig
460 group: os-apply-config
461 config: {get_input: passthrough_config}
463 NovaComputePassthroughSpecific:
464 type: OS::Heat::StructuredConfig
466 group: os-apply-config
467 config: {get_input: passthrough_config_specific}
469 NovaComputePassthroughDeployment:
470 depends_on: [NovaComputeDeployment]
471 type: OS::Heat::StructuredDeployment
473 config: {get_resource: NovaComputePassthrough}
474 server: {get_resource: NovaCompute}
475 signal_transport: NO_SIGNAL
477 passthrough_config: {get_param: ExtraConfig}
479 NovaComputePassthroughDeploymentSpecific:
480 depends_on: [NovaComputePassthroughDeployment]
481 type: OS::Heat::StructuredDeployment
483 config: {get_resource: NovaComputePassthroughSpecific}
484 server: {get_resource: NovaCompute}
485 signal_transport: NO_SIGNAL
487 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
491 description: IP address of the server in the ctlplane network
492 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
493 internal_api_ip_address:
494 description: IP address of the server in the internal_api network
495 value: {get_attr: [InternalApiPort, ip_address]}
497 description: IP address of the server in the storage network
498 value: {get_attr: [StoragePort, ip_address]}
500 description: IP address of the server in the tenant network
501 value: {get_attr: [TenantPort, ip_address]}
503 description: Hostname of the server
504 value: {get_attr: [NovaCompute, name]}
507 Server's IP address and hostname in the /etc/hosts format
512 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
513 HOST: {get_attr: [NovaCompute, name]}
514 nova_server_resource:
515 description: Heat resource handle for the Nova compute server
517 {get_resource: NovaCompute}
519 description: identifier which changes if the node configuration may need re-applying
520 value: "None - NO_SIGNAL"