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.
30 description: Set to True to enable debugging on all services.
35 Additional hiera configuration to inject into the cluster. Note
36 that NovaComputeExtraConfig takes precedence over ExtraConfig.
39 description: Flavor for the nova compute node
42 - custom_constraint: nova.flavor
45 default: '' # Has to be here because of the ignored empty value bug
48 description: Glance port.
52 description: Protocol to use when connecting to glance, set to https for SSL.
56 default: overcloud-compute
58 - custom_constraint: glance.image
60 default: 'REBUILD_PRESERVE_EPHEMERAL'
61 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
64 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
68 - custom_constraint: nova.keypair
72 NeutronBridgeMappings:
74 The OVS logical->physical bridge mappings to use. See the Neutron
75 documentation for details. Defaults to mapping br-ex - the external
76 bridge on hosts - to a physical name 'datacentre' which can be used
77 to create provider networks (and we use this for the default floating
78 network) - if changing this either use different post-install network
79 scripts or be sure to keep 'datacentre' as a mapping network name.
81 default: "datacentre:br-ex"
82 NeutronEnableTunnelling:
89 If set, flat networks to configure in neutron plugins.
92 default: '' # Has to be here because of the ignored empty value bug
95 description: The tenant network type for Neutron, either gre or vxlan.
97 NeutronNetworkVLANRanges:
100 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
101 Neutron documentation for permitted values. Defaults to permitting any
102 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
103 type: comma_delimited_list
106 description: The password for the neutron service account, used by neutron agents.
109 NeutronPhysicalBridge:
111 description: An OVS bridge to create for accessing external networks.
113 NeutronPublicInterface:
115 description: A port to add to the NeutronPhysicalBridge.
120 The tunnel types for the Neutron tenant network. To specify multiple
121 values, use a comma separated string, like so: 'gre,vxlan'
123 NeutronTunnelIdRanges:
125 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
126 of GRE tunnel IDs that are available for tenant network allocation
127 default: ["1:1000", ]
128 type: comma_delimited_list
131 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
132 of VXLAN VNI IDs that are available for tenant network allocation
133 default: ["1:1000", ]
134 type: comma_delimited_list
135 NeutronPublicInterfaceRawDevice:
141 NeutronMetadataProxySharedSecret:
143 description: Shared secret to prevent spoofing
145 NeutronMechanismDrivers:
146 default: 'openvswitch'
148 The mechanism drivers for the Neutron tenant network. To specify multiple
149 values, use a comma separated string, like so: 'openvswitch,l2_population'
151 # Not relevant for Computes, should be removed
152 NeutronAllowL3AgentFailover:
154 description: Allow automatic l3-agent failover
156 # Not relevant for Computes, should be removed
159 description: Whether to enable l3-agent HA
163 description: Agent mode for the neutron-l3-agent on the controller hosts
167 default: '' # Has to be here because of the ignored empty value bug
170 default: libvirt.LibvirtDriver
171 NovaComputeExtraConfig:
174 NovaCompute specific configuration to inject into the cluster. Same
175 structure as ExtraConfig.
177 NovaComputeLibvirtType:
180 NovaEnableRbdBackend:
182 description: Whether to enable or not the Rbd backend for Nova
186 description: The password for the nova service account, used by nova-api.
191 default: '' # Has to be here because of the ignored empty value bug
197 default: '' # Has to be here because of the ignored empty value bug
200 description: The password for RabbitMQ
205 description: The username for RabbitMQ
210 Rabbit client subscriber parameter to specify
211 an SSL connection to the RabbitMQ host.
215 description: Set rabbit subscriber port, change this if using SSL
217 SnmpdReadonlyUserName:
218 default: ro_snmp_user
219 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
221 SnmpdReadonlyUserPassword:
223 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
226 EnablePackageInstall:
228 description: Set to true to enable package installation via Puppet
232 description: Mapping of service_name -> network name. Typically set
233 via parameter_defaults in the resource registry.
239 Setting to a previously unused value during stack-update will trigger
240 package update on all nodes
243 default: '' # Defaults to Heat created hostname
248 type: OS::Nova::Server
253 get_param: ImageUpdatePolicy
254 flavor: {get_param: Flavor}
255 key_name: {get_param: KeyName}
258 user_data_format: SOFTWARE_CONFIG
259 user_data: {get_resource: NodeUserData}
260 name: {get_param: Hostname}
263 type: OS::TripleO::NodeUserData
266 type: OS::TripleO::Compute::Ports::InternalApiPort
268 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
271 type: OS::TripleO::Compute::Ports::StoragePort
273 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
276 type: OS::TripleO::Compute::Ports::TenantPort
278 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
281 type: OS::TripleO::Network::Ports::NetIpMap
283 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
284 StorageIp: {get_attr: [StoragePort, ip_address]}
285 TenantIp: {get_attr: [TenantPort, ip_address]}
288 type: OS::TripleO::Compute::Net::SoftwareConfig
290 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
291 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
292 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
295 type: OS::TripleO::SoftwareDeployment
297 config: {get_resource: NetworkConfig}
298 server: {get_resource: NovaCompute}
300 bridge_name: {get_param: NeutronPhysicalBridge}
301 interface_name: {get_param: NeutronPublicInterface}
304 type: OS::Heat::StructuredConfig
306 group: os-apply-config
310 - heat_config_%{::deploy_config_name}
311 - compute_extraconfig
314 - ceph_cluster # provided by CephClusterConfig
316 - all_nodes # provided by allNodesConfig
321 mapped_data: {get_param: NovaComputeExtraConfig}
323 mapped_data: {get_param: ExtraConfig}
325 raw_data: {get_file: hieradata/common.yaml}
327 raw_data: {get_file: hieradata/ceph.yaml}
329 raw_data: {get_file: hieradata/compute.yaml}
331 nova::debug: {get_input: debug}
332 nova::rabbit_userid: {get_input: rabbit_username}
333 nova::rabbit_password: {get_input: rabbit_password}
334 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
335 nova::rabbit_port: {get_input: rabbit_client_port}
336 nova_compute_driver: {get_input: nova_compute_driver}
337 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
338 nova_api_host: {get_input: nova_api_host}
339 nova::compute::vncproxy_host: {get_input: nova_public_ip}
340 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
341 nova_password: {get_input: nova_password}
342 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
343 ceilometer::debug: {get_input: debug}
344 ceilometer::rabbit_userid: {get_input: rabbit_username}
345 ceilometer::rabbit_password: {get_input: rabbit_password}
346 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
347 ceilometer::rabbit_port: {get_input: rabbit_client_port}
348 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
349 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
350 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
351 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
352 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
353 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
354 nova::glance_api_servers: {get_input: glance_api_servers}
355 neutron::debug: {get_input: debug}
356 neutron::rabbit_password: {get_input: rabbit_password}
357 neutron::rabbit_user: {get_input: rabbit_user}
358 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
359 neutron::rabbit_port: {get_input: rabbit_client_port}
360 neutron_flat_networks: {get_input: neutron_flat_networks}
361 neutron_host: {get_input: neutron_host}
362 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
364 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
365 neutron_tunnel_types: {get_input: neutron_tunnel_types}
366 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
367 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
368 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
369 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
370 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
371 neutron_physical_bridge: {get_input: neutron_physical_bridge}
372 neutron_public_interface: {get_input: neutron_public_interface}
373 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
374 nova::network::neutron::neutron_url: {get_input: neutron_url}
375 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
376 neutron_router_distributed: {get_input: neutron_router_distributed}
377 neutron_agent_mode: {get_input: neutron_agent_mode}
378 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
379 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
380 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
381 admin_password: {get_input: admin_password}
382 ntp::servers: {get_input: ntp_servers}
383 tripleo::packages::enable_install: {get_input: enable_package_install}
385 NovaComputeDeployment:
386 type: OS::TripleO::SoftwareDeployment
387 depends_on: NetworkDeployment
389 config: {get_resource: NovaComputeConfig}
390 server: {get_resource: NovaCompute}
392 debug: {get_param: Debug}
393 nova_compute_driver: {get_param: NovaComputeDriver}
394 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
395 nova_public_ip: {get_param: NovaPublicIP}
396 nova_api_host: {get_param: NovaApiHost}
397 nova_password: {get_param: NovaPassword}
398 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
399 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
400 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
401 ceilometer_password: {get_param: CeilometerPassword}
402 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
403 ceilometer_agent_auth_url:
407 - {get_param: KeystoneHost}
409 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
410 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
414 - - {get_param: GlanceProtocol}
416 - {get_param: GlanceHost}
418 - {get_param: GlancePort}
419 neutron_flat_networks: {get_param: NeutronFlatNetworks}
420 neutron_host: {get_param: NeutronHost}
421 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
422 neutron_tenant_network_type: {get_param: NeutronNetworkType}
423 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
424 neutron_tunnel_id_ranges:
426 template: "['RANGES']"
431 - {get_param: NeutronTunnelIdRanges}
434 template: "['RANGES']"
439 - {get_param: NeutronVniRanges}
440 neutron_network_vlan_ranges:
442 template: "['RANGES']"
447 - {get_param: NeutronNetworkVLANRanges}
448 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
449 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
450 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
451 neutron_public_interface: {get_param: NeutronPublicInterface}
452 neutron_password: {get_param: NeutronPassword}
453 neutron_agent_mode: {get_param: NeutronAgentMode}
454 neutron_router_distributed: {get_param: NeutronDVR}
455 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
456 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
457 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
462 - {get_param: NeutronHost}
464 neutron_admin_auth_url:
468 - {get_param: NeutronHost}
470 admin_password: {get_param: AdminPassword}
471 rabbit_username: {get_param: RabbitUserName}
472 rabbit_password: {get_param: RabbitPassword}
473 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
474 rabbit_client_port: {get_param: RabbitClientPort}
477 template: '["server"]'
479 server: {get_param: NtpServer}
480 enable_package_install: {get_param: EnablePackageInstall}
483 type: OS::TripleO::Tasks::PackageUpdate
486 type: OS::Heat::SoftwareDeployment
488 config: {get_resource: UpdateConfig}
489 server: {get_resource: NovaCompute}
492 get_param: UpdateIdentifier
496 description: IP address of the server in the ctlplane network
497 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
498 internal_api_ip_address:
499 description: IP address of the server in the internal_api network
500 value: {get_attr: [InternalApiPort, ip_address]}
502 description: IP address of the server in the storage network
503 value: {get_attr: [StoragePort, ip_address]}
505 description: IP address of the server in the tenant network
506 value: {get_attr: [TenantPort, ip_address]}
508 description: Hostname of the server
509 value: {get_attr: [NovaCompute, name]}
512 Server's IP address and hostname in the /etc/hosts format
515 template: "IP HOST.localdomain HOST"
517 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
518 HOST: {get_attr: [NovaCompute, name]}
519 nova_server_resource:
520 description: Heat resource handle for the Nova compute server
522 {get_resource: NovaCompute}
524 description: identifier which changes if the node configuration may need re-applying
525 value: {get_attr: [NovaComputeDeployment, deploy_stdout]}