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
228 Rabbit client subscriber parameter to specify
229 an SSL connection to the RabbitMQ host.
233 description: Set rabbit subscriber port, change this if using SSL
235 SnmpdReadonlyUserName:
236 default: ro_snmp_user
237 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
239 SnmpdReadonlyUserPassword:
241 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
244 EnablePackageInstall:
246 description: Set to true to enable package installation via Puppet
252 type: OS::Nova::Server
257 get_param: ImageUpdatePolicy
258 flavor: {get_param: Flavor}
259 key_name: {get_param: KeyName}
262 user_data_format: SOFTWARE_CONFIG
265 type: OS::TripleO::Net::SoftwareConfig
268 type: OS::TripleO::SoftwareDeployment
270 signal_transport: NO_SIGNAL
271 config: {get_attr: [NetworkConfig, config_id]}
272 server: {get_resource: NovaCompute}
274 bridge_name: {get_param: NeutronPhysicalBridge}
275 interface_name: {get_param: NeutronPublicInterface}
278 type: OS::Heat::StructuredConfig
280 group: os-apply-config
284 - heat_config_%{::deploy_config_name}
286 - ceph_cluster # provided by CephClusterConfig
291 raw_data: {get_file: hieradata/common.yaml}
293 raw_data: {get_file: hieradata/ceph.yaml}
295 raw_data: {get_file: hieradata/compute.yaml}
297 nova::compute::vncserver_proxyclient_address: local-ipv4
299 #nova::debug: {get_input: debug}
300 nova::rabbit_hosts: {get_input: rabbit_hosts}
301 nova::rabbit_userid: {get_input: rabbit_username}
302 nova::rabbit_password: {get_input: rabbit_password}
303 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
304 nova::rabbit_port: {get_input: rabbit_client_port}
305 nova_compute_driver: {get_input: nova_compute_driver}
306 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
307 nova_api_host: {get_input: nova_api_host}
308 nova::compute::vncproxy_host: {get_input: nova_public_ip}
309 nova_enable_rbd_backend: {get_input: nova_enable_rbd_backend}
310 nova_password: {get_input: nova_password}
311 #ceilometer::debug: {get_input: debug}
312 ceilometer::rabbit_hosts: {get_input: rabbit_hosts}
313 ceilometer::rabbit_userid: {get_input: rabbit_username}
314 ceilometer::rabbit_password: {get_input: rabbit_password}
315 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
316 ceilometer::rabbit_port: {get_input: rabbit_client_port}
317 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
318 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
319 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
320 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
321 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
322 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
323 nova::glance_api_servers: {get_input: glance_api_servers}
324 #neutron::debug: {get_input: debug}
325 neutron::rabbit_hosts: {get_input: rabbit_hosts}
326 neutron::rabbit_password: {get_input: rabbit_password}
327 neutron::rabbit_user: {get_input: rabbit_user}
328 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
329 neutron::rabbit_port: {get_input: rabbit_client_port}
330 neutron_flat_networks: {get_input: neutron_flat_networks}
331 neutron_host: {get_input: neutron_host}
332 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
333 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
334 neutron_tunnel_types: {get_input: neutron_tunnel_types}
335 neutron::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
336 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
337 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
338 neutron_physical_bridge: {get_input: neutron_physical_bridge}
339 neutron_public_interface: {get_input: neutron_public_interface}
340 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
341 nova::network::neutron::neutron_url: {get_input: neutron_url}
342 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
343 neutron_router_distributed: {get_input: neutron_router_distributed}
344 neutron_agent_mode: {get_input: neutron_agent_mode}
345 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
346 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
347 neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
348 neutron_allow_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
349 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
350 admin_password: {get_input: admin_password}
351 ntp::servers: {get_input: ntp_servers}
352 enable_package_install: {get_input: enable_package_install}
354 NovaComputeDeployment:
355 type: OS::TripleO::SoftwareDeployment
357 signal_transport: NO_SIGNAL
358 config: {get_resource: NovaComputeConfig}
359 server: {get_resource: NovaCompute}
361 debug: {get_param: Debug}
362 nova_compute_driver: {get_param: NovaComputeDriver}
363 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
364 nova_public_ip: {get_param: NovaPublicIP}
365 nova_api_host: {get_param: NovaApiHost}
366 nova_password: {get_param: NovaPassword}
367 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
368 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
369 ceilometer_password: {get_param: CeilometerPassword}
370 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
371 ceilometer_agent_auth_url:
375 - {get_param: KeystoneHost}
377 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
378 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
382 - - {get_param: GlanceProtocol}
384 - {get_param: GlanceHost}
386 - {get_param: GlancePort}
387 neutron_flat_networks: {get_param: NeutronFlatNetworks}
388 neutron_host: {get_param: NeutronHost}
389 neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
390 neutron_tenant_network_type: {get_param: NeutronNetworkType}
391 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
392 neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
393 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
394 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
395 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
396 neutron_public_interface: {get_param: NeutronPublicInterface}
397 neutron_password: {get_param: NeutronPassword}
398 neutron_agent_mode: {get_param: NeutronAgentMode}
399 neutron_router_distributed: {get_param: NeutronDVR}
400 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
401 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
402 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
403 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
408 - {get_param: NeutronHost}
410 neutron_admin_auth_url:
414 - {get_param: NeutronHost}
416 admin_password: {get_param: AdminPassword}
421 host: {get_param: RabbitHost}
422 rabbit_username: {get_param: RabbitUserName}
423 rabbit_password: {get_param: RabbitPassword}
424 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
425 rabbit_client_port: {get_param: RabbitClientPort}
428 template: '["server"]'
430 server: {get_param: NtpServer}
431 enable_package_install: {get_param: EnablePackageInstall}
435 description: IP address of the server in the ctlplane network
436 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
438 description: Hostname of the server
439 value: {get_attr: [NovaCompute, name]}
442 Server's IP address and hostname in the /etc/hosts format
445 template: "IP HOST HOST.novalocal"
447 IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
448 HOST: {get_attr: [NovaCompute, name]}
449 nova_server_resource:
450 description: Heat resource handle for the Nova compute server
452 {get_resource: NovaCompute}