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
156 The core plugin for Neutron. The value should be the entrypoint to be loaded
157 from neutron.core_plugins namespace.
159 NeutronServicePlugins:
162 Comma-separated list of service plugin entrypoints to be loaded from the
163 neutron.service_plugins namespace.
164 type: comma_delimited_list
166 default: "vxlan,vlan,flat,gre"
168 Comma-separated list of network type driver entrypoints to be loaded.
169 type: comma_delimited_list
170 NeutronMechanismDrivers:
171 default: 'openvswitch'
173 The mechanism drivers for the Neutron tenant network. To specify multiple
174 values, use a comma separated string, like so: 'openvswitch,l2_population'
176 # Not relevant for Computes, should be removed
177 NeutronAllowL3AgentFailover:
179 description: Allow automatic l3-agent failover
181 # Not relevant for Computes, should be removed
184 description: Whether to enable l3-agent HA
188 description: Agent mode for the neutron-l3-agent on the controller hosts
192 default: '' # Has to be here because of the ignored empty value bug
195 default: libvirt.LibvirtDriver
196 NovaComputeExtraConfig:
199 NovaCompute specific configuration to inject into the cluster. Same
200 structure as ExtraConfig.
202 NovaComputeLibvirtType:
205 NovaEnableRbdBackend:
207 description: Whether to enable or not the Rbd backend for Nova
211 description: The password for the nova service account, used by nova-api.
216 default: '' # Has to be here because of the ignored empty value bug
222 default: '' # Has to be here because of the ignored empty value bug
225 description: The password for RabbitMQ
230 description: The username for RabbitMQ
235 Rabbit client subscriber parameter to specify
236 an SSL connection to the RabbitMQ host.
240 description: Set rabbit subscriber port, change this if using SSL
242 SnmpdReadonlyUserName:
243 default: ro_snmp_user
244 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
246 SnmpdReadonlyUserPassword:
248 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
251 EnablePackageInstall:
253 description: Set to true to enable package installation via Puppet
257 description: Mapping of service_name -> network name. Typically set
258 via parameter_defaults in the resource registry.
264 Setting to a previously unused value during stack-update will trigger
265 package update on all nodes
268 default: '' # Defaults to Heat created hostname
273 type: OS::Nova::Server
278 get_param: ImageUpdatePolicy
279 flavor: {get_param: Flavor}
280 key_name: {get_param: KeyName}
283 user_data_format: SOFTWARE_CONFIG
284 user_data: {get_resource: UserData}
285 name: {get_param: Hostname}
287 # Combine the NodeAdminUserData and NodeUserData mime archives
289 type: OS::Heat::MultipartMime
292 - config: {get_resource: NodeAdminUserData}
294 - config: {get_resource: NodeUserData}
297 # Creates the "heat-admin" user if configured via the environment
298 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
300 type: OS::TripleO::NodeAdminUserData
302 # For optional operator additional userdata
303 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
305 type: OS::TripleO::NodeUserData
308 type: OS::TripleO::Compute::Ports::InternalApiPort
310 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
313 type: OS::TripleO::Compute::Ports::StoragePort
315 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
318 type: OS::TripleO::Compute::Ports::TenantPort
320 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
323 type: OS::TripleO::Network::Ports::NetIpMap
325 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
326 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
327 StorageIp: {get_attr: [StoragePort, ip_address]}
328 TenantIp: {get_attr: [TenantPort, ip_address]}
331 type: OS::TripleO::Compute::Net::SoftwareConfig
333 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
334 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
335 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
336 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
339 type: OS::TripleO::SoftwareDeployment
341 config: {get_resource: NetworkConfig}
342 server: {get_resource: NovaCompute}
344 bridge_name: {get_param: NeutronPhysicalBridge}
345 interface_name: {get_param: NeutronPublicInterface}
348 type: OS::Heat::StructuredConfig
350 group: os-apply-config
355 - heat_config_%{::deploy_config_name}
356 - compute_extraconfig
359 - ceph_cluster # provided by CephClusterConfig
361 - all_nodes # provided by allNodesConfig
364 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
367 mapped_data: {get_param: NovaComputeExtraConfig}
369 mapped_data: {get_param: ExtraConfig}
371 raw_data: {get_file: hieradata/common.yaml}
373 raw_data: {get_file: hieradata/ceph.yaml}
375 raw_data: {get_file: hieradata/compute.yaml}
377 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
378 nova::debug: {get_input: debug}
379 nova::rabbit_userid: {get_input: rabbit_username}
380 nova::rabbit_password: {get_input: rabbit_password}
381 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
382 nova::rabbit_port: {get_input: rabbit_client_port}
383 nova_compute_driver: {get_input: nova_compute_driver}
384 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
385 nova_api_host: {get_input: nova_api_host}
386 nova::compute::vncproxy_host: {get_input: nova_public_ip}
387 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
388 nova_password: {get_input: nova_password}
389 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
390 ceilometer::debug: {get_input: debug}
391 ceilometer::rabbit_userid: {get_input: rabbit_username}
392 ceilometer::rabbit_password: {get_input: rabbit_password}
393 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
394 ceilometer::rabbit_port: {get_input: rabbit_client_port}
395 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
396 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
397 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
398 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
399 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
400 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
401 nova::glance_api_servers: {get_input: glance_api_servers}
402 neutron::debug: {get_input: debug}
403 neutron::rabbit_password: {get_input: rabbit_password}
404 neutron::rabbit_user: {get_input: rabbit_user}
405 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
406 neutron::rabbit_port: {get_input: rabbit_client_port}
407 neutron_flat_networks: {get_input: neutron_flat_networks}
408 neutron_host: {get_input: neutron_host}
409 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
411 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
412 neutron_tunnel_types: {get_input: neutron_tunnel_types}
413 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
414 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
415 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
416 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
417 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
418 neutron_physical_bridge: {get_input: neutron_physical_bridge}
419 neutron_public_interface: {get_input: neutron_public_interface}
420 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
421 nova::network::neutron::neutron_url: {get_input: neutron_url}
422 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
423 neutron_router_distributed: {get_input: neutron_router_distributed}
424 neutron_agent_mode: {get_input: neutron_agent_mode}
425 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
426 neutron::core_plugin: {get_input: neutron_core_plugin}
427 neutron::service_plugins: {get_input: neutron_service_plugins}
428 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
429 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
430 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
431 admin_password: {get_input: admin_password}
432 ntp::servers: {get_input: ntp_servers}
433 tripleo::packages::enable_install: {get_input: enable_package_install}
434 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
436 NovaComputeDeployment:
437 type: OS::TripleO::SoftwareDeployment
438 depends_on: NetworkDeployment
440 config: {get_resource: NovaComputeConfig}
441 server: {get_resource: NovaCompute}
443 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
444 debug: {get_param: Debug}
445 nova_compute_driver: {get_param: NovaComputeDriver}
446 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
447 nova_public_ip: {get_param: NovaPublicIP}
448 nova_api_host: {get_param: NovaApiHost}
449 nova_password: {get_param: NovaPassword}
450 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
451 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
452 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
453 ceilometer_password: {get_param: CeilometerPassword}
454 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
455 ceilometer_agent_auth_url:
459 - {get_param: KeystonePublicApiVirtualIP}
461 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
462 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
466 - - {get_param: GlanceProtocol}
468 - {get_param: GlanceHost}
470 - {get_param: GlancePort}
471 neutron_flat_networks: {get_param: NeutronFlatNetworks}
472 neutron_host: {get_param: NeutronHost}
473 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
474 neutron_tenant_network_type: {get_param: NeutronNetworkType}
475 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
476 neutron_tunnel_id_ranges:
478 template: "['RANGES']"
483 - {get_param: NeutronTunnelIdRanges}
486 template: "['RANGES']"
491 - {get_param: NeutronVniRanges}
492 neutron_network_vlan_ranges:
494 template: "['RANGES']"
499 - {get_param: NeutronNetworkVLANRanges}
500 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
501 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
502 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
503 neutron_public_interface: {get_param: NeutronPublicInterface}
504 neutron_password: {get_param: NeutronPassword}
505 neutron_agent_mode: {get_param: NeutronAgentMode}
506 neutron_router_distributed: {get_param: NeutronDVR}
507 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
508 neutron_core_plugin: {get_param: NeutronCorePlugin}
509 neutron_service_plugins:
511 template: "['PLUGINS']"
516 - {get_param: NeutronServicePlugins}
517 neutron_type_drivers:
519 template: "['DRIVERS']"
524 - {get_param: NeutronTypeDrivers}
525 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
526 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
531 - {get_param: NeutronHost}
533 neutron_admin_auth_url:
537 - {get_param: KeystoneAdminApiVirtualIP}
539 admin_password: {get_param: AdminPassword}
540 rabbit_username: {get_param: RabbitUserName}
541 rabbit_password: {get_param: RabbitPassword}
542 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
543 rabbit_client_port: {get_param: RabbitClientPort}
546 template: '["server"]'
548 server: {get_param: NtpServer}
549 enable_package_install: {get_param: EnablePackageInstall}
550 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
552 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
553 ComputeExtraConfigPre:
554 depends_on: NovaComputeDeployment
555 type: OS::TripleO::ComputeExtraConfigPre
557 server: {get_resource: NovaCompute}
559 # Hook for site-specific additional pre-deployment config,
560 # applying to all nodes, e.g node registration/unregistration
562 depends_on: ComputeExtraConfigPre
563 type: OS::TripleO::NodeExtraConfig
565 server: {get_resource: NovaCompute}
568 type: OS::TripleO::Tasks::PackageUpdate
571 type: OS::Heat::SoftwareDeployment
573 config: {get_resource: UpdateConfig}
574 server: {get_resource: NovaCompute}
577 get_param: UpdateIdentifier
581 description: IP address of the server in the ctlplane network
582 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
583 internal_api_ip_address:
584 description: IP address of the server in the internal_api network
585 value: {get_attr: [InternalApiPort, ip_address]}
587 description: IP address of the server in the storage network
588 value: {get_attr: [StoragePort, ip_address]}
590 description: IP address of the server in the tenant network
591 value: {get_attr: [TenantPort, ip_address]}
593 description: Hostname of the server
594 value: {get_attr: [NovaCompute, name]}
597 Server's IP address and hostname in the /etc/hosts format
600 template: "IP HOST.localdomain HOST"
602 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
603 HOST: {get_attr: [NovaCompute, name]}
604 nova_server_resource:
605 description: Heat resource handle for the Nova compute server
607 {get_resource: NovaCompute}
609 description: identifier which changes if the node configuration may need re-applying
613 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
614 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
615 - {get_param: UpdateIdentifier}