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
226 default: '' # Has to be here because of the ignored empty value bug
229 description: The password for RabbitMQ
234 description: The username for RabbitMQ
239 Rabbit client subscriber parameter to specify
240 an SSL connection to the RabbitMQ host.
244 description: Set rabbit subscriber port, change this if using SSL
246 SnmpdReadonlyUserName:
247 default: ro_snmp_user
248 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
250 SnmpdReadonlyUserPassword:
252 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
255 EnablePackageInstall:
257 description: Set to true to enable package installation via Puppet
261 description: Mapping of service_name -> network name. Typically set
262 via parameter_defaults in the resource registry.
268 Setting to a previously unused value during stack-update will trigger
269 package update on all nodes
272 default: '' # Defaults to Heat created hostname
277 type: OS::Nova::Server
282 get_param: ImageUpdatePolicy
283 flavor: {get_param: Flavor}
284 key_name: {get_param: KeyName}
287 user_data_format: SOFTWARE_CONFIG
288 user_data: {get_resource: UserData}
289 name: {get_param: Hostname}
291 # Combine the NodeAdminUserData and NodeUserData mime archives
293 type: OS::Heat::MultipartMime
296 - config: {get_resource: NodeAdminUserData}
298 - config: {get_resource: NodeUserData}
301 # Creates the "heat-admin" user if configured via the environment
302 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
304 type: OS::TripleO::NodeAdminUserData
306 # For optional operator additional userdata
307 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
309 type: OS::TripleO::NodeUserData
312 type: OS::TripleO::Compute::Ports::InternalApiPort
314 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
317 type: OS::TripleO::Compute::Ports::StoragePort
319 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
322 type: OS::TripleO::Compute::Ports::TenantPort
324 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
327 type: OS::TripleO::Network::Ports::NetIpMap
329 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
330 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
331 StorageIp: {get_attr: [StoragePort, ip_address]}
332 TenantIp: {get_attr: [TenantPort, ip_address]}
335 type: OS::TripleO::Compute::Net::SoftwareConfig
337 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
338 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
339 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
340 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
343 type: OS::TripleO::SoftwareDeployment
345 config: {get_resource: NetworkConfig}
346 server: {get_resource: NovaCompute}
348 bridge_name: {get_param: NeutronPhysicalBridge}
349 interface_name: {get_param: NeutronPublicInterface}
352 type: OS::Heat::StructuredConfig
354 group: os-apply-config
359 - heat_config_%{::deploy_config_name}
360 - compute_extraconfig
363 - ceph_cluster # provided by CephClusterConfig
365 - all_nodes # provided by allNodesConfig
368 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
371 mapped_data: {get_param: NovaComputeExtraConfig}
373 mapped_data: {get_param: ExtraConfig}
375 raw_data: {get_file: hieradata/common.yaml}
377 raw_data: {get_file: hieradata/ceph.yaml}
379 raw_data: {get_file: hieradata/compute.yaml}
381 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
382 nova::debug: {get_input: debug}
383 nova::rabbit_userid: {get_input: rabbit_username}
384 nova::rabbit_password: {get_input: rabbit_password}
385 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
386 nova::rabbit_port: {get_input: rabbit_client_port}
387 nova_compute_driver: {get_input: nova_compute_driver}
388 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
389 nova_api_host: {get_input: nova_api_host}
390 nova::compute::vncproxy_host: {get_input: nova_public_ip}
391 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
392 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
393 nova_password: {get_input: nova_password}
394 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
395 ceilometer::debug: {get_input: debug}
396 ceilometer::rabbit_userid: {get_input: rabbit_username}
397 ceilometer::rabbit_password: {get_input: rabbit_password}
398 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
399 ceilometer::rabbit_port: {get_input: rabbit_client_port}
400 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
401 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
402 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
403 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
404 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
405 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
406 nova::glance_api_servers: {get_input: glance_api_servers}
407 neutron::debug: {get_input: debug}
408 neutron::rabbit_password: {get_input: rabbit_password}
409 neutron::rabbit_user: {get_input: rabbit_user}
410 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
411 neutron::rabbit_port: {get_input: rabbit_client_port}
412 neutron_flat_networks: {get_input: neutron_flat_networks}
413 neutron_host: {get_input: neutron_host}
414 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
416 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
417 neutron_tunnel_types: {get_input: neutron_tunnel_types}
418 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
419 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
420 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
421 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
422 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
423 neutron_physical_bridge: {get_input: neutron_physical_bridge}
424 neutron_public_interface: {get_input: neutron_public_interface}
425 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
426 nova::network::neutron::neutron_url: {get_input: neutron_url}
427 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
428 neutron_router_distributed: {get_input: neutron_router_distributed}
429 neutron_agent_mode: {get_input: neutron_agent_mode}
430 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
431 neutron::core_plugin: {get_input: neutron_core_plugin}
432 neutron::service_plugins: {get_input: neutron_service_plugins}
433 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
434 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
435 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
436 admin_password: {get_input: admin_password}
437 ntp::servers: {get_input: ntp_servers}
438 tripleo::packages::enable_install: {get_input: enable_package_install}
439 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
441 NovaComputeDeployment:
442 type: OS::TripleO::SoftwareDeployment
443 depends_on: NetworkDeployment
445 config: {get_resource: NovaComputeConfig}
446 server: {get_resource: NovaCompute}
448 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
449 debug: {get_param: Debug}
450 nova_compute_driver: {get_param: NovaComputeDriver}
451 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
452 nova_public_ip: {get_param: NovaPublicIP}
453 nova_api_host: {get_param: NovaApiHost}
454 nova_password: {get_param: NovaPassword}
455 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
456 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
457 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
458 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
459 ceilometer_password: {get_param: CeilometerPassword}
460 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
461 ceilometer_agent_auth_url:
465 - {get_param: KeystonePublicApiVirtualIP}
467 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
468 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
472 - - {get_param: GlanceProtocol}
474 - {get_param: GlanceHost}
476 - {get_param: GlancePort}
477 neutron_flat_networks: {get_param: NeutronFlatNetworks}
478 neutron_host: {get_param: NeutronHost}
479 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
480 neutron_tenant_network_type: {get_param: NeutronNetworkType}
481 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
482 neutron_tunnel_id_ranges:
484 template: "['RANGES']"
489 - {get_param: NeutronTunnelIdRanges}
492 template: "['RANGES']"
497 - {get_param: NeutronVniRanges}
498 neutron_network_vlan_ranges:
500 template: "['RANGES']"
505 - {get_param: NeutronNetworkVLANRanges}
506 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
507 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
508 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
509 neutron_public_interface: {get_param: NeutronPublicInterface}
510 neutron_password: {get_param: NeutronPassword}
511 neutron_agent_mode: {get_param: NeutronAgentMode}
512 neutron_router_distributed: {get_param: NeutronDVR}
513 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
514 neutron_core_plugin: {get_param: NeutronCorePlugin}
515 neutron_service_plugins:
517 template: "['PLUGINS']"
522 - {get_param: NeutronServicePlugins}
523 neutron_type_drivers:
525 template: "['DRIVERS']"
530 - {get_param: NeutronTypeDrivers}
531 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
532 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
537 - {get_param: NeutronHost}
539 neutron_admin_auth_url:
543 - {get_param: KeystoneAdminApiVirtualIP}
545 admin_password: {get_param: AdminPassword}
546 rabbit_username: {get_param: RabbitUserName}
547 rabbit_password: {get_param: RabbitPassword}
548 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
549 rabbit_client_port: {get_param: RabbitClientPort}
552 template: '["server"]'
554 server: {get_param: NtpServer}
555 enable_package_install: {get_param: EnablePackageInstall}
556 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
558 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
559 ComputeExtraConfigPre:
560 depends_on: NovaComputeDeployment
561 type: OS::TripleO::ComputeExtraConfigPre
563 server: {get_resource: NovaCompute}
565 # Hook for site-specific additional pre-deployment config,
566 # applying to all nodes, e.g node registration/unregistration
568 depends_on: ComputeExtraConfigPre
569 type: OS::TripleO::NodeExtraConfig
571 server: {get_resource: NovaCompute}
574 type: OS::TripleO::Tasks::PackageUpdate
577 type: OS::Heat::SoftwareDeployment
579 config: {get_resource: UpdateConfig}
580 server: {get_resource: NovaCompute}
583 get_param: UpdateIdentifier
587 description: IP address of the server in the ctlplane network
588 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
589 internal_api_ip_address:
590 description: IP address of the server in the internal_api network
591 value: {get_attr: [InternalApiPort, ip_address]}
593 description: IP address of the server in the storage network
594 value: {get_attr: [StoragePort, ip_address]}
596 description: IP address of the server in the tenant network
597 value: {get_attr: [TenantPort, ip_address]}
599 description: Hostname of the server
600 value: {get_attr: [NovaCompute, name]}
603 Server's IP address and hostname in the /etc/hosts format
606 template: "IP HOST.localdomain HOST"
608 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
609 HOST: {get_attr: [NovaCompute, name]}
610 nova_server_resource:
611 description: Heat resource handle for the Nova compute server
613 {get_resource: NovaCompute}
615 description: identifier which changes if the node configuration may need re-applying
619 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
620 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
621 - {get_param: UpdateIdentifier}