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:
91 Enable/disable the L2 population feature in the Neutron agents.
97 If set, flat networks to configure in neutron plugins.
100 default: '' # Has to be here because of the ignored empty value bug
103 description: The tenant network type for Neutron, either gre or vxlan.
105 NeutronNetworkVLANRanges:
106 default: 'datacentre'
108 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
109 Neutron documentation for permitted values. Defaults to permitting any
110 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
111 type: comma_delimited_list
114 description: The password for the neutron service account, used by neutron agents.
117 NeutronPhysicalBridge:
119 description: An OVS bridge to create for accessing external networks.
121 NeutronPublicInterface:
123 description: A port to add to the NeutronPhysicalBridge.
128 The tunnel types for the Neutron tenant network. To specify multiple
129 values, use a comma separated string, like so: 'gre,vxlan'
131 NeutronTunnelIdRanges:
133 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
134 of GRE tunnel IDs that are available for tenant network allocation
135 default: ["1:1000", ]
136 type: comma_delimited_list
139 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
140 of VXLAN VNI IDs that are available for tenant network allocation
141 default: ["1:1000", ]
142 type: comma_delimited_list
143 NeutronPublicInterfaceRawDevice:
149 NeutronMetadataProxySharedSecret:
151 description: Shared secret to prevent spoofing
157 The core plugin for Neutron. The value should be the entrypoint to be loaded
158 from neutron.core_plugins namespace.
160 NeutronServicePlugins:
163 Comma-separated list of service plugin entrypoints to be loaded from the
164 neutron.service_plugins namespace.
165 type: comma_delimited_list
167 default: "vxlan,vlan,flat,gre"
169 Comma-separated list of network type driver entrypoints to be loaded.
170 type: comma_delimited_list
171 NeutronMechanismDrivers:
172 default: 'openvswitch'
174 The mechanism drivers for the Neutron tenant network. To specify multiple
175 values, use a comma separated string, like so: 'openvswitch,l2_population'
177 # Not relevant for Computes, should be removed
178 NeutronAllowL3AgentFailover:
180 description: Allow automatic l3-agent failover
182 # Not relevant for Computes, should be removed
185 description: Whether to enable l3-agent HA
189 description: Agent mode for the neutron-l3-agent on the controller hosts
193 default: '' # Has to be here because of the ignored empty value bug
196 default: libvirt.LibvirtDriver
197 NovaComputeExtraConfig:
200 NovaCompute specific configuration to inject into the cluster. Same
201 structure as ExtraConfig.
203 NovaComputeLibvirtType:
206 NovaEnableRbdBackend:
208 description: Whether to enable or not the Rbd backend for Nova
212 description: The password for the nova service account, used by nova-api.
217 default: '' # Has to be here because of the ignored empty value bug
220 description: Comma-separated list of ntp servers
221 type: comma_delimited_list
224 default: '' # Has to be here because of the ignored empty value bug
227 description: The password for RabbitMQ
232 description: The username for RabbitMQ
237 Rabbit client subscriber parameter to specify
238 an SSL connection to the RabbitMQ host.
242 description: Set rabbit subscriber port, change this if using SSL
244 SnmpdReadonlyUserName:
245 default: ro_snmp_user
246 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
248 SnmpdReadonlyUserPassword:
250 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
253 EnablePackageInstall:
255 description: Set to true to enable package installation via Puppet
259 description: Mapping of service_name -> network name. Typically set
260 via parameter_defaults in the resource registry.
264 description: Mapping of service endpoint -> protocol. Typically set
265 via parameter_defaults in the resource registry.
271 Setting to a previously unused value during stack-update will trigger
272 package update on all nodes
275 default: '' # Defaults to Heat created hostname
276 NetworkDeploymentActions:
277 type: comma_delimited_list
279 Heat action when to apply network configuration changes
285 The DNS domain used for the hosts. This should match the dhcp_domain
286 configured in the Undercloud neutron. Defaults to localdomain.
292 type: OS::Nova::Server
297 get_param: ImageUpdatePolicy
298 flavor: {get_param: Flavor}
299 key_name: {get_param: KeyName}
302 user_data_format: SOFTWARE_CONFIG
303 user_data: {get_resource: UserData}
304 name: {get_param: Hostname}
306 # Combine the NodeAdminUserData and NodeUserData mime archives
308 type: OS::Heat::MultipartMime
311 - config: {get_resource: NodeAdminUserData}
313 - config: {get_resource: NodeUserData}
316 # Creates the "heat-admin" user if configured via the environment
317 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
319 type: OS::TripleO::NodeAdminUserData
321 # For optional operator additional userdata
322 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
324 type: OS::TripleO::NodeUserData
327 type: OS::TripleO::Compute::Ports::InternalApiPort
329 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
332 type: OS::TripleO::Compute::Ports::StoragePort
334 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
337 type: OS::TripleO::Compute::Ports::TenantPort
339 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
342 type: OS::TripleO::Network::Ports::NetIpMap
344 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
345 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
346 StorageIp: {get_attr: [StoragePort, ip_address]}
347 TenantIp: {get_attr: [TenantPort, ip_address]}
350 type: OS::TripleO::Compute::Net::SoftwareConfig
352 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
353 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
354 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
355 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
358 type: OS::TripleO::SoftwareDeployment
360 config: {get_resource: NetworkConfig}
361 server: {get_resource: NovaCompute}
362 actions: {get_param: NetworkDeploymentActions}
364 bridge_name: {get_param: NeutronPhysicalBridge}
365 interface_name: {get_param: NeutronPublicInterface}
368 type: OS::Heat::StructuredConfig
370 group: os-apply-config
375 - heat_config_%{::deploy_config_name}
376 - compute_extraconfig
379 - ceph_cluster # provided by CephClusterConfig
381 - all_nodes # provided by allNodesConfig
384 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
387 mapped_data: {get_param: NovaComputeExtraConfig}
389 mapped_data: {get_param: ExtraConfig}
391 raw_data: {get_file: hieradata/common.yaml}
393 raw_data: {get_file: hieradata/ceph.yaml}
395 raw_data: {get_file: hieradata/compute.yaml}
397 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
398 nova::debug: {get_input: debug}
399 nova::rabbit_userid: {get_input: rabbit_username}
400 nova::rabbit_password: {get_input: rabbit_password}
401 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
402 nova::rabbit_port: {get_input: rabbit_client_port}
403 nova_compute_driver: {get_input: nova_compute_driver}
404 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
405 nova_api_host: {get_input: nova_api_host}
406 nova::compute::vncproxy_host: {get_input: nova_public_ip}
407 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
408 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
409 nova_password: {get_input: nova_password}
410 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
411 ceilometer::debug: {get_input: debug}
412 ceilometer::rabbit_userid: {get_input: rabbit_username}
413 ceilometer::rabbit_password: {get_input: rabbit_password}
414 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
415 ceilometer::rabbit_port: {get_input: rabbit_client_port}
416 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
417 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
418 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
419 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
420 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
421 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
422 nova::glance_api_servers: {get_input: glance_api_servers}
423 neutron::debug: {get_input: debug}
424 neutron::rabbit_password: {get_input: rabbit_password}
425 neutron::rabbit_user: {get_input: rabbit_username}
426 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
427 neutron::rabbit_port: {get_input: rabbit_client_port}
428 neutron_flat_networks: {get_input: neutron_flat_networks}
429 neutron_host: {get_input: neutron_host}
430 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
432 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
433 neutron_tunnel_types: {get_input: neutron_tunnel_types}
434 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
435 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
436 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
437 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
438 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
439 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
440 neutron_physical_bridge: {get_input: neutron_physical_bridge}
441 neutron_public_interface: {get_input: neutron_public_interface}
442 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
443 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
444 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
445 neutron_router_distributed: {get_input: neutron_router_distributed}
446 neutron_agent_mode: {get_input: neutron_agent_mode}
447 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
448 neutron::core_plugin: {get_input: neutron_core_plugin}
449 neutron::service_plugins: {get_input: neutron_service_plugins}
450 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
451 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
452 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
453 admin_password: {get_input: admin_password}
454 ntp::servers: {get_input: ntp_servers}
455 tripleo::packages::enable_install: {get_input: enable_package_install}
456 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
458 NovaComputeDeployment:
459 type: OS::TripleO::SoftwareDeployment
460 depends_on: NetworkDeployment
462 config: {get_resource: NovaComputeConfig}
463 server: {get_resource: NovaCompute}
465 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
466 debug: {get_param: Debug}
467 nova_compute_driver: {get_param: NovaComputeDriver}
468 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
469 nova_public_ip: {get_param: NovaPublicIP}
470 nova_api_host: {get_param: NovaApiHost}
471 nova_password: {get_param: NovaPassword}
472 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
473 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
474 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
475 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
476 ceilometer_password: {get_param: CeilometerPassword}
477 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
478 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
479 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
480 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
481 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
482 neutron_flat_networks: {get_param: NeutronFlatNetworks}
483 neutron_host: {get_param: NeutronHost}
484 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
485 neutron_tenant_network_type: {get_param: NeutronNetworkType}
486 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
487 neutron_tunnel_id_ranges:
489 template: "['RANGES']"
494 - {get_param: NeutronTunnelIdRanges}
497 template: "['RANGES']"
502 - {get_param: NeutronVniRanges}
503 neutron_network_vlan_ranges:
505 template: "['RANGES']"
510 - {get_param: NeutronNetworkVLANRanges}
511 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
512 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
513 neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
514 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
515 neutron_public_interface: {get_param: NeutronPublicInterface}
516 neutron_password: {get_param: NeutronPassword}
517 neutron_agent_mode: {get_param: NeutronAgentMode}
518 neutron_router_distributed: {get_param: NeutronDVR}
519 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
520 neutron_core_plugin: {get_param: NeutronCorePlugin}
521 neutron_service_plugins:
523 template: "['PLUGINS']"
528 - {get_param: NeutronServicePlugins}
529 neutron_type_drivers:
531 template: "['DRIVERS']"
536 - {get_param: NeutronTypeDrivers}
537 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
538 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
539 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
540 neutron_admin_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]}
541 admin_password: {get_param: AdminPassword}
542 rabbit_username: {get_param: RabbitUserName}
543 rabbit_password: {get_param: RabbitPassword}
544 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
545 rabbit_client_port: {get_param: RabbitClientPort}
546 ntp_servers: {get_param: NtpServer}
547 enable_package_install: {get_param: EnablePackageInstall}
548 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
550 # Resource for site-specific injection of root certificate
552 depends_on: NovaComputeDeployment
553 type: OS::TripleO::NodeTLSCAData
555 server: {get_resource: NovaCompute}
557 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
558 ComputeExtraConfigPre:
559 depends_on: NovaComputeDeployment
560 type: OS::TripleO::ComputeExtraConfigPre
562 server: {get_resource: NovaCompute}
564 # Hook for site-specific additional pre-deployment config,
565 # applying to all nodes, e.g node registration/unregistration
567 depends_on: [ComputeExtraConfigPre, NodeTLSCAData]
568 type: OS::TripleO::NodeExtraConfig
570 server: {get_resource: NovaCompute}
573 type: OS::TripleO::Tasks::PackageUpdate
576 type: OS::Heat::SoftwareDeployment
578 config: {get_resource: UpdateConfig}
579 server: {get_resource: NovaCompute}
582 get_param: UpdateIdentifier
586 description: IP address of the server in the ctlplane network
587 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
588 internal_api_ip_address:
589 description: IP address of the server in the internal_api network
590 value: {get_attr: [InternalApiPort, ip_address]}
592 description: IP address of the server in the storage network
593 value: {get_attr: [StoragePort, ip_address]}
595 description: IP address of the server in the tenant network
596 value: {get_attr: [TenantPort, ip_address]}
598 description: Hostname of the server
599 value: {get_attr: [NovaCompute, name]}
602 Server's IP address and hostname in the /etc/hosts format
605 template: "IP HOST.DOMAIN HOST"
607 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
608 DOMAIN: {get_param: CloudDomain}
609 HOST: {get_attr: [NovaCompute, name]}
610 nova_server_resource:
611 description: Heat resource handle for the Nova compute server
613 {get_resource: NovaCompute}
615 description: identifier which changes if the node configuration may need re-applying
619 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
620 - {get_attr: [NodeTLSCAData, deploy_stdout]}
621 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
622 - {get_param: UpdateIdentifier}