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
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 hiera configuration to inject into the cluster. Note
44 that NovaComputeExtraConfig takes precedence over ExtraConfig.
47 description: Flavor for the nova compute node
50 - custom_constraint: nova.flavor
53 default: '' # Has to be here because of the ignored empty value bug
56 default: overcloud-compute
58 - custom_constraint: glance.image
60 default: 'REBUILD_PRESERVE_EPHEMERAL'
61 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
64 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
68 - custom_constraint: nova.keypair
69 KeystoneAdminApiVirtualIP:
72 KeystonePublicApiVirtualIP:
75 NeutronBridgeMappings:
77 The OVS logical->physical bridge mappings to use. See the Neutron
78 documentation for details. Defaults to mapping br-ex - the external
79 bridge on hosts - to a physical name 'datacentre' which can be used
80 to create provider networks (and we use this for the default floating
81 network) - if changing this either use different post-install network
82 scripts or be sure to keep 'datacentre' as a mapping network name.
84 default: "datacentre:br-ex"
85 NeutronEnableTunnelling:
92 If set, flat networks to configure in neutron plugins.
95 default: '' # Has to be here because of the ignored empty value bug
98 description: The tenant network type for Neutron, either gre or vxlan.
100 NeutronNetworkVLANRanges:
101 default: 'datacentre'
103 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
104 Neutron documentation for permitted values. Defaults to permitting any
105 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
106 type: comma_delimited_list
109 description: The password for the neutron service account, used by neutron agents.
112 NeutronPhysicalBridge:
114 description: An OVS bridge to create for accessing external networks.
116 NeutronPublicInterface:
118 description: A port to add to the NeutronPhysicalBridge.
123 The tunnel types for the Neutron tenant network. To specify multiple
124 values, use a comma separated string, like so: 'gre,vxlan'
126 NeutronTunnelIdRanges:
128 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
129 of GRE tunnel IDs that are available for tenant network allocation
130 default: ["1:1000", ]
131 type: comma_delimited_list
134 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
135 of VXLAN VNI IDs that are available for tenant network allocation
136 default: ["1:1000", ]
137 type: comma_delimited_list
138 NeutronPublicInterfaceRawDevice:
144 NeutronMetadataProxySharedSecret:
146 description: Shared secret to prevent spoofing
152 The core plugin for Neutron. The value should be the entrypoint to be loaded
153 from neutron.core_plugins namespace.
155 NeutronServicePlugins:
158 Comma-separated list of service plugin entrypoints to be loaded from the
159 neutron.service_plugins namespace.
160 type: comma_delimited_list
162 default: "vxlan,vlan,flat,gre"
164 Comma-separated list of network type driver entrypoints to be loaded.
165 type: comma_delimited_list
166 NeutronMechanismDrivers:
167 default: 'openvswitch'
169 The mechanism drivers for the Neutron tenant network. To specify multiple
170 values, use a comma separated string, like so: 'openvswitch,l2_population'
172 # Not relevant for Computes, should be removed
173 NeutronAllowL3AgentFailover:
175 description: Allow automatic l3-agent failover
177 # Not relevant for Computes, should be removed
180 description: Whether to enable l3-agent HA
184 description: Agent mode for the neutron-l3-agent on the controller hosts
188 default: '' # Has to be here because of the ignored empty value bug
191 default: libvirt.LibvirtDriver
192 NovaComputeExtraConfig:
195 NovaCompute specific configuration to inject into the cluster. Same
196 structure as ExtraConfig.
198 NovaComputeLibvirtType:
201 NovaEnableRbdBackend:
203 description: Whether to enable or not the Rbd backend for Nova
207 description: The password for the nova service account, used by nova-api.
212 default: '' # Has to be here because of the ignored empty value bug
215 description: Comma-separated list of ntp servers
216 type: comma_delimited_list
219 default: '' # Has to be here because of the ignored empty value bug
222 description: The password for RabbitMQ
227 description: The username for RabbitMQ
232 Rabbit client subscriber parameter to specify
233 an SSL connection to the RabbitMQ host.
237 description: Set rabbit subscriber port, change this if using SSL
239 SnmpdReadonlyUserName:
240 default: ro_snmp_user
241 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
243 SnmpdReadonlyUserPassword:
245 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
248 EnablePackageInstall:
250 description: Set to true to enable package installation via Puppet
254 description: Mapping of service_name -> network name. Typically set
255 via parameter_defaults in the resource registry.
259 description: Mapping of service endpoint -> protocol. Typically set
260 via parameter_defaults in the resource registry.
266 Setting to a previously unused value during stack-update will trigger
267 package update on all nodes
270 default: '' # Defaults to Heat created hostname
275 type: OS::Nova::Server
280 get_param: ImageUpdatePolicy
281 flavor: {get_param: Flavor}
282 key_name: {get_param: KeyName}
285 user_data_format: SOFTWARE_CONFIG
286 user_data: {get_resource: UserData}
287 name: {get_param: Hostname}
289 # Combine the NodeAdminUserData and NodeUserData mime archives
291 type: OS::Heat::MultipartMime
294 - config: {get_resource: NodeAdminUserData}
296 - config: {get_resource: NodeUserData}
299 # Creates the "heat-admin" user if configured via the environment
300 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
302 type: OS::TripleO::NodeAdminUserData
304 # For optional operator additional userdata
305 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
307 type: OS::TripleO::NodeUserData
310 type: OS::TripleO::Compute::Ports::InternalApiPort
312 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
315 type: OS::TripleO::Compute::Ports::StoragePort
317 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
320 type: OS::TripleO::Compute::Ports::TenantPort
322 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
325 type: OS::TripleO::Network::Ports::NetIpMap
327 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
328 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
329 StorageIp: {get_attr: [StoragePort, ip_address]}
330 TenantIp: {get_attr: [TenantPort, ip_address]}
333 type: OS::TripleO::Compute::Net::SoftwareConfig
335 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
336 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
337 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
338 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
341 type: OS::TripleO::SoftwareDeployment
343 config: {get_resource: NetworkConfig}
344 server: {get_resource: NovaCompute}
346 bridge_name: {get_param: NeutronPhysicalBridge}
347 interface_name: {get_param: NeutronPublicInterface}
350 type: OS::Heat::StructuredConfig
352 group: os-apply-config
357 - heat_config_%{::deploy_config_name}
358 - compute_extraconfig
361 - ceph_cluster # provided by CephClusterConfig
363 - all_nodes # provided by allNodesConfig
366 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
369 mapped_data: {get_param: NovaComputeExtraConfig}
371 mapped_data: {get_param: ExtraConfig}
373 raw_data: {get_file: hieradata/common.yaml}
375 raw_data: {get_file: hieradata/ceph.yaml}
377 raw_data: {get_file: hieradata/compute.yaml}
379 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
380 nova::debug: {get_input: debug}
381 nova::rabbit_userid: {get_input: rabbit_username}
382 nova::rabbit_password: {get_input: rabbit_password}
383 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
384 nova::rabbit_port: {get_input: rabbit_client_port}
385 nova_compute_driver: {get_input: nova_compute_driver}
386 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
387 nova_api_host: {get_input: nova_api_host}
388 nova::compute::vncproxy_host: {get_input: nova_public_ip}
389 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
390 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
391 nova_password: {get_input: nova_password}
392 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
393 ceilometer::debug: {get_input: debug}
394 ceilometer::rabbit_userid: {get_input: rabbit_username}
395 ceilometer::rabbit_password: {get_input: rabbit_password}
396 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
397 ceilometer::rabbit_port: {get_input: rabbit_client_port}
398 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
399 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
400 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
401 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
402 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
403 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
404 nova::glance_api_servers: {get_input: glance_api_servers}
405 neutron::debug: {get_input: debug}
406 neutron::rabbit_password: {get_input: rabbit_password}
407 neutron::rabbit_user: {get_input: rabbit_username}
408 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
409 neutron::rabbit_port: {get_input: rabbit_client_port}
410 neutron_flat_networks: {get_input: neutron_flat_networks}
411 neutron_host: {get_input: neutron_host}
412 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
414 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
415 neutron_tunnel_types: {get_input: neutron_tunnel_types}
416 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
417 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
418 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
419 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
420 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
421 neutron_physical_bridge: {get_input: neutron_physical_bridge}
422 neutron_public_interface: {get_input: neutron_public_interface}
423 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
424 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
425 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
426 neutron_router_distributed: {get_input: neutron_router_distributed}
427 neutron_agent_mode: {get_input: neutron_agent_mode}
428 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
429 neutron::core_plugin: {get_input: neutron_core_plugin}
430 neutron::service_plugins: {get_input: neutron_service_plugins}
431 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
432 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
433 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
434 admin_password: {get_input: admin_password}
435 ntp::servers: {get_input: ntp_servers}
436 tripleo::packages::enable_install: {get_input: enable_package_install}
437 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
439 NovaComputeDeployment:
440 type: OS::TripleO::SoftwareDeployment
441 depends_on: NetworkDeployment
443 config: {get_resource: NovaComputeConfig}
444 server: {get_resource: NovaCompute}
446 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
447 debug: {get_param: Debug}
448 nova_compute_driver: {get_param: NovaComputeDriver}
449 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
450 nova_public_ip: {get_param: NovaPublicIP}
451 nova_api_host: {get_param: NovaApiHost}
452 nova_password: {get_param: NovaPassword}
453 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
454 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
455 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
456 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
457 ceilometer_password: {get_param: CeilometerPassword}
458 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
459 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
460 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
461 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
462 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
463 neutron_flat_networks: {get_param: NeutronFlatNetworks}
464 neutron_host: {get_param: NeutronHost}
465 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
466 neutron_tenant_network_type: {get_param: NeutronNetworkType}
467 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
468 neutron_tunnel_id_ranges:
470 template: "['RANGES']"
475 - {get_param: NeutronTunnelIdRanges}
478 template: "['RANGES']"
483 - {get_param: NeutronVniRanges}
484 neutron_network_vlan_ranges:
486 template: "['RANGES']"
491 - {get_param: NeutronNetworkVLANRanges}
492 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
493 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
494 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
495 neutron_public_interface: {get_param: NeutronPublicInterface}
496 neutron_password: {get_param: NeutronPassword}
497 neutron_agent_mode: {get_param: NeutronAgentMode}
498 neutron_router_distributed: {get_param: NeutronDVR}
499 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
500 neutron_core_plugin: {get_param: NeutronCorePlugin}
501 neutron_service_plugins:
503 template: "['PLUGINS']"
508 - {get_param: NeutronServicePlugins}
509 neutron_type_drivers:
511 template: "['DRIVERS']"
516 - {get_param: NeutronTypeDrivers}
517 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
518 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
519 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
520 neutron_admin_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]}
521 admin_password: {get_param: AdminPassword}
522 rabbit_username: {get_param: RabbitUserName}
523 rabbit_password: {get_param: RabbitPassword}
524 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
525 rabbit_client_port: {get_param: RabbitClientPort}
526 ntp_servers: {get_param: NtpServer}
527 enable_package_install: {get_param: EnablePackageInstall}
528 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
530 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
531 ComputeExtraConfigPre:
532 depends_on: NovaComputeDeployment
533 type: OS::TripleO::ComputeExtraConfigPre
535 server: {get_resource: NovaCompute}
537 # Hook for site-specific additional pre-deployment config,
538 # applying to all nodes, e.g node registration/unregistration
540 depends_on: ComputeExtraConfigPre
541 type: OS::TripleO::NodeExtraConfig
543 server: {get_resource: NovaCompute}
546 type: OS::TripleO::Tasks::PackageUpdate
549 type: OS::Heat::SoftwareDeployment
551 config: {get_resource: UpdateConfig}
552 server: {get_resource: NovaCompute}
555 get_param: UpdateIdentifier
559 description: IP address of the server in the ctlplane network
560 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
561 internal_api_ip_address:
562 description: IP address of the server in the internal_api network
563 value: {get_attr: [InternalApiPort, ip_address]}
565 description: IP address of the server in the storage network
566 value: {get_attr: [StoragePort, ip_address]}
568 description: IP address of the server in the tenant network
569 value: {get_attr: [TenantPort, ip_address]}
571 description: Hostname of the server
572 value: {get_attr: [NovaCompute, name]}
575 Server's IP address and hostname in the /etc/hosts format
578 template: "IP HOST.localdomain HOST"
580 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
581 HOST: {get_attr: [NovaCompute, name]}
582 nova_server_resource:
583 description: Heat resource handle for the Nova compute server
585 {get_resource: NovaCompute}
587 description: identifier which changes if the node configuration may need re-applying
591 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
592 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
593 - {get_param: UpdateIdentifier}