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
261 type: OS::Nova::Server
266 get_param: ImageUpdatePolicy
267 flavor: {get_param: Flavor}
268 key_name: {get_param: KeyName}
271 user_data_format: SOFTWARE_CONFIG
272 user_data: {get_resource: NodeUserData}
275 type: OS::TripleO::NodeUserData
278 type: OS::TripleO::Compute::Ports::InternalApiPort
280 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
283 type: OS::TripleO::Compute::Ports::StoragePort
285 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
288 type: OS::TripleO::Compute::Ports::TenantPort
290 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
293 type: OS::TripleO::Compute::Net::SoftwareConfig
295 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
296 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
297 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
300 type: OS::TripleO::SoftwareDeployment
302 signal_transport: NO_SIGNAL
303 config: {get_resource: NetworkConfig}
304 server: {get_resource: NovaCompute}
306 bridge_name: {get_param: NeutronPhysicalBridge}
307 interface_name: {get_param: NeutronPublicInterface}
310 type: OS::Heat::StructuredConfig
312 group: os-apply-config
315 compute_driver: { get_input: nova_compute_driver }
316 compute_libvirt_type: { get_input: nova_compute_libvirt_type }
317 debug: {get_input: debug}
318 host: {get_input: nova_api_host}
319 public_ip: {get_input: nova_public_ip}
320 service-password: {get_input: nova_password}
322 debug: {get_input: debug}
323 metering_secret: {get_input: ceilometer_metering_secret}
324 service-password: {get_input: ceilometer_password}
325 compute_agent: {get_input: ceilometer_compute_agent}
327 export_MIB: UCD-SNMP-MIB
328 readonly_user_name: {get_input: snmpd_readonly_user_name}
329 readonly_user_password: {get_input: snmpd_readonly_user_password}
331 debug: {get_input: debug}
332 host: {get_input: glance_host}
333 port: {get_input: glance_port}
334 protocol: {get_input: glance_protocol}
336 debug: {get_input: debug}
337 host: {get_input: keystone_host}
339 debug: {get_input: debug}
340 flat-networks: {get_input: neutron_flat_networks}
341 host: {get_input: neutron_host}
342 router_distributed: {get_input: neutron_router_distributed}
343 agent_mode: {get_input: neutron_agent_mode}
344 ovs_db: {get_input: neutron_dsn}
345 metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
346 mechanism_drivers: {get_input: neutron_mechanism_drivers}
347 allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
348 l3_ha: {get_input: neutron_l3_ha}
350 local_ip: {get_input: neutron_local_ip}
351 tenant_network_type: {get_input: neutron_tenant_network_type}
352 tunnel_types: {get_input: neutron_tunnel_types}
353 network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
354 bridge_mappings: {get_input: neutron_bridge_mappings}
355 enable_tunneling: {get_input: neutron_enable_tunneling}
356 physical_bridge: {get_input: neutron_physical_bridge}
357 public_interface: {get_input: neutron_public_interface}
358 public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
359 service-password: {get_input: neutron_password}
360 admin-password: {get_input: admin_password}
362 host: {get_input: rabbit_host}
363 username: {get_input: rabbit_username}
364 password: {get_input: rabbit_password}
367 - {server: {get_input: ntp_server}}
369 NovaComputeDeployment:
370 type: OS::TripleO::SoftwareDeployment
372 signal_transport: NO_SIGNAL
373 config: {get_resource: NovaComputeConfig}
374 server: {get_resource: NovaCompute}
376 debug: {get_param: Debug}
377 nova_compute_driver: {get_param: NovaComputeDriver}
378 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
379 nova_public_ip: {get_param: NovaPublicIP}
380 nova_api_host: {get_param: NovaApiHost}
381 nova_password: {get_param: NovaPassword}
382 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
383 ceilometer_password: {get_param: CeilometerPassword}
384 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
385 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
386 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
387 glance_host: {get_param: GlanceHost}
388 glance_port: {get_param: GlancePort}
389 glance_protocol: {get_param: GlanceProtocol}
390 keystone_host: {get_param: KeystoneHost}
391 neutron_flat_networks: {get_param: NeutronFlatNetworks}
392 neutron_host: {get_param: NeutronHost}
393 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
394 neutron_tenant_network_type: {get_param: NeutronNetworkType}
395 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
396 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
397 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
398 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
399 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
400 neutron_public_interface: {get_param: NeutronPublicInterface}
401 neutron_password: {get_param: NeutronPassword}
402 neutron_agent_mode: {get_param: NeutronAgentMode}
403 neutron_router_distributed: {get_param: NeutronDVR}
404 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
405 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
406 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
407 neutron_l3_ha: {get_param: NeutronL3HA}
408 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
409 admin_password: {get_param: AdminPassword}
410 rabbit_host: {get_param: RabbitHost}
411 rabbit_username: {get_param: RabbitUserName}
412 rabbit_password: {get_param: RabbitPassword}
413 ntp_server: {get_param: NtpServer}
415 NovaComputePassthrough:
416 type: OS::Heat::StructuredConfig
418 group: os-apply-config
419 config: {get_input: passthrough_config}
421 NovaComputePassthroughSpecific:
422 type: OS::Heat::StructuredConfig
424 group: os-apply-config
425 config: {get_input: passthrough_config_specific}
427 NovaComputePassthroughDeployment:
428 depends_on: [NovaComputeDeployment]
429 type: OS::Heat::StructuredDeployment
431 config: {get_resource: NovaComputePassthrough}
432 server: {get_resource: NovaCompute}
433 signal_transport: NO_SIGNAL
435 passthrough_config: {get_param: ExtraConfig}
437 NovaComputePassthroughDeploymentSpecific:
438 depends_on: [NovaComputePassthroughDeployment]
439 type: OS::Heat::StructuredDeployment
441 config: {get_resource: NovaComputePassthroughSpecific}
442 server: {get_resource: NovaCompute}
443 signal_transport: NO_SIGNAL
445 passthrough_config_specific: {get_param: NovaComputeExtraConfig}
449 description: IP address of the server in the ctlplane network
450 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
451 internal_api_ip_address:
452 description: IP address of the server in the internal_api network
453 value: {get_attr: [InternalApiPort, ip_address]}
455 description: IP address of the server in the storage network
456 value: {get_attr: [StoragePort, ip_address]}
458 description: IP address of the server in the tenant network
459 value: {get_attr: [TenantPort, ip_address]}
461 description: Hostname of the server
462 value: {get_attr: [NovaCompute, name]}
465 Server's IP address and hostname in the /etc/hosts format
470 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
471 HOST: {get_attr: [NovaCompute, name]}
472 nova_server_resource:
473 description: Heat resource handle for the Nova compute server
475 {get_resource: NovaCompute}