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
159 The core plugin for Neutron. The value should be the entrypoint to be loaded
160 from neutron.core_plugins namespace.
162 NeutronServicePlugins:
165 Comma-separated list of service plugin entrypoints to be loaded from the
166 neutron.service_plugins namespace.
167 type: comma_delimited_list
169 default: "vxlan,vlan,flat,gre"
171 Comma-separated list of network type driver entrypoints to be loaded.
172 type: comma_delimited_list
173 NeutronMechanismDrivers:
174 default: 'openvswitch'
176 The mechanism drivers for the Neutron tenant network. To specify multiple
177 values, use a comma separated string, like so: 'openvswitch,l2_population'
179 # Not relevant for Computes, should be removed
180 NeutronAllowL3AgentFailover:
182 description: Allow automatic l3-agent failover
184 # Not relevant for Computes, should be removed
187 description: Whether to enable l3-agent HA
191 description: Agent mode for the neutron-l3-agent on the controller hosts
195 default: '' # Has to be here because of the ignored empty value bug
198 default: libvirt.LibvirtDriver
199 NovaComputeExtraConfig:
202 NovaCompute specific configuration to inject into the cluster. Same
203 structure as ExtraConfig.
205 NovaComputeLibvirtType:
208 NovaEnableRbdBackend:
210 description: Whether to enable or not the Rbd backend for Nova
214 description: The password for the nova service account, used by nova-api.
219 default: '' # Has to be here because of the ignored empty value bug
225 default: '' # Has to be here because of the ignored empty value bug
228 description: The password for RabbitMQ
233 description: The username for RabbitMQ
238 Rabbit client subscriber parameter to specify
239 an SSL connection to the RabbitMQ host.
243 description: Set rabbit subscriber port, change this if using SSL
245 SnmpdReadonlyUserName:
246 default: ro_snmp_user
247 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
249 SnmpdReadonlyUserPassword:
251 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
254 EnablePackageInstall:
256 description: Set to true to enable package installation via Puppet
260 description: Mapping of service_name -> network name. Typically set
261 via parameter_defaults in the resource registry.
267 Setting to a previously unused value during stack-update will trigger
268 package update on all nodes
271 default: '' # Defaults to Heat created hostname
276 type: OS::Nova::Server
281 get_param: ImageUpdatePolicy
282 flavor: {get_param: Flavor}
283 key_name: {get_param: KeyName}
286 user_data_format: SOFTWARE_CONFIG
287 user_data: {get_resource: UserData}
288 name: {get_param: Hostname}
290 # Combine the NodeAdminUserData and NodeUserData mime archives
292 type: OS::Heat::MultipartMime
295 - config: {get_resource: NodeAdminUserData}
297 - config: {get_resource: NodeUserData}
300 # Creates the "heat-admin" user if configured via the environment
301 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
303 type: OS::TripleO::NodeAdminUserData
305 # For optional operator additional userdata
306 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
308 type: OS::TripleO::NodeUserData
311 type: OS::TripleO::Compute::Ports::InternalApiPort
313 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
316 type: OS::TripleO::Compute::Ports::StoragePort
318 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
321 type: OS::TripleO::Compute::Ports::TenantPort
323 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
326 type: OS::TripleO::Network::Ports::NetIpMap
328 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
329 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
330 StorageIp: {get_attr: [StoragePort, ip_address]}
331 TenantIp: {get_attr: [TenantPort, ip_address]}
334 type: OS::TripleO::Compute::Net::SoftwareConfig
336 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
337 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
338 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
339 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
342 type: OS::TripleO::SoftwareDeployment
344 config: {get_resource: NetworkConfig}
345 server: {get_resource: NovaCompute}
347 bridge_name: {get_param: NeutronPhysicalBridge}
348 interface_name: {get_param: NeutronPublicInterface}
351 type: OS::Heat::StructuredConfig
353 group: os-apply-config
358 - heat_config_%{::deploy_config_name}
359 - compute_extraconfig
362 - ceph_cluster # provided by CephClusterConfig
364 - all_nodes # provided by allNodesConfig
367 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
370 mapped_data: {get_param: NovaComputeExtraConfig}
372 mapped_data: {get_param: ExtraConfig}
374 raw_data: {get_file: hieradata/common.yaml}
376 raw_data: {get_file: hieradata/ceph.yaml}
378 raw_data: {get_file: hieradata/compute.yaml}
380 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
381 nova::debug: {get_input: debug}
382 nova::rabbit_userid: {get_input: rabbit_username}
383 nova::rabbit_password: {get_input: rabbit_password}
384 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
385 nova::rabbit_port: {get_input: rabbit_client_port}
386 nova_compute_driver: {get_input: nova_compute_driver}
387 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
388 nova_api_host: {get_input: nova_api_host}
389 nova::compute::vncproxy_host: {get_input: nova_public_ip}
390 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
391 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
392 nova_password: {get_input: nova_password}
393 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
394 ceilometer::debug: {get_input: debug}
395 ceilometer::rabbit_userid: {get_input: rabbit_username}
396 ceilometer::rabbit_password: {get_input: rabbit_password}
397 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
398 ceilometer::rabbit_port: {get_input: rabbit_client_port}
399 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
400 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
401 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
402 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
403 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
404 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
405 nova::glance_api_servers: {get_input: glance_api_servers}
406 neutron::debug: {get_input: debug}
407 neutron::rabbit_password: {get_input: rabbit_password}
408 neutron::rabbit_user: {get_input: rabbit_user}
409 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
410 neutron::rabbit_port: {get_input: rabbit_client_port}
411 neutron_flat_networks: {get_input: neutron_flat_networks}
412 neutron_host: {get_input: neutron_host}
413 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
415 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
416 neutron_tunnel_types: {get_input: neutron_tunnel_types}
417 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
418 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
419 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
420 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
421 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
422 neutron_physical_bridge: {get_input: neutron_physical_bridge}
423 neutron_public_interface: {get_input: neutron_public_interface}
424 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
425 nova::network::neutron::neutron_url: {get_input: neutron_url}
426 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
427 neutron_router_distributed: {get_input: neutron_router_distributed}
428 neutron_agent_mode: {get_input: neutron_agent_mode}
429 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
430 neutron::core_plugin: {get_input: neutron_core_plugin}
431 neutron::service_plugins: {get_input: neutron_service_plugins}
432 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
433 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
434 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
435 admin_password: {get_input: admin_password}
436 ntp::servers: {get_input: ntp_servers}
437 tripleo::packages::enable_install: {get_input: enable_package_install}
438 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
440 NovaComputeDeployment:
441 type: OS::TripleO::SoftwareDeployment
442 depends_on: NetworkDeployment
444 config: {get_resource: NovaComputeConfig}
445 server: {get_resource: NovaCompute}
447 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
448 debug: {get_param: Debug}
449 nova_compute_driver: {get_param: NovaComputeDriver}
450 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
451 nova_public_ip: {get_param: NovaPublicIP}
452 nova_api_host: {get_param: NovaApiHost}
453 nova_password: {get_param: NovaPassword}
454 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
455 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
456 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
457 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
458 ceilometer_password: {get_param: CeilometerPassword}
459 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
460 ceilometer_agent_auth_url:
464 - {get_param: KeystonePublicApiVirtualIP}
466 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
467 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
471 - - {get_param: GlanceProtocol}
473 - {get_param: GlanceHost}
475 - {get_param: GlancePort}
476 neutron_flat_networks: {get_param: NeutronFlatNetworks}
477 neutron_host: {get_param: NeutronHost}
478 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
479 neutron_tenant_network_type: {get_param: NeutronNetworkType}
480 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
481 neutron_tunnel_id_ranges:
483 template: "['RANGES']"
488 - {get_param: NeutronTunnelIdRanges}
491 template: "['RANGES']"
496 - {get_param: NeutronVniRanges}
497 neutron_network_vlan_ranges:
499 template: "['RANGES']"
504 - {get_param: NeutronNetworkVLANRanges}
505 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
506 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
507 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
508 neutron_public_interface: {get_param: NeutronPublicInterface}
509 neutron_password: {get_param: NeutronPassword}
510 neutron_agent_mode: {get_param: NeutronAgentMode}
511 neutron_router_distributed: {get_param: NeutronDVR}
512 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
513 neutron_core_plugin: {get_param: NeutronCorePlugin}
514 neutron_service_plugins:
516 template: "['PLUGINS']"
521 - {get_param: NeutronServicePlugins}
522 neutron_type_drivers:
524 template: "['DRIVERS']"
529 - {get_param: NeutronTypeDrivers}
530 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
531 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
536 - {get_param: NeutronHost}
538 neutron_admin_auth_url:
542 - {get_param: KeystoneAdminApiVirtualIP}
544 admin_password: {get_param: AdminPassword}
545 rabbit_username: {get_param: RabbitUserName}
546 rabbit_password: {get_param: RabbitPassword}
547 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
548 rabbit_client_port: {get_param: RabbitClientPort}
551 template: '["server"]'
553 server: {get_param: NtpServer}
554 enable_package_install: {get_param: EnablePackageInstall}
555 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
557 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
558 ComputeExtraConfigPre:
559 depends_on: NovaComputeDeployment
560 type: OS::TripleO::ComputeExtraConfigPre
562 server: {get_resource: NovaCompute}
564 # Hook for site-specific additional pre-deployment config,
565 # applying to all nodes, e.g node registration/unregistration
567 depends_on: ComputeExtraConfigPre
568 type: OS::TripleO::NodeExtraConfig
570 server: {get_resource: NovaCompute}
573 type: OS::TripleO::Tasks::PackageUpdate
576 type: OS::Heat::SoftwareDeployment
578 config: {get_resource: UpdateConfig}
579 server: {get_resource: NovaCompute}
582 get_param: UpdateIdentifier
586 description: IP address of the server in the ctlplane network
587 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
588 internal_api_ip_address:
589 description: IP address of the server in the internal_api network
590 value: {get_attr: [InternalApiPort, ip_address]}
592 description: IP address of the server in the storage network
593 value: {get_attr: [StoragePort, ip_address]}
595 description: IP address of the server in the tenant network
596 value: {get_attr: [TenantPort, ip_address]}
598 description: Hostname of the server
599 value: {get_attr: [NovaCompute, name]}
602 Server's IP address and hostname in the /etc/hosts format
605 template: "IP HOST.localdomain HOST"
607 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
608 HOST: {get_attr: [NovaCompute, name]}
609 nova_server_resource:
610 description: Heat resource handle for the Nova compute server
612 {get_resource: NovaCompute}
614 description: identifier which changes if the node configuration may need re-applying
618 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
619 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
620 - {get_param: UpdateIdentifier}