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
280 type: OS::Nova::Server
285 get_param: ImageUpdatePolicy
286 flavor: {get_param: Flavor}
287 key_name: {get_param: KeyName}
290 user_data_format: SOFTWARE_CONFIG
291 user_data: {get_resource: UserData}
292 name: {get_param: Hostname}
294 # Combine the NodeAdminUserData and NodeUserData mime archives
296 type: OS::Heat::MultipartMime
299 - config: {get_resource: NodeAdminUserData}
301 - config: {get_resource: NodeUserData}
304 # Creates the "heat-admin" user if configured via the environment
305 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
307 type: OS::TripleO::NodeAdminUserData
309 # For optional operator additional userdata
310 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
312 type: OS::TripleO::NodeUserData
315 type: OS::TripleO::Compute::Ports::InternalApiPort
317 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
320 type: OS::TripleO::Compute::Ports::StoragePort
322 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
325 type: OS::TripleO::Compute::Ports::TenantPort
327 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
330 type: OS::TripleO::Network::Ports::NetIpMap
332 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
333 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
334 StorageIp: {get_attr: [StoragePort, ip_address]}
335 TenantIp: {get_attr: [TenantPort, ip_address]}
338 type: OS::TripleO::Compute::Net::SoftwareConfig
340 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
341 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
342 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
343 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
346 type: OS::TripleO::SoftwareDeployment
348 config: {get_resource: NetworkConfig}
349 server: {get_resource: NovaCompute}
351 bridge_name: {get_param: NeutronPhysicalBridge}
352 interface_name: {get_param: NeutronPublicInterface}
355 type: OS::Heat::StructuredConfig
357 group: os-apply-config
362 - heat_config_%{::deploy_config_name}
363 - compute_extraconfig
366 - ceph_cluster # provided by CephClusterConfig
368 - all_nodes # provided by allNodesConfig
371 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
374 mapped_data: {get_param: NovaComputeExtraConfig}
376 mapped_data: {get_param: ExtraConfig}
378 raw_data: {get_file: hieradata/common.yaml}
380 raw_data: {get_file: hieradata/ceph.yaml}
382 raw_data: {get_file: hieradata/compute.yaml}
384 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
385 nova::debug: {get_input: debug}
386 nova::rabbit_userid: {get_input: rabbit_username}
387 nova::rabbit_password: {get_input: rabbit_password}
388 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
389 nova::rabbit_port: {get_input: rabbit_client_port}
390 nova_compute_driver: {get_input: nova_compute_driver}
391 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
392 nova_api_host: {get_input: nova_api_host}
393 nova::compute::vncproxy_host: {get_input: nova_public_ip}
394 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
395 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
396 nova_password: {get_input: nova_password}
397 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
398 ceilometer::debug: {get_input: debug}
399 ceilometer::rabbit_userid: {get_input: rabbit_username}
400 ceilometer::rabbit_password: {get_input: rabbit_password}
401 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
402 ceilometer::rabbit_port: {get_input: rabbit_client_port}
403 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
404 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
405 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
406 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
407 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
408 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
409 nova::glance_api_servers: {get_input: glance_api_servers}
410 neutron::debug: {get_input: debug}
411 neutron::rabbit_password: {get_input: rabbit_password}
412 neutron::rabbit_user: {get_input: rabbit_username}
413 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
414 neutron::rabbit_port: {get_input: rabbit_client_port}
415 neutron_flat_networks: {get_input: neutron_flat_networks}
416 neutron_host: {get_input: neutron_host}
417 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
419 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
420 neutron_tunnel_types: {get_input: neutron_tunnel_types}
421 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
422 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
423 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
424 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
425 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
426 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
427 neutron_physical_bridge: {get_input: neutron_physical_bridge}
428 neutron_public_interface: {get_input: neutron_public_interface}
429 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
430 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
431 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
432 neutron_router_distributed: {get_input: neutron_router_distributed}
433 neutron_agent_mode: {get_input: neutron_agent_mode}
434 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
435 neutron::core_plugin: {get_input: neutron_core_plugin}
436 neutron::service_plugins: {get_input: neutron_service_plugins}
437 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
438 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
439 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
440 admin_password: {get_input: admin_password}
441 ntp::servers: {get_input: ntp_servers}
442 tripleo::packages::enable_install: {get_input: enable_package_install}
443 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
445 NovaComputeDeployment:
446 type: OS::TripleO::SoftwareDeployment
447 depends_on: NetworkDeployment
449 config: {get_resource: NovaComputeConfig}
450 server: {get_resource: NovaCompute}
452 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
453 debug: {get_param: Debug}
454 nova_compute_driver: {get_param: NovaComputeDriver}
455 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
456 nova_public_ip: {get_param: NovaPublicIP}
457 nova_api_host: {get_param: NovaApiHost}
458 nova_password: {get_param: NovaPassword}
459 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
460 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
461 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
462 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
463 ceilometer_password: {get_param: CeilometerPassword}
464 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
465 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
466 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
467 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
468 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
469 neutron_flat_networks: {get_param: NeutronFlatNetworks}
470 neutron_host: {get_param: NeutronHost}
471 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
472 neutron_tenant_network_type: {get_param: NeutronNetworkType}
473 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
474 neutron_tunnel_id_ranges:
476 template: "['RANGES']"
481 - {get_param: NeutronTunnelIdRanges}
484 template: "['RANGES']"
489 - {get_param: NeutronVniRanges}
490 neutron_network_vlan_ranges:
492 template: "['RANGES']"
497 - {get_param: NeutronNetworkVLANRanges}
498 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
499 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
500 neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
501 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
502 neutron_public_interface: {get_param: NeutronPublicInterface}
503 neutron_password: {get_param: NeutronPassword}
504 neutron_agent_mode: {get_param: NeutronAgentMode}
505 neutron_router_distributed: {get_param: NeutronDVR}
506 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
507 neutron_core_plugin: {get_param: NeutronCorePlugin}
508 neutron_service_plugins:
510 template: "['PLUGINS']"
515 - {get_param: NeutronServicePlugins}
516 neutron_type_drivers:
518 template: "['DRIVERS']"
523 - {get_param: NeutronTypeDrivers}
524 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
525 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
526 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
527 neutron_admin_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]}
528 admin_password: {get_param: AdminPassword}
529 rabbit_username: {get_param: RabbitUserName}
530 rabbit_password: {get_param: RabbitPassword}
531 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
532 rabbit_client_port: {get_param: RabbitClientPort}
533 ntp_servers: {get_param: NtpServer}
534 enable_package_install: {get_param: EnablePackageInstall}
535 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
537 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
538 ComputeExtraConfigPre:
539 depends_on: NovaComputeDeployment
540 type: OS::TripleO::ComputeExtraConfigPre
542 server: {get_resource: NovaCompute}
544 # Hook for site-specific additional pre-deployment config,
545 # applying to all nodes, e.g node registration/unregistration
547 depends_on: ComputeExtraConfigPre
548 type: OS::TripleO::NodeExtraConfig
550 server: {get_resource: NovaCompute}
553 type: OS::TripleO::Tasks::PackageUpdate
556 type: OS::Heat::SoftwareDeployment
558 config: {get_resource: UpdateConfig}
559 server: {get_resource: NovaCompute}
562 get_param: UpdateIdentifier
566 description: IP address of the server in the ctlplane network
567 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
568 internal_api_ip_address:
569 description: IP address of the server in the internal_api network
570 value: {get_attr: [InternalApiPort, ip_address]}
572 description: IP address of the server in the storage network
573 value: {get_attr: [StoragePort, ip_address]}
575 description: IP address of the server in the tenant network
576 value: {get_attr: [TenantPort, ip_address]}
578 description: Hostname of the server
579 value: {get_attr: [NovaCompute, name]}
582 Server's IP address and hostname in the /etc/hosts format
585 template: "IP HOST.localdomain HOST"
587 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
588 HOST: {get_attr: [NovaCompute, name]}
589 nova_server_resource:
590 description: Heat resource handle for the Nova compute server
592 {get_resource: NovaCompute}
594 description: identifier which changes if the node configuration may need re-applying
598 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
599 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
600 - {get_param: UpdateIdentifier}