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 configuration to inject into the cluster. The JSON should have
36 the following structure:
39 [{"section": "SECTIONNAME",
41 [{"option": "OPTIONNAME",
52 [{"section": "default",
54 [{"option": "force_config_drive",
62 "value": "nova.cells.rpc_driver.CellsRPCDriver"
71 description: Flavor for the nova compute node
74 - custom_constraint: nova.flavor
77 default: '' # Has to be here because of the ignored empty value bug
80 description: Glance port.
84 description: Protocol to use when connecting to glance, set to https for SSL.
88 default: overcloud-compute
90 - custom_constraint: glance.image
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
100 - custom_constraint: nova.keypair
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronEnableTunnelling:
119 default: 'datacentre'
121 If set, flat networks to configure in neutron plugins.
124 default: '' # Has to be here because of the ignored empty value bug
127 description: The tenant network type for Neutron, either gre or vxlan.
129 NeutronNetworkVLANRanges:
130 default: 'datacentre'
132 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
133 Neutron documentation for permitted values. Defaults to permitting any
134 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
135 type: comma_delimited_list
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPhysicalBridge:
143 description: An OVS bridge to create for accessing external networks.
145 NeutronPublicInterface:
147 description: A port to add to the NeutronPhysicalBridge.
152 The tunnel types for the Neutron tenant network. To specify multiple
153 values, use a comma separated string, like so: 'gre,vxlan'
155 NeutronPublicInterfaceRawDevice:
161 NeutronMetadataProxySharedSecret:
163 description: Shared secret to prevent spoofing
165 NeutronMechanismDrivers:
166 default: 'openvswitch'
168 The mechanism drivers for the Neutron tenant network. To specify multiple
169 values, use a comma separated string, like so: 'openvswitch,l2_population'
171 # Not relevant for Computes, should be removed
172 NeutronAllowL3AgentFailover:
174 description: Allow automatic l3-agent failover
176 # Not relevant for Computes, should be removed
179 description: Whether to enable l3-agent HA
183 description: Agent mode for the neutron-l3-agent on the controller hosts
187 default: '' # Has to be here because of the ignored empty value bug
190 default: libvirt.LibvirtDriver
191 NovaComputeExtraConfig:
194 NovaCompute specific configuration to inject into the cluster. Same
195 structure as ExtraConfig.
197 NovaComputeLibvirtType:
200 NovaEnableRbdBackend:
202 description: Whether to enable or not the Rbd backend for Nova
206 description: The password for the nova service account, used by nova-api.
211 default: '' # Has to be here because of the ignored empty value bug
217 default: '' # Has to be here because of the ignored empty value bug
220 description: The password for RabbitMQ
225 description: The username for RabbitMQ
230 Rabbit client subscriber parameter to specify
231 an SSL connection to the RabbitMQ host.
235 description: Set rabbit subscriber port, change this if using SSL
237 SnmpdReadonlyUserName:
238 default: ro_snmp_user
239 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
241 SnmpdReadonlyUserPassword:
243 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
246 EnablePackageInstall:
248 description: Set to true to enable package installation via Puppet
252 description: Mapping of service_name -> network name. Typically set
253 via parameter_defaults in the resource registry.
259 Setting to a previously unused value during stack-update will trigger
260 package update on all nodes
263 default: '' # Defaults to Heat created hostname
268 type: OS::Nova::Server
273 get_param: ImageUpdatePolicy
274 flavor: {get_param: Flavor}
275 key_name: {get_param: KeyName}
278 user_data_format: SOFTWARE_CONFIG
279 user_data: {get_resource: NodeUserData}
280 name: {get_param: Hostname}
283 type: OS::TripleO::NodeUserData
286 type: OS::TripleO::Compute::Ports::InternalApiPort
288 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
291 type: OS::TripleO::Compute::Ports::StoragePort
293 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
296 type: OS::TripleO::Compute::Ports::TenantPort
298 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
301 type: OS::TripleO::Network::Ports::NetIpMap
303 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
304 StorageIp: {get_attr: [StoragePort, ip_address]}
305 TenantIp: {get_attr: [TenantPort, ip_address]}
308 type: OS::TripleO::Compute::Net::SoftwareConfig
310 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
311 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
312 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
315 type: OS::TripleO::SoftwareDeployment
317 signal_transport: NO_SIGNAL
318 config: {get_resource: NetworkConfig}
319 server: {get_resource: NovaCompute}
321 bridge_name: {get_param: NeutronPhysicalBridge}
322 interface_name: {get_param: NeutronPublicInterface}
325 type: OS::Heat::StructuredConfig
327 group: os-apply-config
331 - heat_config_%{::deploy_config_name}
333 - ceph_cluster # provided by CephClusterConfig
335 - all_nodes # provided by allNodesConfig
340 raw_data: {get_file: hieradata/common.yaml}
342 raw_data: {get_file: hieradata/ceph.yaml}
344 raw_data: {get_file: hieradata/compute.yaml}
346 nova::debug: {get_input: debug}
347 nova::rabbit_userid: {get_input: rabbit_username}
348 nova::rabbit_password: {get_input: rabbit_password}
349 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
350 nova::rabbit_port: {get_input: rabbit_client_port}
351 nova_compute_driver: {get_input: nova_compute_driver}
352 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
353 nova_api_host: {get_input: nova_api_host}
354 nova::compute::vncproxy_host: {get_input: nova_public_ip}
355 nova_enable_rbd_backend: {get_input: nova_enable_rbd_backend}
356 nova_password: {get_input: nova_password}
357 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
358 ceilometer::debug: {get_input: debug}
359 ceilometer::rabbit_userid: {get_input: rabbit_username}
360 ceilometer::rabbit_password: {get_input: rabbit_password}
361 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
362 ceilometer::rabbit_port: {get_input: rabbit_client_port}
363 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
364 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
365 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
366 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
367 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
368 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
369 nova::glance_api_servers: {get_input: glance_api_servers}
370 neutron::debug: {get_input: debug}
371 neutron::rabbit_password: {get_input: rabbit_password}
372 neutron::rabbit_user: {get_input: rabbit_user}
373 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
374 neutron::rabbit_port: {get_input: rabbit_client_port}
375 neutron_flat_networks: {get_input: neutron_flat_networks}
376 neutron_host: {get_input: neutron_host}
377 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
379 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
380 neutron_tunnel_types: {get_input: neutron_tunnel_types}
381 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
382 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
383 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
384 neutron_physical_bridge: {get_input: neutron_physical_bridge}
385 neutron_public_interface: {get_input: neutron_public_interface}
386 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
387 nova::network::neutron::neutron_url: {get_input: neutron_url}
388 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
389 neutron_router_distributed: {get_input: neutron_router_distributed}
390 neutron_agent_mode: {get_input: neutron_agent_mode}
391 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
392 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
393 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
394 admin_password: {get_input: admin_password}
395 ntp::servers: {get_input: ntp_servers}
396 enable_package_install: {get_input: enable_package_install}
398 NovaComputeDeployment:
399 type: OS::TripleO::SoftwareDeployment
401 signal_transport: NO_SIGNAL
402 config: {get_resource: NovaComputeConfig}
403 server: {get_resource: NovaCompute}
405 debug: {get_param: Debug}
406 nova_compute_driver: {get_param: NovaComputeDriver}
407 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
408 nova_public_ip: {get_param: NovaPublicIP}
409 nova_api_host: {get_param: NovaApiHost}
410 nova_password: {get_param: NovaPassword}
411 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
412 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
413 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
414 ceilometer_password: {get_param: CeilometerPassword}
415 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
416 ceilometer_agent_auth_url:
420 - {get_param: KeystoneHost}
422 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
423 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
427 - - {get_param: GlanceProtocol}
429 - {get_param: GlanceHost}
431 - {get_param: GlancePort}
432 neutron_flat_networks: {get_param: NeutronFlatNetworks}
433 neutron_host: {get_param: NeutronHost}
434 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]}
435 neutron_tenant_network_type: {get_param: NeutronNetworkType}
436 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
437 neutron_network_vlan_ranges:
439 template: "['RANGES']"
444 - {get_param: NeutronNetworkVLANRanges}
445 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
446 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
447 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
448 neutron_public_interface: {get_param: NeutronPublicInterface}
449 neutron_password: {get_param: NeutronPassword}
450 neutron_agent_mode: {get_param: NeutronAgentMode}
451 neutron_router_distributed: {get_param: NeutronDVR}
452 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
453 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
454 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
459 - {get_param: NeutronHost}
461 neutron_admin_auth_url:
465 - {get_param: NeutronHost}
467 admin_password: {get_param: AdminPassword}
468 rabbit_username: {get_param: RabbitUserName}
469 rabbit_password: {get_param: RabbitPassword}
470 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
471 rabbit_client_port: {get_param: RabbitClientPort}
474 template: '["server"]'
476 server: {get_param: NtpServer}
477 enable_package_install: {get_param: EnablePackageInstall}
480 type: OS::TripleO::Tasks::PackageUpdate
483 type: OS::Heat::SoftwareDeployment
485 config: {get_resource: UpdateConfig}
486 server: {get_resource: NovaCompute}
489 get_param: UpdateIdentifier
493 description: IP address of the server in the ctlplane network
494 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
495 internal_api_ip_address:
496 description: IP address of the server in the internal_api network
497 value: {get_attr: [InternalApiPort, ip_address]}
499 description: IP address of the server in the storage network
500 value: {get_attr: [StoragePort, ip_address]}
502 description: IP address of the server in the tenant network
503 value: {get_attr: [TenantPort, ip_address]}
505 description: Hostname of the server
506 value: {get_attr: [NovaCompute, name]}
509 Server's IP address and hostname in the /etc/hosts format
512 template: "IP HOST.localdomain HOST"
514 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
515 HOST: {get_attr: [NovaCompute, name]}
516 nova_server_resource:
517 description: Heat resource handle for the Nova compute server
519 {get_resource: NovaCompute}