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
34 description: Set to True to enable debugging on all services.
39 Additional hiera configuration to inject into the cluster. Note
40 that NovaComputeExtraConfig takes precedence over ExtraConfig.
43 description: Flavor for the nova compute node
46 - custom_constraint: nova.flavor
49 default: '' # Has to be here because of the ignored empty value bug
52 description: Glance port.
56 description: Protocol to use when connecting to glance, set to https for SSL.
60 default: overcloud-compute
62 - custom_constraint: glance.image
64 default: 'REBUILD_PRESERVE_EPHEMERAL'
65 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
68 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
72 - custom_constraint: nova.keypair
73 KeystoneAdminApiVirtualIP:
76 KeystonePublicApiVirtualIP:
79 NeutronBridgeMappings:
81 The OVS logical->physical bridge mappings to use. See the Neutron
82 documentation for details. Defaults to mapping br-ex - the external
83 bridge on hosts - to a physical name 'datacentre' which can be used
84 to create provider networks (and we use this for the default floating
85 network) - if changing this either use different post-install network
86 scripts or be sure to keep 'datacentre' as a mapping network name.
88 default: "datacentre:br-ex"
89 NeutronEnableTunnelling:
96 If set, flat networks to configure in neutron plugins.
99 default: '' # Has to be here because of the ignored empty value bug
102 description: The tenant network type for Neutron, either gre or vxlan.
104 NeutronNetworkVLANRanges:
105 default: 'datacentre'
107 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
108 Neutron documentation for permitted values. Defaults to permitting any
109 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
110 type: comma_delimited_list
113 description: The password for the neutron service account, used by neutron agents.
116 NeutronPhysicalBridge:
118 description: An OVS bridge to create for accessing external networks.
120 NeutronPublicInterface:
122 description: A port to add to the NeutronPhysicalBridge.
127 The tunnel types for the Neutron tenant network. To specify multiple
128 values, use a comma separated string, like so: 'gre,vxlan'
130 NeutronTunnelIdRanges:
132 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
133 of GRE tunnel IDs that are available for tenant network allocation
134 default: ["1:1000", ]
135 type: comma_delimited_list
138 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
139 of VXLAN VNI IDs that are available for tenant network allocation
140 default: ["1:1000", ]
141 type: comma_delimited_list
142 NeutronPublicInterfaceRawDevice:
148 NeutronMetadataProxySharedSecret:
150 description: Shared secret to prevent spoofing
155 The core plugin for Neutron. The value should be the entrypoint to be loaded
156 from neutron.core_plugins namespace.
158 NeutronServicePlugins:
161 Comma-separated list of service plugin entrypoints to be loaded from the
162 neutron.service_plugins namespace.
163 type: comma_delimited_list
165 default: "vxlan,vlan,flat,gre"
167 Comma-separated list of network type driver entrypoints to be loaded.
168 type: comma_delimited_list
169 NeutronMechanismDrivers:
170 default: 'openvswitch'
172 The mechanism drivers for the Neutron tenant network. To specify multiple
173 values, use a comma separated string, like so: 'openvswitch,l2_population'
175 # Not relevant for Computes, should be removed
176 NeutronAllowL3AgentFailover:
178 description: Allow automatic l3-agent failover
180 # Not relevant for Computes, should be removed
183 description: Whether to enable l3-agent HA
187 description: Agent mode for the neutron-l3-agent on the controller hosts
191 default: '' # Has to be here because of the ignored empty value bug
194 default: libvirt.LibvirtDriver
195 NovaComputeExtraConfig:
198 NovaCompute specific configuration to inject into the cluster. Same
199 structure as ExtraConfig.
201 NovaComputeLibvirtType:
204 NovaEnableRbdBackend:
206 description: Whether to enable or not the Rbd backend for Nova
210 description: The password for the nova service account, used by nova-api.
215 default: '' # Has to be here because of the ignored empty value bug
221 default: '' # Has to be here because of the ignored empty value bug
224 description: The password for RabbitMQ
229 description: The username for RabbitMQ
234 Rabbit client subscriber parameter to specify
235 an SSL connection to the RabbitMQ host.
239 description: Set rabbit subscriber port, change this if using SSL
241 SnmpdReadonlyUserName:
242 default: ro_snmp_user
243 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
245 SnmpdReadonlyUserPassword:
247 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
250 EnablePackageInstall:
252 description: Set to true to enable package installation via Puppet
256 description: Mapping of service_name -> network name. Typically set
257 via parameter_defaults in the resource registry.
263 Setting to a previously unused value during stack-update will trigger
264 package update on all nodes
267 default: '' # Defaults to Heat created hostname
272 type: OS::Nova::Server
277 get_param: ImageUpdatePolicy
278 flavor: {get_param: Flavor}
279 key_name: {get_param: KeyName}
282 user_data_format: SOFTWARE_CONFIG
283 user_data: {get_resource: UserData}
284 name: {get_param: Hostname}
286 # Combine the NodeAdminUserData and NodeUserData mime archives
288 type: OS::Heat::MultipartMime
291 - config: {get_resource: NodeAdminUserData}
293 - config: {get_resource: NodeUserData}
296 # Creates the "heat-admin" user if configured via the environment
297 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
299 type: OS::TripleO::NodeAdminUserData
301 # For optional operator additional userdata
302 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
304 type: OS::TripleO::NodeUserData
307 type: OS::TripleO::Compute::Ports::InternalApiPort
309 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
312 type: OS::TripleO::Compute::Ports::StoragePort
314 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
317 type: OS::TripleO::Compute::Ports::TenantPort
319 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
322 type: OS::TripleO::Network::Ports::NetIpMap
324 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
325 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
326 StorageIp: {get_attr: [StoragePort, ip_address]}
327 TenantIp: {get_attr: [TenantPort, ip_address]}
330 type: OS::TripleO::Compute::Net::SoftwareConfig
332 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
333 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
334 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
335 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
338 type: OS::TripleO::SoftwareDeployment
340 config: {get_resource: NetworkConfig}
341 server: {get_resource: NovaCompute}
343 bridge_name: {get_param: NeutronPhysicalBridge}
344 interface_name: {get_param: NeutronPublicInterface}
347 type: OS::Heat::StructuredConfig
349 group: os-apply-config
354 - heat_config_%{::deploy_config_name}
355 - compute_extraconfig
358 - ceph_cluster # provided by CephClusterConfig
360 - all_nodes # provided by allNodesConfig
365 mapped_data: {get_param: NovaComputeExtraConfig}
367 mapped_data: {get_param: ExtraConfig}
369 raw_data: {get_file: hieradata/common.yaml}
371 raw_data: {get_file: hieradata/ceph.yaml}
373 raw_data: {get_file: hieradata/compute.yaml}
375 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
376 nova::debug: {get_input: debug}
377 nova::rabbit_userid: {get_input: rabbit_username}
378 nova::rabbit_password: {get_input: rabbit_password}
379 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
380 nova::rabbit_port: {get_input: rabbit_client_port}
381 nova_compute_driver: {get_input: nova_compute_driver}
382 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
383 nova_api_host: {get_input: nova_api_host}
384 nova::compute::vncproxy_host: {get_input: nova_public_ip}
385 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
386 nova_password: {get_input: nova_password}
387 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
388 ceilometer::debug: {get_input: debug}
389 ceilometer::rabbit_userid: {get_input: rabbit_username}
390 ceilometer::rabbit_password: {get_input: rabbit_password}
391 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
392 ceilometer::rabbit_port: {get_input: rabbit_client_port}
393 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
394 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
395 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
396 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
397 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
398 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
399 nova::glance_api_servers: {get_input: glance_api_servers}
400 neutron::debug: {get_input: debug}
401 neutron::rabbit_password: {get_input: rabbit_password}
402 neutron::rabbit_user: {get_input: rabbit_user}
403 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
404 neutron::rabbit_port: {get_input: rabbit_client_port}
405 neutron_flat_networks: {get_input: neutron_flat_networks}
406 neutron_host: {get_input: neutron_host}
407 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
409 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
410 neutron_tunnel_types: {get_input: neutron_tunnel_types}
411 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
412 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
413 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
414 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
415 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
416 neutron_physical_bridge: {get_input: neutron_physical_bridge}
417 neutron_public_interface: {get_input: neutron_public_interface}
418 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
419 nova::network::neutron::neutron_url: {get_input: neutron_url}
420 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
421 neutron_router_distributed: {get_input: neutron_router_distributed}
422 neutron_agent_mode: {get_input: neutron_agent_mode}
423 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
424 neutron::core_plugin: {get_input: neutron_core_plugin}
425 neutron::service_plugins: {get_input: neutron_service_plugins}
426 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
427 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
428 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
429 admin_password: {get_input: admin_password}
430 ntp::servers: {get_input: ntp_servers}
431 tripleo::packages::enable_install: {get_input: enable_package_install}
433 NovaComputeDeployment:
434 type: OS::TripleO::SoftwareDeployment
435 depends_on: NetworkDeployment
437 config: {get_resource: NovaComputeConfig}
438 server: {get_resource: NovaCompute}
440 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
441 debug: {get_param: Debug}
442 nova_compute_driver: {get_param: NovaComputeDriver}
443 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
444 nova_public_ip: {get_param: NovaPublicIP}
445 nova_api_host: {get_param: NovaApiHost}
446 nova_password: {get_param: NovaPassword}
447 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
448 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
449 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
450 ceilometer_password: {get_param: CeilometerPassword}
451 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
452 ceilometer_agent_auth_url:
456 - {get_param: KeystonePublicApiVirtualIP}
458 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
459 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
463 - - {get_param: GlanceProtocol}
465 - {get_param: GlanceHost}
467 - {get_param: GlancePort}
468 neutron_flat_networks: {get_param: NeutronFlatNetworks}
469 neutron_host: {get_param: NeutronHost}
470 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
471 neutron_tenant_network_type: {get_param: NeutronNetworkType}
472 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
473 neutron_tunnel_id_ranges:
475 template: "['RANGES']"
480 - {get_param: NeutronTunnelIdRanges}
483 template: "['RANGES']"
488 - {get_param: NeutronVniRanges}
489 neutron_network_vlan_ranges:
491 template: "['RANGES']"
496 - {get_param: NeutronNetworkVLANRanges}
497 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
498 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
499 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
500 neutron_public_interface: {get_param: NeutronPublicInterface}
501 neutron_password: {get_param: NeutronPassword}
502 neutron_agent_mode: {get_param: NeutronAgentMode}
503 neutron_router_distributed: {get_param: NeutronDVR}
504 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
505 neutron_core_plugin: {get_param: NeutronCorePlugin}
506 neutron_service_plugins:
508 template: "['PLUGINS']"
513 - {get_param: NeutronServicePlugins}
514 neutron_type_drivers:
516 template: "['DRIVERS']"
521 - {get_param: NeutronTypeDrivers}
522 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
523 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
528 - {get_param: NeutronHost}
530 neutron_admin_auth_url:
534 - {get_param: KeystoneAdminApiVirtualIP}
536 admin_password: {get_param: AdminPassword}
537 rabbit_username: {get_param: RabbitUserName}
538 rabbit_password: {get_param: RabbitPassword}
539 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
540 rabbit_client_port: {get_param: RabbitClientPort}
543 template: '["server"]'
545 server: {get_param: NtpServer}
546 enable_package_install: {get_param: EnablePackageInstall}
548 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
549 ComputeExtraConfigPre:
550 depends_on: NovaComputeDeployment
551 type: OS::TripleO::ComputeExtraConfigPre
553 server: {get_resource: NovaCompute}
556 type: OS::TripleO::Tasks::PackageUpdate
559 type: OS::Heat::SoftwareDeployment
561 config: {get_resource: UpdateConfig}
562 server: {get_resource: NovaCompute}
565 get_param: UpdateIdentifier
569 description: IP address of the server in the ctlplane network
570 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
571 internal_api_ip_address:
572 description: IP address of the server in the internal_api network
573 value: {get_attr: [InternalApiPort, ip_address]}
575 description: IP address of the server in the storage network
576 value: {get_attr: [StoragePort, ip_address]}
578 description: IP address of the server in the tenant network
579 value: {get_attr: [TenantPort, ip_address]}
581 description: Hostname of the server
582 value: {get_attr: [NovaCompute, name]}
585 Server's IP address and hostname in the /etc/hosts format
588 template: "IP HOST.localdomain HOST"
590 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
591 HOST: {get_attr: [NovaCompute, name]}
592 nova_server_resource:
593 description: Heat resource handle for the Nova compute server
595 {get_resource: NovaCompute}
597 description: identifier which changes if the node configuration may need re-applying
601 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
602 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}