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
134 description: Do not use deprecated params, they will be removed.
136 - controllerExtraConfig
141 type: OS::TripleO::Server
144 command: {get_param: ConfigCommand}
146 image: {get_param: controllerImage}
147 image_update_policy: {get_param: ImageUpdatePolicy}
148 flavor: {get_param: OvercloudControlFlavor}
149 key_name: {get_param: KeyName}
152 user_data_format: SOFTWARE_CONFIG
153 user_data: {get_resource: UserData}
156 template: {get_param: Hostname}
157 params: {get_param: HostnameMap}
158 software_config_transport: {get_param: SoftwareConfigTransport}
159 metadata: {get_param: ServerMetadata}
160 scheduler_hints: {get_param: ControllerSchedulerHints}
162 # Combine the NodeAdminUserData and NodeUserData mime archives
164 type: OS::Heat::MultipartMime
167 - config: {get_resource: NodeAdminUserData}
169 - config: {get_resource: NodeUserData}
172 # Creates the "heat-admin" user if configured via the environment
173 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
175 type: OS::TripleO::NodeAdminUserData
177 # For optional operator additional userdata
178 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
180 type: OS::TripleO::NodeUserData
183 type: OS::TripleO::Controller::Ports::ExternalPort
185 IPPool: {get_param: ControllerIPs}
186 NodeIndex: {get_param: NodeIndex}
187 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
190 type: OS::TripleO::Controller::Ports::InternalApiPort
192 IPPool: {get_param: ControllerIPs}
193 NodeIndex: {get_param: NodeIndex}
194 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
197 type: OS::TripleO::Controller::Ports::StoragePort
199 IPPool: {get_param: ControllerIPs}
200 NodeIndex: {get_param: NodeIndex}
201 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
204 type: OS::TripleO::Controller::Ports::StorageMgmtPort
206 IPPool: {get_param: ControllerIPs}
207 NodeIndex: {get_param: NodeIndex}
208 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
211 type: OS::TripleO::Controller::Ports::TenantPort
213 IPPool: {get_param: ControllerIPs}
214 NodeIndex: {get_param: NodeIndex}
215 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
218 type: OS::TripleO::Controller::Ports::ManagementPort
220 IPPool: {get_param: ControllerIPs}
221 NodeIndex: {get_param: NodeIndex}
222 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
225 type: OS::TripleO::Network::Ports::NetIpMap
227 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
228 ExternalIp: {get_attr: [ExternalPort, ip_address]}
229 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
230 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
231 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
232 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
233 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
234 StorageIp: {get_attr: [StoragePort, ip_address]}
235 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
236 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
237 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
238 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
239 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
240 TenantIp: {get_attr: [TenantPort, ip_address]}
241 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
242 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
243 ManagementIp: {get_attr: [ManagementPort, ip_address]}
244 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
245 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
248 type: OS::TripleO::Controller::Net::SoftwareConfig
250 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
251 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
252 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
253 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
254 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
255 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
256 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
259 type: OS::TripleO::SoftwareDeployment
261 name: NetworkDeployment
262 config: {get_resource: NetworkConfig}
263 server: {get_resource: Controller}
264 actions: {get_param: NetworkDeploymentActions}
267 interface_name: {get_param: NeutronPublicInterface}
269 # Resource for site-specific injection of root certificate
271 depends_on: NetworkDeployment
272 type: OS::TripleO::NodeTLSCAData
274 server: {get_resource: Controller}
276 # Resource for site-specific passing of private keys/certificates
278 depends_on: NodeTLSCAData
279 type: OS::TripleO::NodeTLSData
281 server: {get_resource: Controller}
282 NodeIndex: {get_param: NodeIndex}
285 ControllerDeployment:
286 type: OS::TripleO::SoftwareDeployment
287 depends_on: NetworkDeployment
289 name: ControllerDeployment
290 config: {get_resource: ControllerConfig}
291 server: {get_resource: Controller}
293 bootstack_nodeid: {get_attr: [Controller, name]}
294 enable_load_balancer: {get_param: EnableLoadBalancer}
295 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
297 # Map heat metadata into hiera datafiles
299 type: OS::Heat::StructuredConfig
301 group: os-apply-config
306 - heat_config_%{::deploy_config_name}
307 - controller_extraconfig
312 - bootstrap_node # provided by BootstrapNodeConfig
313 - all_nodes # provided by allNodesConfig
314 - vip_data # provided by allNodesConfig
316 - cinder_dellsc_data # Optionally provided by ControllerExtraConfigPre
317 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
318 - cinder_eqlx_data # Optionally provided by ControllerExtraConfigPre
319 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
320 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
321 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
322 - midonet_data #Optionally provided by AllNodesExtraConfig
323 - cisco_aci_data # Optionally provided by ControllerExtraConfigPre
324 merge_behavior: deeper
328 service_names: {get_param: ServiceNames}
329 sensu::subscriptions: {get_param: MonitoringSubscriptions}
333 - {get_param: ServiceConfigSettings}
334 - values: {get_attr: [NetIpMap, net_ip_map]}
335 controller_extraconfig:
338 - {get_param: controllerExtraConfig}
339 - {get_param: ControllerExtraConfig}
341 mapped_data: {get_param: ExtraConfig}
343 mapped_data: # data supplied directly to this deployment configuration, etc
344 bootstack_nodeid: {get_input: bootstack_nodeid}
347 enable_load_balancer: {get_input: enable_load_balancer}
350 tripleo::haproxy::service_certificate: {get_attr: [NodeTLSData, deployed_ssl_certificate_path]}
351 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
353 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
354 ControllerExtraConfigPre:
355 depends_on: ControllerDeployment
356 type: OS::TripleO::ControllerExtraConfigPre
358 server: {get_resource: Controller}
360 # Hook for site-specific additional pre-deployment config,
361 # applying to all nodes, e.g node registration/unregistration
363 depends_on: [ControllerExtraConfigPre, NodeTLSData]
364 type: OS::TripleO::NodeExtraConfig
366 server: {get_resource: Controller}
369 type: OS::TripleO::Tasks::PackageUpdate
372 type: OS::Heat::SoftwareDeployment
374 name: UpdateDeployment
375 config: {get_resource: UpdateConfig}
376 server: {get_resource: Controller}
379 get_param: UpdateIdentifier
383 description: IP address of the server in the ctlplane network
384 value: {get_attr: [Controller, networks, ctlplane, 0]}
386 description: IP address of the server in the external network
387 value: {get_attr: [ExternalPort, ip_address]}
388 internal_api_ip_address:
389 description: IP address of the server in the internal_api network
390 value: {get_attr: [InternalApiPort, ip_address]}
392 description: IP address of the server in the storage network
393 value: {get_attr: [StoragePort, ip_address]}
394 storage_mgmt_ip_address:
395 description: IP address of the server in the storage_mgmt network
396 value: {get_attr: [StorageMgmtPort, ip_address]}
398 description: IP address of the server in the tenant network
399 value: {get_attr: [TenantPort, ip_address]}
400 management_ip_address:
401 description: IP address of the server in the management network
402 value: {get_attr: [ManagementPort, ip_address]}
404 description: Hostname of the server
405 value: {get_attr: [Controller, name]}
408 Server's IP address and hostname in the /etc/hosts format
412 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
413 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
414 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
415 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
416 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
417 TENANTIP TENANTHOST.DOMAIN TENANTHOST
418 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
420 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
421 DOMAIN: {get_param: CloudDomain}
422 PRIMARYHOST: {get_attr: [Controller, name]}
423 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
427 - - {get_attr: [Controller, name]}
429 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
433 - - {get_attr: [Controller, name]}
435 STORAGEIP: {get_attr: [StoragePort, ip_address]}
439 - - {get_attr: [Controller, name]}
441 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
445 - - {get_attr: [Controller, name]}
447 TENANTIP: {get_attr: [TenantPort, ip_address]}
451 - - {get_attr: [Controller, name]}
453 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
457 - - {get_attr: [Controller, name]}
459 nova_server_resource:
460 description: Heat resource handle for the Nova compute server
462 {get_resource: Controller}
464 description: MD5 checksum of the TLS Key Modulus
465 value: {get_attr: [NodeTLSData, key_modulus_md5]}
466 tls_cert_modulus_md5:
467 description: MD5 checksum of the TLS Certificate Modulus
468 value: {get_attr: [NodeTLSData, cert_modulus_md5]}