1 heat_template_version: 2015-04-30
4 OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
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).
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
251 type: OS::Nova::Server
256 get_param: ImageUpdatePolicy
257 flavor: {get_param: Flavor}
258 key_name: {get_param: KeyName}
261 user_data_format: SOFTWARE_CONFIG
262 user_data: {get_resource: NodeUserData}
265 type: OS::TripleO::NodeUserData
268 type: OS::TripleO::Compute::Ports::InternalApiPort
270 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
273 type: OS::TripleO::Compute::Ports::StoragePort
275 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
278 type: OS::TripleO::Compute::Ports::TenantPort
280 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
283 type: OS::TripleO::Compute::Net::SoftwareConfig
285 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
286 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
287 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
290 type: OS::TripleO::SoftwareDeployment
292 signal_transport: NO_SIGNAL
293 config: {get_resource: NetworkConfig}
294 server: {get_resource: NovaCompute}
296 bridge_name: {get_param: NeutronPhysicalBridge}
297 interface_name: {get_param: NeutronPublicInterface}
300 type: OS::Heat::StructuredConfig
302 group: os-apply-config
305 compute_driver: { get_input: nova_compute_driver }
306 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
307 debug: {get_input: debug}
308 host: {get_input: nova_api_host}
309 public_ip: {get_input: nova_public_ip}
310 service-password: {get_input: nova_password}
312 debug: {get_input: debug}
313 metering_secret: {get_input: ceilometer_metering_secret}
314 service-password: {get_input: ceilometer_password}
315 compute_agent: {get_input: ceilometer_compute_agent}
317 export_MIB: UCD-SNMP-MIB
318 readonly_user_name: {get_input: snmpd_readonly_user_name}
319 readonly_user_password: {get_input: snmpd_readonly_user_password}
321 debug: {get_input: debug}
322 host: {get_input: glance_host}
323 port: {get_input: glance_port}
324 protocol: {get_input: glance_protocol}
326 debug: {get_input: debug}
327 host: {get_input: keystone_host}
329 debug: {get_input: debug}
330 flat-networks: {get_input: neutron_flat_networks}
331 host: {get_input: neutron_host}
332 router_distributed: {get_input: neutron_router_distributed}
333 agent_mode: {get_input: neutron_agent_mode}
334 ovs_db: {get_input: neutron_dsn}
335 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
336 mechanism_drivers: {get_input: neutron_mechanism_drivers}
337 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
338 l3_ha: {get_input: neutron_l3_ha}
340 local_ip: {get_input: neutron_local_ip}
341 tenant_network_type: {get_input: neutron_tenant_network_type}
342 tunnel_types: {get_input: neutron_tunnel_types}
343 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
344 bridge_mappings: {get_input: neutron_bridge_mappings}
345 enable_tunneling: {get_input: neutron_enable_tunneling}
346 physical_bridge: {get_input: neutron_physical_bridge}
347 public_interface: {get_input: neutron_public_interface}
348 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
349 service-password: {get_input: neutron_password}
350 admin-password: {get_input: admin_password}
352 host: {get_input: rabbit_host}
353 username: {get_input: rabbit_username}
354 password: {get_input: rabbit_password}
357 - {server: {get_input: ntp_server}}
359 NovaComputeDeployment:
360 type: OS::TripleO::SoftwareDeployment
362 signal_transport: NO_SIGNAL
363 config: {get_resource: NovaComputeConfig}
364 server: {get_resource: NovaCompute}
366 debug: {get_param: Debug}
367 nova_compute_driver: {get_param: NovaComputeDriver}
368 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
369 nova_public_ip: {get_param: NovaPublicIP}
370 nova_api_host: {get_param: NovaApiHost}
371 nova_password: {get_param: NovaPassword}
372 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
373 ceilometer_password: {get_param: CeilometerPassword}
374 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
375 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
376 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
377 glance_host: {get_param: GlanceHost}
378 glance_port: {get_param: GlancePort}
379 glance_protocol: {get_param: GlanceProtocol}
380 keystone_host: {get_param: KeystoneHost}
381 neutron_flat_networks: {get_param: NeutronFlatNetworks}
382 neutron_host: {get_param: NeutronHost}
383 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
384 neutron_tenant_network_type: {get_param: NeutronNetworkType}
385 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
386 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
387 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
388 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
389 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
390 neutron_public_interface: {get_param: NeutronPublicInterface}
391 neutron_password: {get_param: NeutronPassword}
392 neutron_agent_mode: {get_param: NeutronAgentMode}
393 neutron_router_distributed: {get_param: NeutronDVR}
394 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
395 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
396 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
397 neutron_l3_ha: {get_param: NeutronL3HA}
398 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
399 admin_password: {get_param: AdminPassword}
400 rabbit_host: {get_param: RabbitHost}
401 rabbit_username: {get_param: RabbitUserName}
402 rabbit_password: {get_param: RabbitPassword}
403 ntp_server: {get_param: NtpServer}
405 NovaComputePassthrough:
406 type: OS::Heat::StructuredConfig
408 group: os-apply-config
409 config: {get_input: passthrough_config}
411 NovaComputePassthroughSpecific:
412 type: OS::Heat::StructuredConfig
414 group: os-apply-config
415 config: {get_input: passthrough_config_specific}
417 NovaComputePassthroughDeployment:
418 depends_on: [NovaComputeDeployment]
419 type: OS::Heat::StructuredDeployment
421 config: {get_resource: NovaComputePassthrough}
422 server: {get_resource: NovaCompute}
423 signal_transport: NO_SIGNAL
425 passthrough_config: {get_param: ExtraConfig}
427 NovaComputePassthroughDeploymentSpecific:
428 depends_on: [NovaComputePassthroughDeployment]
429 type: OS::Heat::StructuredDeployment
431 config: {get_resource: NovaComputePassthroughSpecific}
432 server: {get_resource: NovaCompute}
433 signal_transport: NO_SIGNAL
435 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
439 description: IP address of the server in the ctlplane network
440 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
441 internal_api_ip_address:
442 description: IP address of the server in the internal_api network
443 value: {get_attr: [InternalApiPort, ip_address]}
445 description: IP address of the server in the storage network
446 value: {get_attr: [StoragePort, ip_address]}
448 description: IP address of the server in the tenant network
449 value: {get_attr: [TenantPort, ip_address]}
451 description: Hostname of the server
452 value: {get_attr: [NovaCompute, name]}
455 Server's IP address and hostname in the /etc/hosts format
460 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
461 HOST: {get_attr: [NovaCompute, name]}
462 nova_server_resource:
463 description: Heat resource handle for the Nova compute server
465 {get_resource: NovaCompute}