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).
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
248 description: Mapping of service_name -> network name. Typically set
249 via parameter_defaults in the resource registry.
255 Setting to a previously unused value during stack-update will trigger
256 package update on all nodes
259 default: '' # Defaults to Heat created hostname
264 type: OS::Nova::Server
269 get_param: ImageUpdatePolicy
270 flavor: {get_param: Flavor}
271 key_name: {get_param: KeyName}
274 user_data_format: SOFTWARE_CONFIG
275 user_data: {get_resource: NodeUserData}
276 name: {get_param: Hostname}
279 type: OS::TripleO::NodeUserData
282 type: OS::TripleO::Compute::Ports::InternalApiPort
284 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
287 type: OS::TripleO::Compute::Ports::StoragePort
289 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
292 type: OS::TripleO::Compute::Ports::TenantPort
294 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
297 type: OS::TripleO::Compute::Net::SoftwareConfig
299 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
300 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
301 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
304 type: OS::TripleO::SoftwareDeployment
306 signal_transport: NO_SIGNAL
307 config: {get_resource: NetworkConfig}
308 server: {get_resource: NovaCompute}
310 bridge_name: {get_param: NeutronPhysicalBridge}
311 interface_name: {get_param: NeutronPublicInterface}
314 type: OS::Heat::StructuredConfig
316 group: os-apply-config
319 compute_driver: { get_input: nova_compute_driver }
320 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
321 debug: {get_input: debug}
322 host: {get_input: nova_api_host}
323 public_ip: {get_input: nova_public_ip}
324 service-password: {get_input: nova_password}
326 debug: {get_input: debug}
327 metering_secret: {get_input: ceilometer_metering_secret}
328 service-password: {get_input: ceilometer_password}
329 compute_agent: {get_input: ceilometer_compute_agent}
331 export_MIB: UCD-SNMP-MIB
332 readonly_user_name: {get_input: snmpd_readonly_user_name}
333 readonly_user_password: {get_input: snmpd_readonly_user_password}
335 debug: {get_input: debug}
336 host: {get_input: glance_host}
337 port: {get_input: glance_port}
338 protocol: {get_input: glance_protocol}
340 debug: {get_input: debug}
341 host: {get_input: keystone_host}
343 debug: {get_input: debug}
344 flat-networks: {get_input: neutron_flat_networks}
345 host: {get_input: neutron_host}
346 router_distributed: {get_input: neutron_router_distributed}
347 agent_mode: {get_input: neutron_agent_mode}
348 ovs_db: {get_input: neutron_dsn}
349 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
350 mechanism_drivers: {get_input: neutron_mechanism_drivers}
351 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
352 l3_ha: {get_input: neutron_l3_ha}
354 local_ip: {get_input: neutron_local_ip}
355 tenant_network_type: {get_input: neutron_tenant_network_type}
356 tunnel_types: {get_input: neutron_tunnel_types}
357 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
358 bridge_mappings: {get_input: neutron_bridge_mappings}
359 enable_tunneling: {get_input: neutron_enable_tunneling}
360 physical_bridge: {get_input: neutron_physical_bridge}
361 public_interface: {get_input: neutron_public_interface}
362 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
363 service-password: {get_input: neutron_password}
364 admin-password: {get_input: admin_password}
366 host: {get_input: rabbit_host}
367 username: {get_input: rabbit_username}
368 password: {get_input: rabbit_password}
371 - {server: {get_input: ntp_server}}
373 NovaComputeDeployment:
374 type: OS::TripleO::SoftwareDeployment
376 signal_transport: NO_SIGNAL
377 config: {get_resource: NovaComputeConfig}
378 server: {get_resource: NovaCompute}
380 debug: {get_param: Debug}
381 nova_compute_driver: {get_param: NovaComputeDriver}
382 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
383 nova_public_ip: {get_param: NovaPublicIP}
384 nova_api_host: {get_param: NovaApiHost}
385 nova_password: {get_param: NovaPassword}
386 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
387 ceilometer_password: {get_param: CeilometerPassword}
388 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
389 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
390 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
391 glance_host: {get_param: GlanceHost}
392 glance_port: {get_param: GlancePort}
393 glance_protocol: {get_param: GlanceProtocol}
394 keystone_host: {get_param: KeystoneHost}
395 neutron_flat_networks: {get_param: NeutronFlatNetworks}
396 neutron_host: {get_param: NeutronHost}
397 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
398 neutron_tenant_network_type: {get_param: NeutronNetworkType}
399 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
400 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
401 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
402 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
403 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
404 neutron_public_interface: {get_param: NeutronPublicInterface}
405 neutron_password: {get_param: NeutronPassword}
406 neutron_agent_mode: {get_param: NeutronAgentMode}
407 neutron_router_distributed: {get_param: NeutronDVR}
408 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
409 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
410 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
411 neutron_l3_ha: {get_param: NeutronL3HA}
412 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
413 admin_password: {get_param: AdminPassword}
414 rabbit_host: {get_param: RabbitHost}
415 rabbit_username: {get_param: RabbitUserName}
416 rabbit_password: {get_param: RabbitPassword}
417 ntp_server: {get_param: NtpServer}
419 NovaComputePassthrough:
420 type: OS::Heat::StructuredConfig
422 group: os-apply-config
423 config: {get_input: passthrough_config}
425 NovaComputePassthroughSpecific:
426 type: OS::Heat::StructuredConfig
428 group: os-apply-config
429 config: {get_input: passthrough_config_specific}
431 NovaComputePassthroughDeployment:
432 depends_on: [NovaComputeDeployment]
433 type: OS::Heat::StructuredDeployment
435 config: {get_resource: NovaComputePassthrough}
436 server: {get_resource: NovaCompute}
437 signal_transport: NO_SIGNAL
439 passthrough_config: {get_param: ExtraConfig}
441 NovaComputePassthroughDeploymentSpecific:
442 depends_on: [NovaComputePassthroughDeployment]
443 type: OS::Heat::StructuredDeployment
445 config: {get_resource: NovaComputePassthroughSpecific}
446 server: {get_resource: NovaCompute}
447 signal_transport: NO_SIGNAL
449 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
453 description: IP address of the server in the ctlplane network
454 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
455 internal_api_ip_address:
456 description: IP address of the server in the internal_api network
457 value: {get_attr: [InternalApiPort, ip_address]}
459 description: IP address of the server in the storage network
460 value: {get_attr: [StoragePort, ip_address]}
462 description: IP address of the server in the tenant network
463 value: {get_attr: [TenantPort, ip_address]}
465 description: Hostname of the server
466 value: {get_attr: [NovaCompute, name]}
469 Server's IP address and hostname in the /etc/hosts format
474 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
475 HOST: {get_attr: [NovaCompute, name]}
476 nova_server_resource:
477 description: Heat resource handle for the Nova compute server
479 {get_resource: NovaCompute}