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
73 KeystoneAdminApiVirtualIP:
76 KeystonePublicApiVirtualIP:
79 NeutronBridgeMappings:
81 The OVS logical->physical bridge mappings to use. See the Neutron
82 documentation for details. Defaults to mapping br-ex - the external
83 bridge on hosts - to a physical name 'datacentre' which can be used
84 to create provider networks (and we use this for the default floating
85 network) - if changing this either use different post-install network
86 scripts or be sure to keep 'datacentre' as a mapping network name.
88 default: "datacentre:br-ex"
89 NeutronEnableTunnelling:
96 If set, flat networks to configure in neutron plugins.
99 default: '' # Has to be here because of the ignored empty value bug
102 description: The tenant network type for Neutron, either gre or vxlan.
104 NeutronNetworkVLANRanges:
105 default: 'datacentre'
107 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
108 Neutron documentation for permitted values. Defaults to permitting any
109 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
110 type: comma_delimited_list
113 description: The password for the neutron service account, used by neutron agents.
116 NeutronPhysicalBridge:
118 description: An OVS bridge to create for accessing external networks.
120 NeutronPublicInterface:
122 description: A port to add to the NeutronPhysicalBridge.
127 The tunnel types for the Neutron tenant network. To specify multiple
128 values, use a comma separated string, like so: 'gre,vxlan'
130 NeutronTunnelIdRanges:
132 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
133 of GRE tunnel IDs that are available for tenant network allocation
134 default: ["1:1000", ]
135 type: comma_delimited_list
138 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
139 of VXLAN VNI IDs that are available for tenant network allocation
140 default: ["1:1000", ]
141 type: comma_delimited_list
142 NeutronPublicInterfaceRawDevice:
148 NeutronMetadataProxySharedSecret:
150 description: Shared secret to prevent spoofing
152 NeutronMechanismDrivers:
153 default: 'openvswitch'
155 The mechanism drivers for the Neutron tenant network. To specify multiple
156 values, use a comma separated string, like so: 'openvswitch,l2_population'
158 # Not relevant for Computes, should be removed
159 NeutronAllowL3AgentFailover:
161 description: Allow automatic l3-agent failover
163 # Not relevant for Computes, should be removed
166 description: Whether to enable l3-agent HA
170 description: Agent mode for the neutron-l3-agent on the controller hosts
174 default: '' # Has to be here because of the ignored empty value bug
177 default: libvirt.LibvirtDriver
178 NovaComputeExtraConfig:
181 NovaCompute specific configuration to inject into the cluster. Same
182 structure as ExtraConfig.
184 NovaComputeLibvirtType:
187 NovaEnableRbdBackend:
189 description: Whether to enable or not the Rbd backend for Nova
193 description: The password for the nova service account, used by nova-api.
198 default: '' # Has to be here because of the ignored empty value bug
204 default: '' # Has to be here because of the ignored empty value bug
207 description: The password for RabbitMQ
212 description: The username for RabbitMQ
217 Rabbit client subscriber parameter to specify
218 an SSL connection to the RabbitMQ host.
222 description: Set rabbit subscriber port, change this if using SSL
224 SnmpdReadonlyUserName:
225 default: ro_snmp_user
226 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
228 SnmpdReadonlyUserPassword:
230 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
233 EnablePackageInstall:
235 description: Set to true to enable package installation via Puppet
239 description: Mapping of service_name -> network name. Typically set
240 via parameter_defaults in the resource registry.
246 Setting to a previously unused value during stack-update will trigger
247 package update on all nodes
250 default: '' # Defaults to Heat created hostname
255 type: OS::Nova::Server
260 get_param: ImageUpdatePolicy
261 flavor: {get_param: Flavor}
262 key_name: {get_param: KeyName}
265 user_data_format: SOFTWARE_CONFIG
266 user_data: {get_resource: UserData}
267 name: {get_param: Hostname}
269 # Combine the NodeAdminUserData and NodeUserData mime archives
271 type: OS::Heat::MultipartMime
274 - config: {get_resource: NodeAdminUserData}
276 - config: {get_resource: NodeUserData}
279 # Creates the "heat-admin" user if configured via the environment
280 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
282 type: OS::TripleO::NodeAdminUserData
284 # For optional operator additional userdata
285 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
287 type: OS::TripleO::NodeUserData
290 type: OS::TripleO::Compute::Ports::InternalApiPort
292 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
295 type: OS::TripleO::Compute::Ports::StoragePort
297 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
300 type: OS::TripleO::Compute::Ports::TenantPort
302 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
305 type: OS::TripleO::Network::Ports::NetIpMap
307 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
308 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
309 StorageIp: {get_attr: [StoragePort, ip_address]}
310 TenantIp: {get_attr: [TenantPort, ip_address]}
313 type: OS::TripleO::Compute::Net::SoftwareConfig
315 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
316 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
317 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
318 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
321 type: OS::TripleO::SoftwareDeployment
323 config: {get_resource: NetworkConfig}
324 server: {get_resource: NovaCompute}
326 bridge_name: {get_param: NeutronPhysicalBridge}
327 interface_name: {get_param: NeutronPublicInterface}
330 type: OS::Heat::StructuredConfig
332 group: os-apply-config
336 - heat_config_%{::deploy_config_name}
337 - compute_extraconfig
340 - ceph_cluster # provided by CephClusterConfig
342 - all_nodes # provided by allNodesConfig
347 mapped_data: {get_param: NovaComputeExtraConfig}
349 mapped_data: {get_param: ExtraConfig}
351 raw_data: {get_file: hieradata/common.yaml}
353 raw_data: {get_file: hieradata/ceph.yaml}
355 raw_data: {get_file: hieradata/compute.yaml}
357 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
358 nova::debug: {get_input: debug}
359 nova::rabbit_userid: {get_input: rabbit_username}
360 nova::rabbit_password: {get_input: rabbit_password}
361 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
362 nova::rabbit_port: {get_input: rabbit_client_port}
363 nova_compute_driver: {get_input: nova_compute_driver}
364 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
365 nova_api_host: {get_input: nova_api_host}
366 nova::compute::vncproxy_host: {get_input: nova_public_ip}
367 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
368 nova_password: {get_input: nova_password}
369 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
370 ceilometer::debug: {get_input: debug}
371 ceilometer::rabbit_userid: {get_input: rabbit_username}
372 ceilometer::rabbit_password: {get_input: rabbit_password}
373 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
374 ceilometer::rabbit_port: {get_input: rabbit_client_port}
375 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
376 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
377 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
378 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
379 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
380 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
381 nova::glance_api_servers: {get_input: glance_api_servers}
382 neutron::debug: {get_input: debug}
383 neutron::rabbit_password: {get_input: rabbit_password}
384 neutron::rabbit_user: {get_input: rabbit_user}
385 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
386 neutron::rabbit_port: {get_input: rabbit_client_port}
387 neutron_flat_networks: {get_input: neutron_flat_networks}
388 neutron_host: {get_input: neutron_host}
389 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
391 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
392 neutron_tunnel_types: {get_input: neutron_tunnel_types}
393 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
394 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
395 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
396 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
397 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
398 neutron_physical_bridge: {get_input: neutron_physical_bridge}
399 neutron_public_interface: {get_input: neutron_public_interface}
400 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
401 nova::network::neutron::neutron_url: {get_input: neutron_url}
402 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
403 neutron_router_distributed: {get_input: neutron_router_distributed}
404 neutron_agent_mode: {get_input: neutron_agent_mode}
405 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
406 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
407 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
408 admin_password: {get_input: admin_password}
409 ntp::servers: {get_input: ntp_servers}
410 tripleo::packages::enable_install: {get_input: enable_package_install}
412 NovaComputeDeployment:
413 type: OS::TripleO::SoftwareDeployment
414 depends_on: NetworkDeployment
416 config: {get_resource: NovaComputeConfig}
417 server: {get_resource: NovaCompute}
419 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
420 debug: {get_param: Debug}
421 nova_compute_driver: {get_param: NovaComputeDriver}
422 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
423 nova_public_ip: {get_param: NovaPublicIP}
424 nova_api_host: {get_param: NovaApiHost}
425 nova_password: {get_param: NovaPassword}
426 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
427 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
428 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
429 ceilometer_password: {get_param: CeilometerPassword}
430 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
431 ceilometer_agent_auth_url:
435 - {get_param: KeystonePublicApiVirtualIP}
437 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
438 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
442 - - {get_param: GlanceProtocol}
444 - {get_param: GlanceHost}
446 - {get_param: GlancePort}
447 neutron_flat_networks: {get_param: NeutronFlatNetworks}
448 neutron_host: {get_param: NeutronHost}
449 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
450 neutron_tenant_network_type: {get_param: NeutronNetworkType}
451 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
452 neutron_tunnel_id_ranges:
454 template: "['RANGES']"
459 - {get_param: NeutronTunnelIdRanges}
462 template: "['RANGES']"
467 - {get_param: NeutronVniRanges}
468 neutron_network_vlan_ranges:
470 template: "['RANGES']"
475 - {get_param: NeutronNetworkVLANRanges}
476 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
477 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
478 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
479 neutron_public_interface: {get_param: NeutronPublicInterface}
480 neutron_password: {get_param: NeutronPassword}
481 neutron_agent_mode: {get_param: NeutronAgentMode}
482 neutron_router_distributed: {get_param: NeutronDVR}
483 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
484 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
485 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
490 - {get_param: NeutronHost}
492 neutron_admin_auth_url:
496 - {get_param: KeystoneAdminApiVirtualIP}
498 admin_password: {get_param: AdminPassword}
499 rabbit_username: {get_param: RabbitUserName}
500 rabbit_password: {get_param: RabbitPassword}
501 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
502 rabbit_client_port: {get_param: RabbitClientPort}
505 template: '["server"]'
507 server: {get_param: NtpServer}
508 enable_package_install: {get_param: EnablePackageInstall}
510 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
511 ComputeExtraConfigPre:
512 depends_on: NovaComputeDeployment
513 type: OS::TripleO::ComputeExtraConfigPre
515 server: {get_resource: NovaCompute}
518 type: OS::TripleO::Tasks::PackageUpdate
521 type: OS::Heat::SoftwareDeployment
523 config: {get_resource: UpdateConfig}
524 server: {get_resource: NovaCompute}
527 get_param: UpdateIdentifier
531 description: IP address of the server in the ctlplane network
532 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
533 internal_api_ip_address:
534 description: IP address of the server in the internal_api network
535 value: {get_attr: [InternalApiPort, ip_address]}
537 description: IP address of the server in the storage network
538 value: {get_attr: [StoragePort, ip_address]}
540 description: IP address of the server in the tenant network
541 value: {get_attr: [TenantPort, ip_address]}
543 description: Hostname of the server
544 value: {get_attr: [NovaCompute, name]}
547 Server's IP address and hostname in the /etc/hosts format
550 template: "IP HOST.localdomain HOST"
552 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
553 HOST: {get_attr: [NovaCompute, name]}
554 nova_server_resource:
555 description: Heat resource handle for the Nova compute server
557 {get_resource: NovaCompute}
559 description: identifier which changes if the node configuration may need re-applying
563 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
564 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}