1 heat_template_version: 2016-10-14
4 OpenStack controller node configured by Puppet.
10 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
12 ControllerExtraConfig:
15 Controller specific hiera configuration data to inject into the cluster.
20 A network mapped list of IPs to assign to Controllers in the following form:
22 "internal_api": ["a.b.c.d", "e.f.g.h"],
28 description: Set to True to enable debugging on all services.
32 description: Whether to deploy a LoadBalancer on the Controller
37 Additional hieradata to inject into the cluster, note that
38 ControllerExtraConfig takes precedence over ExtraConfig.
40 OvercloudControlFlavor:
41 description: Flavor for control nodes to request when deploying.
45 - custom_constraint: nova.flavor
48 default: overcloud-full
50 - custom_constraint: glance.image
52 default: 'REBUILD_PRESERVE_EPHEMERAL'
53 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
57 description: Name of an existing Nova key pair to enable SSH access to the instances
60 - custom_constraint: nova.keypair
61 NeutronPublicInterface:
63 description: What interface to bridge onto br-ex for network nodes.
67 description: Mapping of service_name -> network name. Typically set
68 via parameter_defaults in the resource registry.
72 description: Mapping of service endpoint -> protocol. Typically set
73 via parameter_defaults in the resource registry.
79 Setting to a previously unused value during stack-update will trigger
80 package update on all nodes
83 default: '' # Defaults to Heat created hostname
87 description: Optional mapping to override hostnames
88 NetworkDeploymentActions:
89 type: comma_delimited_list
91 Heat action when to apply network configuration changes
96 SoftwareConfigTransport:
97 default: POLL_SERVER_CFN
99 How the server should receive the metadata required for software configuration.
102 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
106 The DNS domain used for the hosts. This should match the dhcp_domain
107 configured in the Undercloud neutron. Defaults to localdomain.
111 Extra properties or metadata passed to Nova for the created nodes in
112 the overcloud. It's accessible via the Nova metadata API.
114 ControllerSchedulerHints:
116 description: Optional scheduler hints to pass to nova
118 ServiceConfigSettings:
122 type: comma_delimited_list
124 MonitoringSubscriptions:
125 type: comma_delimited_list
129 description: Command which will be run whenever configuration data changes
130 default: os-refresh-config --timeout 14400
135 type: comma_delimited_list
140 description: Do not use deprecated params, they will be removed.
142 - controllerExtraConfig
147 type: OS::TripleO::Server
150 command: {get_param: ConfigCommand}
152 image: {get_param: controllerImage}
153 image_update_policy: {get_param: ImageUpdatePolicy}
154 flavor: {get_param: OvercloudControlFlavor}
155 key_name: {get_param: KeyName}
158 user_data_format: SOFTWARE_CONFIG
159 user_data: {get_resource: UserData}
162 template: {get_param: Hostname}
163 params: {get_param: HostnameMap}
164 software_config_transport: {get_param: SoftwareConfigTransport}
165 metadata: {get_param: ServerMetadata}
166 scheduler_hints: {get_param: ControllerSchedulerHints}
168 # Combine the NodeAdminUserData and NodeUserData mime archives
170 type: OS::Heat::MultipartMime
173 - config: {get_resource: NodeAdminUserData}
175 - config: {get_resource: NodeUserData}
178 # Creates the "heat-admin" user if configured via the environment
179 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
181 type: OS::TripleO::NodeAdminUserData
183 # For optional operator additional userdata
184 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
186 type: OS::TripleO::NodeUserData
189 type: OS::TripleO::Controller::Ports::ExternalPort
191 IPPool: {get_param: ControllerIPs}
192 NodeIndex: {get_param: NodeIndex}
193 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
196 type: OS::TripleO::Controller::Ports::InternalApiPort
198 IPPool: {get_param: ControllerIPs}
199 NodeIndex: {get_param: NodeIndex}
200 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
203 type: OS::TripleO::Controller::Ports::StoragePort
205 IPPool: {get_param: ControllerIPs}
206 NodeIndex: {get_param: NodeIndex}
207 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
210 type: OS::TripleO::Controller::Ports::StorageMgmtPort
212 IPPool: {get_param: ControllerIPs}
213 NodeIndex: {get_param: NodeIndex}
214 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
217 type: OS::TripleO::Controller::Ports::TenantPort
219 IPPool: {get_param: ControllerIPs}
220 NodeIndex: {get_param: NodeIndex}
221 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
224 type: OS::TripleO::Controller::Ports::ManagementPort
226 IPPool: {get_param: ControllerIPs}
227 NodeIndex: {get_param: NodeIndex}
228 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
231 type: OS::TripleO::Network::Ports::NetIpMap
233 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
234 ExternalIp: {get_attr: [ExternalPort, ip_address]}
235 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
236 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
237 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
238 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
239 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
240 StorageIp: {get_attr: [StoragePort, ip_address]}
241 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
242 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
243 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
244 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
245 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
246 TenantIp: {get_attr: [TenantPort, ip_address]}
247 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
248 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
249 ManagementIp: {get_attr: [ManagementPort, ip_address]}
250 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
251 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
254 type: OS::TripleO::Controller::Net::SoftwareConfig
256 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
257 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
258 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
259 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
260 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
261 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
262 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
265 type: OS::TripleO::SoftwareDeployment
267 name: NetworkDeployment
268 config: {get_resource: NetworkConfig}
269 server: {get_resource: Controller}
270 actions: {get_param: NetworkDeploymentActions}
273 interface_name: {get_param: NeutronPublicInterface}
275 # Resource for site-specific injection of root certificate
277 depends_on: NetworkDeployment
278 type: OS::TripleO::NodeTLSCAData
280 server: {get_resource: Controller}
282 # Resource for site-specific passing of private keys/certificates
284 depends_on: NodeTLSCAData
285 type: OS::TripleO::NodeTLSData
287 server: {get_resource: Controller}
288 NodeIndex: {get_param: NodeIndex}
291 ControllerDeployment:
292 type: OS::TripleO::SoftwareDeployment
293 depends_on: NetworkDeployment
295 name: ControllerDeployment
296 config: {get_resource: ControllerConfig}
297 server: {get_resource: Controller}
299 bootstack_nodeid: {get_attr: [Controller, name]}
300 enable_load_balancer: {get_param: EnableLoadBalancer}
301 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
303 # Map heat metadata into hiera datafiles
305 type: OS::Heat::StructuredConfig
307 group: os-apply-config
312 - heat_config_%{::deploy_config_name}
313 - controller_extraconfig
318 - bootstrap_node # provided by BootstrapNodeConfig
319 - all_nodes # provided by allNodesConfig
320 - vip_data # provided by allNodesConfig
322 - cinder_dellsc_data # Optionally provided by ControllerExtraConfigPre
323 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
324 - cinder_eqlx_data # Optionally provided by ControllerExtraConfigPre
325 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
326 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
327 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
328 - midonet_data #Optionally provided by AllNodesExtraConfig
329 - cisco_aci_data # Optionally provided by ControllerExtraConfigPre
330 merge_behavior: deeper
334 service_names: {get_param: ServiceNames}
335 sensu::subscriptions: {get_param: MonitoringSubscriptions}
339 - {get_param: ServiceConfigSettings}
340 - values: {get_attr: [NetIpMap, net_ip_map]}
341 controller_extraconfig:
344 - {get_param: controllerExtraConfig}
345 - {get_param: ControllerExtraConfig}
347 mapped_data: {get_param: ExtraConfig}
349 mapped_data: # data supplied directly to this deployment configuration, etc
350 bootstack_nodeid: {get_input: bootstack_nodeid}
353 enable_load_balancer: {get_input: enable_load_balancer}
356 tripleo::haproxy::service_certificate: {get_attr: [NodeTLSData, deployed_ssl_certificate_path]}
357 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
358 tripleo::profile::base::logging::fluentd::fluentd_sources: {get_param: LoggingSources}
359 tripleo::profile::base::logging::fluentd::fluentd_groups: {get_param: LoggingGroups}
361 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
362 ControllerExtraConfigPre:
363 depends_on: ControllerDeployment
364 type: OS::TripleO::ControllerExtraConfigPre
366 server: {get_resource: Controller}
368 # Hook for site-specific additional pre-deployment config,
369 # applying to all nodes, e.g node registration/unregistration
371 depends_on: [ControllerExtraConfigPre, NodeTLSData]
372 type: OS::TripleO::NodeExtraConfig
374 server: {get_resource: Controller}
377 type: OS::TripleO::Tasks::PackageUpdate
380 type: OS::Heat::SoftwareDeployment
382 name: UpdateDeployment
383 config: {get_resource: UpdateConfig}
384 server: {get_resource: Controller}
387 get_param: UpdateIdentifier
391 description: IP address of the server in the ctlplane network
392 value: {get_attr: [Controller, networks, ctlplane, 0]}
394 description: IP address of the server in the external network
395 value: {get_attr: [ExternalPort, ip_address]}
396 internal_api_ip_address:
397 description: IP address of the server in the internal_api network
398 value: {get_attr: [InternalApiPort, ip_address]}
400 description: IP address of the server in the storage network
401 value: {get_attr: [StoragePort, ip_address]}
402 storage_mgmt_ip_address:
403 description: IP address of the server in the storage_mgmt network
404 value: {get_attr: [StorageMgmtPort, ip_address]}
406 description: IP address of the server in the tenant network
407 value: {get_attr: [TenantPort, ip_address]}
408 management_ip_address:
409 description: IP address of the server in the management network
410 value: {get_attr: [ManagementPort, ip_address]}
412 description: Hostname of the server
413 value: {get_attr: [Controller, name]}
416 Server's IP address and hostname in the /etc/hosts format
420 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
421 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
422 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
423 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
424 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
425 TENANTIP TENANTHOST.DOMAIN TENANTHOST
426 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
427 CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
429 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
430 DOMAIN: {get_param: CloudDomain}
431 PRIMARYHOST: {get_attr: [Controller, name]}
432 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
436 - - {get_attr: [Controller, name]}
438 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
442 - - {get_attr: [Controller, name]}
444 STORAGEIP: {get_attr: [StoragePort, ip_address]}
448 - - {get_attr: [Controller, name]}
450 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
454 - - {get_attr: [Controller, name]}
456 TENANTIP: {get_attr: [TenantPort, ip_address]}
460 - - {get_attr: [Controller, name]}
462 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
466 - - {get_attr: [Controller, name]}
468 CTLPLANEIP: {get_attr: [Controller, networks, ctlplane, 0]}
472 - - {get_attr: [Controller, name]}
474 nova_server_resource:
475 description: Heat resource handle for the Nova compute server
477 {get_resource: Controller}
479 description: MD5 checksum of the TLS Key Modulus
480 value: {get_attr: [NodeTLSData, key_modulus_md5]}
481 tls_cert_modulus_md5:
482 description: MD5 checksum of the TLS Certificate Modulus
483 value: {get_attr: [NodeTLSData, cert_modulus_md5]}