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
218 default: '' # Has to be here because of the ignored empty value bug
221 description: The password for RabbitMQ
226 description: The username for RabbitMQ
231 Rabbit client subscriber parameter to specify
232 an SSL connection to the RabbitMQ host.
236 description: Set rabbit subscriber port, change this if using SSL
238 SnmpdReadonlyUserName:
239 default: ro_snmp_user
240 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
242 SnmpdReadonlyUserPassword:
244 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
247 EnablePackageInstall:
249 description: Set to true to enable package installation via Puppet
253 description: Mapping of service_name -> network name. Typically set
254 via parameter_defaults in the resource registry.
258 description: Mapping of service endpoint -> protocol. Typically set
259 via parameter_defaults in the resource registry.
265 Setting to a previously unused value during stack-update will trigger
266 package update on all nodes
269 default: '' # Defaults to Heat created hostname
274 type: OS::Nova::Server
279 get_param: ImageUpdatePolicy
280 flavor: {get_param: Flavor}
281 key_name: {get_param: KeyName}
284 user_data_format: SOFTWARE_CONFIG
285 user_data: {get_resource: UserData}
286 name: {get_param: Hostname}
288 # Combine the NodeAdminUserData and NodeUserData mime archives
290 type: OS::Heat::MultipartMime
293 - config: {get_resource: NodeAdminUserData}
295 - config: {get_resource: NodeUserData}
298 # Creates the "heat-admin" user if configured via the environment
299 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
301 type: OS::TripleO::NodeAdminUserData
303 # For optional operator additional userdata
304 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
306 type: OS::TripleO::NodeUserData
309 type: OS::TripleO::Compute::Ports::InternalApiPort
311 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
314 type: OS::TripleO::Compute::Ports::StoragePort
316 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
319 type: OS::TripleO::Compute::Ports::TenantPort
321 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
324 type: OS::TripleO::Network::Ports::NetIpMap
326 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
327 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
328 StorageIp: {get_attr: [StoragePort, ip_address]}
329 TenantIp: {get_attr: [TenantPort, ip_address]}
332 type: OS::TripleO::Compute::Net::SoftwareConfig
334 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
335 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
336 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
337 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
340 type: OS::TripleO::SoftwareDeployment
342 config: {get_resource: NetworkConfig}
343 server: {get_resource: NovaCompute}
345 bridge_name: {get_param: NeutronPhysicalBridge}
346 interface_name: {get_param: NeutronPublicInterface}
349 type: OS::Heat::StructuredConfig
351 group: os-apply-config
356 - heat_config_%{::deploy_config_name}
357 - compute_extraconfig
360 - ceph_cluster # provided by CephClusterConfig
362 - all_nodes # provided by allNodesConfig
365 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
368 mapped_data: {get_param: NovaComputeExtraConfig}
370 mapped_data: {get_param: ExtraConfig}
372 raw_data: {get_file: hieradata/common.yaml}
374 raw_data: {get_file: hieradata/ceph.yaml}
376 raw_data: {get_file: hieradata/compute.yaml}
378 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
379 nova::debug: {get_input: debug}
380 nova::rabbit_userid: {get_input: rabbit_username}
381 nova::rabbit_password: {get_input: rabbit_password}
382 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
383 nova::rabbit_port: {get_input: rabbit_client_port}
384 nova_compute_driver: {get_input: nova_compute_driver}
385 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
386 nova_api_host: {get_input: nova_api_host}
387 nova::compute::vncproxy_host: {get_input: nova_public_ip}
388 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
389 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
390 nova_password: {get_input: nova_password}
391 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
392 ceilometer::debug: {get_input: debug}
393 ceilometer::rabbit_userid: {get_input: rabbit_username}
394 ceilometer::rabbit_password: {get_input: rabbit_password}
395 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
396 ceilometer::rabbit_port: {get_input: rabbit_client_port}
397 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
398 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
399 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
400 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
401 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
402 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
403 nova::glance_api_servers: {get_input: glance_api_servers}
404 neutron::debug: {get_input: debug}
405 neutron::rabbit_password: {get_input: rabbit_password}
406 neutron::rabbit_user: {get_input: rabbit_user}
407 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
408 neutron::rabbit_port: {get_input: rabbit_client_port}
409 neutron_flat_networks: {get_input: neutron_flat_networks}
410 neutron_host: {get_input: neutron_host}
411 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
413 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
414 neutron_tunnel_types: {get_input: neutron_tunnel_types}
415 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
416 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
417 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
418 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
419 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
420 neutron_physical_bridge: {get_input: neutron_physical_bridge}
421 neutron_public_interface: {get_input: neutron_public_interface}
422 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
423 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
424 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
425 neutron_router_distributed: {get_input: neutron_router_distributed}
426 neutron_agent_mode: {get_input: neutron_agent_mode}
427 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
428 neutron::core_plugin: {get_input: neutron_core_plugin}
429 neutron::service_plugins: {get_input: neutron_service_plugins}
430 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
431 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
432 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
433 admin_password: {get_input: admin_password}
434 ntp::servers: {get_input: ntp_servers}
435 tripleo::packages::enable_install: {get_input: enable_package_install}
436 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
438 NovaComputeDeployment:
439 type: OS::TripleO::SoftwareDeployment
440 depends_on: NetworkDeployment
442 config: {get_resource: NovaComputeConfig}
443 server: {get_resource: NovaCompute}
445 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
446 debug: {get_param: Debug}
447 nova_compute_driver: {get_param: NovaComputeDriver}
448 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
449 nova_public_ip: {get_param: NovaPublicIP}
450 nova_api_host: {get_param: NovaApiHost}
451 nova_password: {get_param: NovaPassword}
452 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
453 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
454 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
455 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
456 ceilometer_password: {get_param: CeilometerPassword}
457 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
458 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
459 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
460 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
461 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
462 neutron_flat_networks: {get_param: NeutronFlatNetworks}
463 neutron_host: {get_param: NeutronHost}
464 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
465 neutron_tenant_network_type: {get_param: NeutronNetworkType}
466 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
467 neutron_tunnel_id_ranges:
469 template: "['RANGES']"
474 - {get_param: NeutronTunnelIdRanges}
477 template: "['RANGES']"
482 - {get_param: NeutronVniRanges}
483 neutron_network_vlan_ranges:
485 template: "['RANGES']"
490 - {get_param: NeutronNetworkVLANRanges}
491 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
492 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
493 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
494 neutron_public_interface: {get_param: NeutronPublicInterface}
495 neutron_password: {get_param: NeutronPassword}
496 neutron_agent_mode: {get_param: NeutronAgentMode}
497 neutron_router_distributed: {get_param: NeutronDVR}
498 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
499 neutron_core_plugin: {get_param: NeutronCorePlugin}
500 neutron_service_plugins:
502 template: "['PLUGINS']"
507 - {get_param: NeutronServicePlugins}
508 neutron_type_drivers:
510 template: "['DRIVERS']"
515 - {get_param: NeutronTypeDrivers}
516 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
517 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
518 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
519 neutron_admin_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]}
520 admin_password: {get_param: AdminPassword}
521 rabbit_username: {get_param: RabbitUserName}
522 rabbit_password: {get_param: RabbitPassword}
523 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
524 rabbit_client_port: {get_param: RabbitClientPort}
527 template: '["server"]'
529 server: {get_param: NtpServer}
530 enable_package_install: {get_param: EnablePackageInstall}
531 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
533 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
534 ComputeExtraConfigPre:
535 depends_on: NovaComputeDeployment
536 type: OS::TripleO::ComputeExtraConfigPre
538 server: {get_resource: NovaCompute}
540 # Hook for site-specific additional pre-deployment config,
541 # applying to all nodes, e.g node registration/unregistration
543 depends_on: ComputeExtraConfigPre
544 type: OS::TripleO::NodeExtraConfig
546 server: {get_resource: NovaCompute}
549 type: OS::TripleO::Tasks::PackageUpdate
552 type: OS::Heat::SoftwareDeployment
554 config: {get_resource: UpdateConfig}
555 server: {get_resource: NovaCompute}
558 get_param: UpdateIdentifier
562 description: IP address of the server in the ctlplane network
563 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
564 internal_api_ip_address:
565 description: IP address of the server in the internal_api network
566 value: {get_attr: [InternalApiPort, ip_address]}
568 description: IP address of the server in the storage network
569 value: {get_attr: [StoragePort, ip_address]}
571 description: IP address of the server in the tenant network
572 value: {get_attr: [TenantPort, ip_address]}
574 description: Hostname of the server
575 value: {get_attr: [NovaCompute, name]}
578 Server's IP address and hostname in the /etc/hosts format
581 template: "IP HOST.localdomain HOST"
583 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
584 HOST: {get_attr: [NovaCompute, name]}
585 nova_server_resource:
586 description: Heat resource handle for the Nova compute server
588 {get_resource: NovaCompute}
590 description: identifier which changes if the node configuration may need re-applying
594 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
595 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
596 - {get_param: UpdateIdentifier}