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 description: Glance port.
60 description: Protocol to use when connecting to glance, set to https for SSL.
64 default: overcloud-compute
66 - custom_constraint: glance.image
68 default: 'REBUILD_PRESERVE_EPHEMERAL'
69 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
72 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
76 - custom_constraint: nova.keypair
77 KeystoneAdminApiVirtualIP:
80 KeystonePublicApiVirtualIP:
83 NeutronBridgeMappings:
85 The OVS logical->physical bridge mappings to use. See the Neutron
86 documentation for details. Defaults to mapping br-ex - the external
87 bridge on hosts - to a physical name 'datacentre' which can be used
88 to create provider networks (and we use this for the default floating
89 network) - if changing this either use different post-install network
90 scripts or be sure to keep 'datacentre' as a mapping network name.
92 default: "datacentre:br-ex"
93 NeutronEnableTunnelling:
100 If set, flat networks to configure in neutron plugins.
103 default: '' # Has to be here because of the ignored empty value bug
106 description: The tenant network type for Neutron, either gre or vxlan.
108 NeutronNetworkVLANRanges:
109 default: 'datacentre'
111 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
112 Neutron documentation for permitted values. Defaults to permitting any
113 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
114 type: comma_delimited_list
117 description: The password for the neutron service account, used by neutron agents.
120 NeutronPhysicalBridge:
122 description: An OVS bridge to create for accessing external networks.
124 NeutronPublicInterface:
126 description: A port to add to the NeutronPhysicalBridge.
131 The tunnel types for the Neutron tenant network. To specify multiple
132 values, use a comma separated string, like so: 'gre,vxlan'
134 NeutronTunnelIdRanges:
136 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
137 of GRE tunnel IDs that are available for tenant network allocation
138 default: ["1:1000", ]
139 type: comma_delimited_list
142 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
143 of VXLAN VNI IDs that are available for tenant network allocation
144 default: ["1:1000", ]
145 type: comma_delimited_list
146 NeutronPublicInterfaceRawDevice:
152 NeutronMetadataProxySharedSecret:
154 description: Shared secret to prevent spoofing
160 The core plugin for Neutron. The value should be the entrypoint to be loaded
161 from neutron.core_plugins namespace.
163 NeutronServicePlugins:
166 Comma-separated list of service plugin entrypoints to be loaded from the
167 neutron.service_plugins namespace.
168 type: comma_delimited_list
170 default: "vxlan,vlan,flat,gre"
172 Comma-separated list of network type driver entrypoints to be loaded.
173 type: comma_delimited_list
174 NeutronMechanismDrivers:
175 default: 'openvswitch'
177 The mechanism drivers for the Neutron tenant network. To specify multiple
178 values, use a comma separated string, like so: 'openvswitch,l2_population'
180 # Not relevant for Computes, should be removed
181 NeutronAllowL3AgentFailover:
183 description: Allow automatic l3-agent failover
185 # Not relevant for Computes, should be removed
188 description: Whether to enable l3-agent HA
192 description: Agent mode for the neutron-l3-agent on the controller hosts
196 default: '' # Has to be here because of the ignored empty value bug
199 default: libvirt.LibvirtDriver
200 NovaComputeExtraConfig:
203 NovaCompute specific configuration to inject into the cluster. Same
204 structure as ExtraConfig.
206 NovaComputeLibvirtType:
209 NovaEnableRbdBackend:
211 description: Whether to enable or not the Rbd backend for Nova
215 description: The password for the nova service account, used by nova-api.
220 default: '' # Has to be here because of the ignored empty value bug
223 description: Comma-separated list of ntp servers
224 type: comma_delimited_list
227 default: '' # Has to be here because of the ignored empty value bug
230 description: The password for RabbitMQ
235 description: The username for RabbitMQ
240 Rabbit client subscriber parameter to specify
241 an SSL connection to the RabbitMQ host.
245 description: Set rabbit subscriber port, change this if using SSL
247 SnmpdReadonlyUserName:
248 default: ro_snmp_user
249 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
251 SnmpdReadonlyUserPassword:
253 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
256 EnablePackageInstall:
258 description: Set to true to enable package installation via Puppet
262 description: Mapping of service_name -> network name. Typically set
263 via parameter_defaults in the resource registry.
269 Setting to a previously unused value during stack-update will trigger
270 package update on all nodes
273 default: '' # Defaults to Heat created hostname
278 type: OS::Nova::Server
283 get_param: ImageUpdatePolicy
284 flavor: {get_param: Flavor}
285 key_name: {get_param: KeyName}
288 user_data_format: SOFTWARE_CONFIG
289 user_data: {get_resource: UserData}
290 name: {get_param: Hostname}
292 # Combine the NodeAdminUserData and NodeUserData mime archives
294 type: OS::Heat::MultipartMime
297 - config: {get_resource: NodeAdminUserData}
299 - config: {get_resource: NodeUserData}
302 # Creates the "heat-admin" user if configured via the environment
303 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
305 type: OS::TripleO::NodeAdminUserData
307 # For optional operator additional userdata
308 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
310 type: OS::TripleO::NodeUserData
313 type: OS::TripleO::Compute::Ports::InternalApiPort
315 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
318 type: OS::TripleO::Compute::Ports::StoragePort
320 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
323 type: OS::TripleO::Compute::Ports::TenantPort
325 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
328 type: OS::TripleO::Network::Ports::NetIpMap
330 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
331 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
332 StorageIp: {get_attr: [StoragePort, ip_address]}
333 TenantIp: {get_attr: [TenantPort, ip_address]}
336 type: OS::TripleO::Compute::Net::SoftwareConfig
338 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
339 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
340 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
341 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
344 type: OS::TripleO::SoftwareDeployment
346 config: {get_resource: NetworkConfig}
347 server: {get_resource: NovaCompute}
349 bridge_name: {get_param: NeutronPhysicalBridge}
350 interface_name: {get_param: NeutronPublicInterface}
353 type: OS::Heat::StructuredConfig
355 group: os-apply-config
360 - heat_config_%{::deploy_config_name}
361 - compute_extraconfig
364 - ceph_cluster # provided by CephClusterConfig
366 - all_nodes # provided by allNodesConfig
369 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
372 mapped_data: {get_param: NovaComputeExtraConfig}
374 mapped_data: {get_param: ExtraConfig}
376 raw_data: {get_file: hieradata/common.yaml}
378 raw_data: {get_file: hieradata/ceph.yaml}
380 raw_data: {get_file: hieradata/compute.yaml}
382 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
383 nova::debug: {get_input: debug}
384 nova::rabbit_userid: {get_input: rabbit_username}
385 nova::rabbit_password: {get_input: rabbit_password}
386 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
387 nova::rabbit_port: {get_input: rabbit_client_port}
388 nova_compute_driver: {get_input: nova_compute_driver}
389 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
390 nova_api_host: {get_input: nova_api_host}
391 nova::compute::vncproxy_host: {get_input: nova_public_ip}
392 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
393 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
394 nova_password: {get_input: nova_password}
395 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
396 ceilometer::debug: {get_input: debug}
397 ceilometer::rabbit_userid: {get_input: rabbit_username}
398 ceilometer::rabbit_password: {get_input: rabbit_password}
399 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
400 ceilometer::rabbit_port: {get_input: rabbit_client_port}
401 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
402 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
403 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
404 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
405 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
406 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
407 nova::glance_api_servers: {get_input: glance_api_servers}
408 neutron::debug: {get_input: debug}
409 neutron::rabbit_password: {get_input: rabbit_password}
410 neutron::rabbit_user: {get_input: rabbit_user}
411 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
412 neutron::rabbit_port: {get_input: rabbit_client_port}
413 neutron_flat_networks: {get_input: neutron_flat_networks}
414 neutron_host: {get_input: neutron_host}
415 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
417 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
418 neutron_tunnel_types: {get_input: neutron_tunnel_types}
419 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
420 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
421 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
422 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
423 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
424 neutron_physical_bridge: {get_input: neutron_physical_bridge}
425 neutron_public_interface: {get_input: neutron_public_interface}
426 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
427 nova::network::neutron::neutron_url: {get_input: neutron_url}
428 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
429 neutron_router_distributed: {get_input: neutron_router_distributed}
430 neutron_agent_mode: {get_input: neutron_agent_mode}
431 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
432 neutron::core_plugin: {get_input: neutron_core_plugin}
433 neutron::service_plugins: {get_input: neutron_service_plugins}
434 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
435 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
436 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
437 admin_password: {get_input: admin_password}
438 ntp::servers: {get_input: ntp_servers}
439 tripleo::packages::enable_install: {get_input: enable_package_install}
440 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
442 NovaComputeDeployment:
443 type: OS::TripleO::SoftwareDeployment
444 depends_on: NetworkDeployment
446 config: {get_resource: NovaComputeConfig}
447 server: {get_resource: NovaCompute}
449 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
450 debug: {get_param: Debug}
451 nova_compute_driver: {get_param: NovaComputeDriver}
452 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
453 nova_public_ip: {get_param: NovaPublicIP}
454 nova_api_host: {get_param: NovaApiHost}
455 nova_password: {get_param: NovaPassword}
456 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
457 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
458 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
459 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
460 ceilometer_password: {get_param: CeilometerPassword}
461 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
462 ceilometer_agent_auth_url:
466 - {get_param: KeystonePublicApiVirtualIP}
468 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
469 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
473 - - {get_param: GlanceProtocol}
475 - {get_param: GlanceHost}
477 - {get_param: GlancePort}
478 neutron_flat_networks: {get_param: NeutronFlatNetworks}
479 neutron_host: {get_param: NeutronHost}
480 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
481 neutron_tenant_network_type: {get_param: NeutronNetworkType}
482 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
483 neutron_tunnel_id_ranges:
485 template: "['RANGES']"
490 - {get_param: NeutronTunnelIdRanges}
493 template: "['RANGES']"
498 - {get_param: NeutronVniRanges}
499 neutron_network_vlan_ranges:
501 template: "['RANGES']"
506 - {get_param: NeutronNetworkVLANRanges}
507 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
508 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
509 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
510 neutron_public_interface: {get_param: NeutronPublicInterface}
511 neutron_password: {get_param: NeutronPassword}
512 neutron_agent_mode: {get_param: NeutronAgentMode}
513 neutron_router_distributed: {get_param: NeutronDVR}
514 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
515 neutron_core_plugin: {get_param: NeutronCorePlugin}
516 neutron_service_plugins:
518 template: "['PLUGINS']"
523 - {get_param: NeutronServicePlugins}
524 neutron_type_drivers:
526 template: "['DRIVERS']"
531 - {get_param: NeutronTypeDrivers}
532 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
533 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
538 - {get_param: NeutronHost}
540 neutron_admin_auth_url:
544 - {get_param: KeystoneAdminApiVirtualIP}
546 admin_password: {get_param: AdminPassword}
547 rabbit_username: {get_param: RabbitUserName}
548 rabbit_password: {get_param: RabbitPassword}
549 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
550 rabbit_client_port: {get_param: RabbitClientPort}
551 ntp_servers: {get_param: NtpServer}
552 enable_package_install: {get_param: EnablePackageInstall}
553 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
555 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
556 ComputeExtraConfigPre:
557 depends_on: NovaComputeDeployment
558 type: OS::TripleO::ComputeExtraConfigPre
560 server: {get_resource: NovaCompute}
562 # Hook for site-specific additional pre-deployment config,
563 # applying to all nodes, e.g node registration/unregistration
565 depends_on: ComputeExtraConfigPre
566 type: OS::TripleO::NodeExtraConfig
568 server: {get_resource: NovaCompute}
571 type: OS::TripleO::Tasks::PackageUpdate
574 type: OS::Heat::SoftwareDeployment
576 config: {get_resource: UpdateConfig}
577 server: {get_resource: NovaCompute}
580 get_param: UpdateIdentifier
584 description: IP address of the server in the ctlplane network
585 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
586 internal_api_ip_address:
587 description: IP address of the server in the internal_api network
588 value: {get_attr: [InternalApiPort, ip_address]}
590 description: IP address of the server in the storage network
591 value: {get_attr: [StoragePort, ip_address]}
593 description: IP address of the server in the tenant network
594 value: {get_attr: [TenantPort, ip_address]}
596 description: Hostname of the server
597 value: {get_attr: [NovaCompute, name]}
600 Server's IP address and hostname in the /etc/hosts format
603 template: "IP HOST.localdomain HOST"
605 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
606 HOST: {get_attr: [NovaCompute, name]}
607 nova_server_resource:
608 description: Heat resource handle for the Nova compute server
610 {get_resource: NovaCompute}
612 description: identifier which changes if the node configuration may need re-applying
616 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
617 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
618 - {get_param: UpdateIdentifier}