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
363 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
366 mapped_data: {get_param: NovaComputeExtraConfig}
368 mapped_data: {get_param: ExtraConfig}
370 raw_data: {get_file: hieradata/common.yaml}
372 raw_data: {get_file: hieradata/ceph.yaml}
374 raw_data: {get_file: hieradata/compute.yaml}
376 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
377 nova::debug: {get_input: debug}
378 nova::rabbit_userid: {get_input: rabbit_username}
379 nova::rabbit_password: {get_input: rabbit_password}
380 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
381 nova::rabbit_port: {get_input: rabbit_client_port}
382 nova_compute_driver: {get_input: nova_compute_driver}
383 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
384 nova_api_host: {get_input: nova_api_host}
385 nova::compute::vncproxy_host: {get_input: nova_public_ip}
386 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
387 nova_password: {get_input: nova_password}
388 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
389 ceilometer::debug: {get_input: debug}
390 ceilometer::rabbit_userid: {get_input: rabbit_username}
391 ceilometer::rabbit_password: {get_input: rabbit_password}
392 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
393 ceilometer::rabbit_port: {get_input: rabbit_client_port}
394 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
395 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
396 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
397 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
398 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
399 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
400 nova::glance_api_servers: {get_input: glance_api_servers}
401 neutron::debug: {get_input: debug}
402 neutron::rabbit_password: {get_input: rabbit_password}
403 neutron::rabbit_user: {get_input: rabbit_user}
404 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
405 neutron::rabbit_port: {get_input: rabbit_client_port}
406 neutron_flat_networks: {get_input: neutron_flat_networks}
407 neutron_host: {get_input: neutron_host}
408 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
410 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
411 neutron_tunnel_types: {get_input: neutron_tunnel_types}
412 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
413 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
414 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
415 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
416 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
417 neutron_physical_bridge: {get_input: neutron_physical_bridge}
418 neutron_public_interface: {get_input: neutron_public_interface}
419 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
420 nova::network::neutron::neutron_url: {get_input: neutron_url}
421 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
422 neutron_router_distributed: {get_input: neutron_router_distributed}
423 neutron_agent_mode: {get_input: neutron_agent_mode}
424 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
425 neutron::core_plugin: {get_input: neutron_core_plugin}
426 neutron::service_plugins: {get_input: neutron_service_plugins}
427 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
428 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
429 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
430 admin_password: {get_input: admin_password}
431 ntp::servers: {get_input: ntp_servers}
432 tripleo::packages::enable_install: {get_input: enable_package_install}
433 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
435 NovaComputeDeployment:
436 type: OS::TripleO::SoftwareDeployment
437 depends_on: NetworkDeployment
439 config: {get_resource: NovaComputeConfig}
440 server: {get_resource: NovaCompute}
442 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
443 debug: {get_param: Debug}
444 nova_compute_driver: {get_param: NovaComputeDriver}
445 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
446 nova_public_ip: {get_param: NovaPublicIP}
447 nova_api_host: {get_param: NovaApiHost}
448 nova_password: {get_param: NovaPassword}
449 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
450 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
451 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
452 ceilometer_password: {get_param: CeilometerPassword}
453 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
454 ceilometer_agent_auth_url:
458 - {get_param: KeystonePublicApiVirtualIP}
460 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
461 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
465 - - {get_param: GlanceProtocol}
467 - {get_param: GlanceHost}
469 - {get_param: GlancePort}
470 neutron_flat_networks: {get_param: NeutronFlatNetworks}
471 neutron_host: {get_param: NeutronHost}
472 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
473 neutron_tenant_network_type: {get_param: NeutronNetworkType}
474 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
475 neutron_tunnel_id_ranges:
477 template: "['RANGES']"
482 - {get_param: NeutronTunnelIdRanges}
485 template: "['RANGES']"
490 - {get_param: NeutronVniRanges}
491 neutron_network_vlan_ranges:
493 template: "['RANGES']"
498 - {get_param: NeutronNetworkVLANRanges}
499 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
500 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
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}
530 - {get_param: NeutronHost}
532 neutron_admin_auth_url:
536 - {get_param: KeystoneAdminApiVirtualIP}
538 admin_password: {get_param: AdminPassword}
539 rabbit_username: {get_param: RabbitUserName}
540 rabbit_password: {get_param: RabbitPassword}
541 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
542 rabbit_client_port: {get_param: RabbitClientPort}
545 template: '["server"]'
547 server: {get_param: NtpServer}
548 enable_package_install: {get_param: EnablePackageInstall}
549 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
551 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
552 ComputeExtraConfigPre:
553 depends_on: NovaComputeDeployment
554 type: OS::TripleO::ComputeExtraConfigPre
556 server: {get_resource: NovaCompute}
558 # Hook for site-specific additional pre-deployment config,
559 # applying to all nodes, e.g node registration/unregistration
561 depends_on: ComputeExtraConfigPre
562 type: OS::TripleO::NodeExtraConfig
564 server: {get_resource: NovaCompute}
567 type: OS::TripleO::Tasks::PackageUpdate
570 type: OS::Heat::SoftwareDeployment
572 config: {get_resource: UpdateConfig}
573 server: {get_resource: NovaCompute}
576 get_param: UpdateIdentifier
580 description: IP address of the server in the ctlplane network
581 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
582 internal_api_ip_address:
583 description: IP address of the server in the internal_api network
584 value: {get_attr: [InternalApiPort, ip_address]}
586 description: IP address of the server in the storage network
587 value: {get_attr: [StoragePort, ip_address]}
589 description: IP address of the server in the tenant network
590 value: {get_attr: [TenantPort, ip_address]}
592 description: Hostname of the server
593 value: {get_attr: [NovaCompute, name]}
596 Server's IP address and hostname in the /etc/hosts format
599 template: "IP HOST.localdomain HOST"
601 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
602 HOST: {get_attr: [NovaCompute, name]}
603 nova_server_resource:
604 description: Heat resource handle for the Nova compute server
606 {get_resource: NovaCompute}
608 description: identifier which changes if the node configuration may need re-applying
612 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
613 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
614 - {get_param: UpdateIdentifier}