1 heat_template_version: 2015-04-30
4 OpenStack hypervisor node configured via Puppet.
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 hiera configuration to inject into the cluster. Note
40 that NovaComputeExtraConfig takes precedence over ExtraConfig.
43 description: Flavor for the nova compute node
46 - custom_constraint: nova.flavor
49 default: '' # Has to be here because of the ignored empty value bug
52 description: Glance port.
56 description: Protocol to use when connecting to glance, set to https for SSL.
60 default: overcloud-compute
62 - custom_constraint: glance.image
64 default: 'REBUILD_PRESERVE_EPHEMERAL'
65 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
68 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
72 - custom_constraint: nova.keypair
76 NeutronBridgeMappings:
78 The OVS logical->physical bridge mappings to use. See the Neutron
79 documentation for details. Defaults to mapping br-ex - the external
80 bridge on hosts - to a physical name 'datacentre' which can be used
81 to create provider networks (and we use this for the default floating
82 network) - if changing this either use different post-install network
83 scripts or be sure to keep 'datacentre' as a mapping network name.
85 default: "datacentre:br-ex"
86 NeutronEnableTunnelling:
93 If set, flat networks to configure in neutron plugins.
96 default: '' # Has to be here because of the ignored empty value bug
99 description: The tenant network type for Neutron, either gre or vxlan.
101 NeutronNetworkVLANRanges:
102 default: 'datacentre'
104 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
105 Neutron documentation for permitted values. Defaults to permitting any
106 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
107 type: comma_delimited_list
110 description: The password for the neutron service account, used by neutron agents.
113 NeutronPhysicalBridge:
115 description: An OVS bridge to create for accessing external networks.
117 NeutronPublicInterface:
119 description: A port to add to the NeutronPhysicalBridge.
124 The tunnel types for the Neutron tenant network. To specify multiple
125 values, use a comma separated string, like so: 'gre,vxlan'
127 NeutronTunnelIdRanges:
129 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
130 of GRE tunnel IDs that are available for tenant network allocation
131 default: ["1:1000", ]
132 type: comma_delimited_list
135 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
136 of VXLAN VNI IDs that are available for tenant network allocation
137 default: ["1:1000", ]
138 type: comma_delimited_list
139 NeutronPublicInterfaceRawDevice:
145 NeutronMetadataProxySharedSecret:
147 description: Shared secret to prevent spoofing
149 NeutronMechanismDrivers:
150 default: 'openvswitch'
152 The mechanism drivers for the Neutron tenant network. To specify multiple
153 values, use a comma separated string, like so: 'openvswitch,l2_population'
155 # Not relevant for Computes, should be removed
156 NeutronAllowL3AgentFailover:
158 description: Allow automatic l3-agent failover
160 # Not relevant for Computes, should be removed
163 description: Whether to enable l3-agent HA
167 description: Agent mode for the neutron-l3-agent on the controller hosts
171 default: '' # Has to be here because of the ignored empty value bug
174 default: libvirt.LibvirtDriver
175 NovaComputeExtraConfig:
178 NovaCompute specific configuration to inject into the cluster. Same
179 structure as ExtraConfig.
181 NovaComputeLibvirtType:
184 NovaEnableRbdBackend:
186 description: Whether to enable or not the Rbd backend for Nova
190 description: The password for the nova service account, used by nova-api.
195 default: '' # Has to be here because of the ignored empty value bug
201 default: '' # Has to be here because of the ignored empty value bug
204 description: The password for RabbitMQ
209 description: The username for RabbitMQ
214 Rabbit client subscriber parameter to specify
215 an SSL connection to the RabbitMQ host.
219 description: Set rabbit subscriber port, change this if using SSL
221 SnmpdReadonlyUserName:
222 default: ro_snmp_user
223 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
225 SnmpdReadonlyUserPassword:
227 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
230 EnablePackageInstall:
232 description: Set to true to enable package installation via Puppet
236 description: Mapping of service_name -> network name. Typically set
237 via parameter_defaults in the resource registry.
243 Setting to a previously unused value during stack-update will trigger
244 package update on all nodes
247 default: '' # Defaults to Heat created hostname
252 type: OS::Nova::Server
257 get_param: ImageUpdatePolicy
258 flavor: {get_param: Flavor}
259 key_name: {get_param: KeyName}
262 user_data_format: SOFTWARE_CONFIG
263 user_data: {get_resource: NodeUserData}
264 name: {get_param: Hostname}
267 type: OS::TripleO::NodeUserData
270 type: OS::TripleO::Compute::Ports::InternalApiPort
272 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
275 type: OS::TripleO::Compute::Ports::StoragePort
277 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
280 type: OS::TripleO::Compute::Ports::TenantPort
282 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
285 type: OS::TripleO::Network::Ports::NetIpMap
287 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
288 StorageIp: {get_attr: [StoragePort, ip_address]}
289 TenantIp: {get_attr: [TenantPort, ip_address]}
292 type: OS::TripleO::Compute::Net::SoftwareConfig
294 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
295 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
296 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
299 type: OS::TripleO::SoftwareDeployment
301 config: {get_resource: NetworkConfig}
302 server: {get_resource: NovaCompute}
304 bridge_name: {get_param: NeutronPhysicalBridge}
305 interface_name: {get_param: NeutronPublicInterface}
308 type: OS::Heat::StructuredConfig
310 group: os-apply-config
314 - heat_config_%{::deploy_config_name}
315 - compute_extraconfig
318 - ceph_cluster # provided by CephClusterConfig
320 - all_nodes # provided by allNodesConfig
325 mapped_data: {get_param: NovaComputeExtraConfig}
327 mapped_data: {get_param: ExtraConfig}
329 raw_data: {get_file: hieradata/common.yaml}
331 raw_data: {get_file: hieradata/ceph.yaml}
333 raw_data: {get_file: hieradata/compute.yaml}
335 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
336 nova::debug: {get_input: debug}
337 nova::rabbit_userid: {get_input: rabbit_username}
338 nova::rabbit_password: {get_input: rabbit_password}
339 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
340 nova::rabbit_port: {get_input: rabbit_client_port}
341 nova_compute_driver: {get_input: nova_compute_driver}
342 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
343 nova_api_host: {get_input: nova_api_host}
344 nova::compute::vncproxy_host: {get_input: nova_public_ip}
345 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
346 nova_password: {get_input: nova_password}
347 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
348 ceilometer::debug: {get_input: debug}
349 ceilometer::rabbit_userid: {get_input: rabbit_username}
350 ceilometer::rabbit_password: {get_input: rabbit_password}
351 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
352 ceilometer::rabbit_port: {get_input: rabbit_client_port}
353 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
354 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
355 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
356 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
357 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
358 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
359 nova::glance_api_servers: {get_input: glance_api_servers}
360 neutron::debug: {get_input: debug}
361 neutron::rabbit_password: {get_input: rabbit_password}
362 neutron::rabbit_user: {get_input: rabbit_user}
363 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
364 neutron::rabbit_port: {get_input: rabbit_client_port}
365 neutron_flat_networks: {get_input: neutron_flat_networks}
366 neutron_host: {get_input: neutron_host}
367 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
369 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
370 neutron_tunnel_types: {get_input: neutron_tunnel_types}
371 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
372 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
373 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
374 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
375 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
376 neutron_physical_bridge: {get_input: neutron_physical_bridge}
377 neutron_public_interface: {get_input: neutron_public_interface}
378 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
379 nova::network::neutron::neutron_url: {get_input: neutron_url}
380 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
381 neutron_router_distributed: {get_input: neutron_router_distributed}
382 neutron_agent_mode: {get_input: neutron_agent_mode}
383 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
384 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
385 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
386 admin_password: {get_input: admin_password}
387 ntp::servers: {get_input: ntp_servers}
388 tripleo::packages::enable_install: {get_input: enable_package_install}
390 NovaComputeDeployment:
391 type: OS::TripleO::SoftwareDeployment
392 depends_on: NetworkDeployment
394 config: {get_resource: NovaComputeConfig}
395 server: {get_resource: NovaCompute}
397 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
398 debug: {get_param: Debug}
399 nova_compute_driver: {get_param: NovaComputeDriver}
400 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
401 nova_public_ip: {get_param: NovaPublicIP}
402 nova_api_host: {get_param: NovaApiHost}
403 nova_password: {get_param: NovaPassword}
404 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
405 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
406 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
407 ceilometer_password: {get_param: CeilometerPassword}
408 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
409 ceilometer_agent_auth_url:
413 - {get_param: KeystoneHost}
415 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
416 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
420 - - {get_param: GlanceProtocol}
422 - {get_param: GlanceHost}
424 - {get_param: GlancePort}
425 neutron_flat_networks: {get_param: NeutronFlatNetworks}
426 neutron_host: {get_param: NeutronHost}
427 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
428 neutron_tenant_network_type: {get_param: NeutronNetworkType}
429 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
430 neutron_tunnel_id_ranges:
432 template: "['RANGES']"
437 - {get_param: NeutronTunnelIdRanges}
440 template: "['RANGES']"
445 - {get_param: NeutronVniRanges}
446 neutron_network_vlan_ranges:
448 template: "['RANGES']"
453 - {get_param: NeutronNetworkVLANRanges}
454 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
455 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
456 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
457 neutron_public_interface: {get_param: NeutronPublicInterface}
458 neutron_password: {get_param: NeutronPassword}
459 neutron_agent_mode: {get_param: NeutronAgentMode}
460 neutron_router_distributed: {get_param: NeutronDVR}
461 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
462 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
463 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
468 - {get_param: NeutronHost}
470 neutron_admin_auth_url:
474 - {get_param: NeutronHost}
476 admin_password: {get_param: AdminPassword}
477 rabbit_username: {get_param: RabbitUserName}
478 rabbit_password: {get_param: RabbitPassword}
479 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
480 rabbit_client_port: {get_param: RabbitClientPort}
483 template: '["server"]'
485 server: {get_param: NtpServer}
486 enable_package_install: {get_param: EnablePackageInstall}
489 type: OS::TripleO::Tasks::PackageUpdate
492 type: OS::Heat::SoftwareDeployment
494 config: {get_resource: UpdateConfig}
495 server: {get_resource: NovaCompute}
498 get_param: UpdateIdentifier
502 description: IP address of the server in the ctlplane network
503 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
504 internal_api_ip_address:
505 description: IP address of the server in the internal_api network
506 value: {get_attr: [InternalApiPort, ip_address]}
508 description: IP address of the server in the storage network
509 value: {get_attr: [StoragePort, ip_address]}
511 description: IP address of the server in the tenant network
512 value: {get_attr: [TenantPort, ip_address]}
514 description: Hostname of the server
515 value: {get_attr: [NovaCompute, name]}
518 Server's IP address and hostname in the /etc/hosts format
521 template: "IP HOST.localdomain HOST"
523 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
524 HOST: {get_attr: [NovaCompute, name]}
525 nova_server_resource:
526 description: Heat resource handle for the Nova compute server
528 {get_resource: NovaCompute}
530 description: identifier which changes if the node configuration may need re-applying
531 value: {get_attr: [NovaComputeDeployment, deploy_stdout]}