1 heat_template_version: 2014-10-16
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.
114 NeutronEnableTunnelling:
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 NeutronAllowL3AgentFailover:
173 description: Allow automatic l3-agent failover
175 NeutronL3HA: #FIXME this isn't wired in
177 description: Whether to enable l3-agent HA
181 description: Agent mode for the neutron-l3-agent on the controller hosts
185 default: '' # Has to be here because of the ignored empty value bug
188 default: libvirt.LibvirtDriver
189 NovaComputeExtraConfig:
192 NovaCompute specific configuration to inject into the cluster. Same
193 structure as ExtraConfig.
195 NovaComputeLibvirtType:
198 NovaEnableRbdBackend:
200 description: Whether to enable or not the Rbd backend for Nova
204 description: The password for the nova service account, used by nova-api.
209 default: '' # Has to be here because of the ignored empty value bug
215 default: '' # Has to be here because of the ignored empty value bug
218 description: The password for RabbitMQ
223 description: The username for RabbitMQ
225 SnmpdReadonlyUserName:
226 default: ro_snmp_user
227 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
229 SnmpdReadonlyUserPassword:
231 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
234 EnablePackageInstall:
236 description: Set to true to enable package installation via Puppet
242 type: OS::Nova::Server
247 get_param: ImageUpdatePolicy
248 flavor: {get_param: Flavor}
249 key_name: {get_param: KeyName}
252 user_data_format: SOFTWARE_CONFIG
255 type: OS::TripleO::Net::SoftwareConfig
258 type: OS::TripleO::SoftwareDeployment
260 signal_transport: NO_SIGNAL
261 config: {get_attr: [NetworkConfig, config_id]}
262 server: {get_resource: NovaCompute}
264 bridge_name: {get_param: NeutronPhysicalBridge}
265 interface_name: {get_param: NeutronPublicInterface}
268 type: OS::Heat::StructuredConfig
270 group: os-apply-config
274 - heat_config_%{::deploy_config_name}
276 - ceph_cluster # provided by CephClusterConfig
281 raw_data: {get_file: hieradata/common.yaml}
283 raw_data: {get_file: hieradata/ceph.yaml}
285 raw_data: {get_file: hieradata/compute.yaml}
287 nova::compute::vncserver_proxyclient_address: local-ipv4
289 #nova::debug: {get_input: debug}
290 nova_compute_driver: {get_input: nova_compute_driver}
291 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
292 nova_api_host: {get_input: nova_api_host}
293 nova::compute::vncproxy_host: {get_input: nova_public_ip}
294 nova_enable_rbd_backend: {get_input: nova_enable_rbd_backend}
295 nova_password: {get_input: nova_password}
296 #ceilometer::debug: {get_input: debug}
297 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
298 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
299 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
300 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
301 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
302 glance_host: {get_input: glance_host}
303 glance_port: {get_input: glance_port}
304 glance_protocol: {get_input: glance_protocol}
305 keystone_host: {get_input: keystone_host}
306 #neutron::debug: {get_input: debug}
307 neutron_flat_networks: {get_input: neutron_flat_networks}
308 neutron_host: {get_input: neutron_host}
309 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
310 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
311 neutron_tunnel_types: {get_input: neutron_tunnel_types}
312 neutron::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
313 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
314 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
315 neutron_physical_bridge: {get_input: neutron_physical_bridge}
316 neutron_public_interface: {get_input: neutron_public_interface}
317 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
318 neutron_router_distributed: {get_input: neutron_router_distributed}
319 neutron_agent_mode: {get_input: neutron_agent_mode}
320 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
321 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
322 neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
323 neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
324 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
325 admin_password: {get_input: admin_password}
326 nova::rabbit_host: {get_input: rabbit_host}
327 neutron::rabbit_host: {get_input: rabbit_host}
328 ceilometer::rabbit_host: {get_input: rabbit_host}
329 nova::rabbit_userid: {get_input: rabbit_username}
330 neutron::rabbit_user: {get_input: rabbit_username}
331 ceilometer::rabbit_userid: {get_input: rabbit_username}
332 nova::rabbit_password: {get_input: rabbit_password}
333 neutron::rabbit_password: {get_input: rabbit_password}
334 ceilometer::rabbit_password: {get_input: rabbit_password}
335 ntp::servers: {get_input: ntp_servers}
336 enable_package_install: {get_input: enable_package_install}
338 NovaComputeDeployment:
339 type: OS::TripleO::SoftwareDeployment
341 signal_transport: NO_SIGNAL
342 config: {get_resource: NovaComputeConfig}
343 server: {get_resource: NovaCompute}
345 debug: {get_param: Debug}
346 nova_compute_driver: {get_param: NovaComputeDriver}
347 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
348 nova_public_ip: {get_param: NovaPublicIP}
349 nova_api_host: {get_param: NovaApiHost}
350 nova_password: {get_param: NovaPassword}
351 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
352 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
353 ceilometer_password: {get_param: CeilometerPassword}
354 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
355 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
356 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
357 glance_host: {get_param: GlanceHost}
358 glance_port: {get_param: GlancePort}
359 glance_protocol: {get_param: GlanceProtocol}
360 keystone_host: {get_param: KeystoneHost}
361 neutron_flat_networks: {get_param: NeutronFlatNetworks}
362 neutron_host: {get_param: NeutronHost}
363 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
364 neutron_tenant_network_type: {get_param: NeutronNetworkType}
365 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
366 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
367 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
368 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
369 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
370 neutron_public_interface: {get_param: NeutronPublicInterface}
371 neutron_password: {get_param: NeutronPassword}
372 neutron_agent_mode: {get_param: NeutronAgentMode}
373 neutron_router_distributed: {get_param: NeutronDVR}
374 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
375 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
376 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
377 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
378 admin_password: {get_param: AdminPassword}
379 rabbit_host: {get_param: RabbitHost}
380 rabbit_username: {get_param: RabbitUserName}
381 rabbit_password: {get_param: RabbitPassword}
384 template: '["server"]'
386 server: {get_param: NtpServer}
387 enable_package_install: {get_param: EnablePackageInstall}
391 description: IP address of the server in the ctlplane network
392 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
394 description: Hostname of the server
395 value: {get_attr: [NovaCompute, name]}
398 Server's IP address and hostname in the /etc/hosts format
401 template: "IP HOST HOST.novalocal"
403 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
404 HOST: {get_attr: [NovaCompute, name]}
405 nova_server_resource:
406 description: Heat resource handle for the Nova compute server
408 {get_resource: NovaCompute}