1 heat_template_version: 2016-04-08
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
17 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
20 default: overcloud.internalapi.localdomain
22 The DNS name of this cloud's internal API endpoint. E.g.
23 'ci-overcloud.internalapi.tripleo.org'.
26 default: overcloud.storage.localdomain
28 The DNS name of this cloud's storage endpoint. E.g.
29 'ci-overcloud.storage.tripleo.org'.
31 CloudNameStorageManagement:
32 default: overcloud.storagemgmt.localdomain
34 The DNS name of this cloud's storage management endpoint. E.g.
35 'ci-overcloud.storagemgmt.tripleo.org'.
38 default: overcloud.management.localdomain
40 The DNS name of this cloud's storage management endpoint. E.g.
41 'ci-overcloud.management.tripleo.org'.
45 description: Should be used for arbitrary ips.
47 InternalApiVirtualFixedIPs:
50 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
51 [{'ip_address':'1.2.3.4'}]
53 NeutronControlPlaneID:
56 description: Neutron ID or name for ctlplane network.
57 NeutronPublicInterface:
59 description: What interface to bridge onto br-ex for network nodes.
61 PublicVirtualFixedIPs:
64 Control the IP allocation for the PublicVirtualInterface port. E.g.
65 [{'ip_address':'1.2.3.4'}]
70 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
71 StorageVirtualFixedIPs:
74 Control the IP allocation for the StorageVirtualInterface port. E.g.
75 [{'ip_address':'1.2.3.4'}]
77 StorageMgmtVirtualFixedIPs:
80 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
81 [{'ip_address':'1.2.3.4'}]
84 default: 'localdomain'
87 The DNS domain used for the hosts. This should match the dhcp_domain
88 configured in the Undercloud neutron. Defaults to localdomain.
92 Extra properties or metadata passed to Nova for the created nodes in
93 the overcloud. It's accessible via the Nova metadata API.
96 # Controller-specific params
100 controllerExtraConfig:
103 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
108 Additional configuration to inject into the cluster. The format required
109 may be implementation specific, e.g puppet hieradata. Any role specific
110 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
113 description: A random string to be used as a salt when hashing to determine mappings in the ring.
118 # Compute-specific params
122 HypervisorNeutronPhysicalBridge:
125 An OVS bridge to create on each hypervisor. This defaults to br-ex the
126 same as the control plane nodes, as we have a uniform configuration of
127 the openvswitch agent. Typically should not need to be changed.
129 HypervisorNeutronPublicInterface:
131 description: What interface to add to the HypervisorNeutronPhysicalBridge.
136 - OS::TripleO::Services::CephMon
137 - OS::TripleO::Services::CephExternal
138 - OS::TripleO::Services::CinderApi
139 - OS::TripleO::Services::CinderBackup
140 - OS::TripleO::Services::CinderScheduler
141 - OS::TripleO::Services::CinderVolume
142 - OS::TripleO::Services::Core
143 - OS::TripleO::Services::Kernel
144 - OS::TripleO::Services::Keystone
145 - OS::TripleO::Services::GlanceApi
146 - OS::TripleO::Services::GlanceRegistry
147 - OS::TripleO::Services::HeatApi
148 - OS::TripleO::Services::HeatApiCfn
149 - OS::TripleO::Services::HeatApiCloudwatch
150 - OS::TripleO::Services::HeatEngine
151 - OS::TripleO::Services::MySQL
152 - OS::TripleO::Services::NeutronDhcpAgent
153 - OS::TripleO::Services::NeutronL3Agent
154 - OS::TripleO::Services::NeutronMetadataAgent
155 - OS::TripleO::Services::NeutronApi
156 - OS::TripleO::Services::NeutronCorePlugin
157 - OS::TripleO::Services::NeutronOvsAgent
158 - OS::TripleO::Services::RabbitMQ
159 - OS::TripleO::Services::HAproxy
160 - OS::TripleO::Services::Keepalived
161 - OS::TripleO::Services::Memcached
162 - OS::TripleO::Services::Pacemaker
163 - OS::TripleO::Services::Redis
164 - OS::TripleO::Services::NovaConductor
165 - OS::TripleO::Services::MongoDb
166 - OS::TripleO::Services::NovaApi
167 - OS::TripleO::Services::NovaScheduler
168 - OS::TripleO::Services::NovaConsoleauth
169 - OS::TripleO::Services::NovaVncproxy
170 - OS::TripleO::Services::Ntp
171 - OS::TripleO::Services::SwiftProxy
172 - OS::TripleO::Services::SwiftStorage
173 - OS::TripleO::Services::SwiftRingBuilder
174 - OS::TripleO::Services::Snmp
175 - OS::TripleO::Services::Timezone
176 - OS::TripleO::Services::CeilometerApi
177 - OS::TripleO::Services::CeilometerCollector
178 - OS::TripleO::Services::CeilometerExpirer
179 - OS::TripleO::Services::CeilometerAgentCentral
180 - OS::TripleO::Services::CeilometerAgentNotification
181 - OS::TripleO::Services::Horizon
182 - OS::TripleO::Services::GnocchiApi
183 - OS::TripleO::Services::GnocchiMetricd
184 - OS::TripleO::Services::GnocchiStatsd
185 - OS::Tripleo::Services::ManilaApi
186 - OS::Tripleo::Services::ManilaScheduler
187 - OS::Tripleo::Services::ManilaShare
188 - OS::TripleO::Services::AodhApi
189 - OS::TripleO::Services::AodhEvaluator
190 - OS::TripleO::Services::AodhNotifier
191 - OS::TripleO::Services::AodhListener
192 - OS::TripleO::Services::SaharaApi
193 - OS::TripleO::Services::SaharaEngine
194 - OS::TripleO::Services::IronicApi
195 - OS::TripleO::Services::IronicConductor
196 - OS::TripleO::Services::NovaIronic
197 - OS::TripleO::Services::TripleoPackages
198 - OS::TripleO::Services::TripleoFirewall
199 description: A list of service resources (configured in the Heat
200 resource_registry) which represent nested stacks
201 for each service that should get installed on the Controllers.
202 type: comma_delimited_list
206 - OS::TripleO::Services::CephClient
207 - OS::TripleO::Services::CephExternal
208 - OS::TripleO::Services::Timezone
209 - OS::TripleO::Services::Ntp
210 - OS::TripleO::Services::Snmp
211 - OS::TripleO::Services::NovaCompute
212 - OS::TripleO::Services::NovaLibvirt
213 - OS::TripleO::Services::Kernel
214 - OS::TripleO::Services::ComputeNeutronCorePlugin
215 - OS::TripleO::Services::ComputeNeutronOvsAgent
216 - OS::TripleO::Services::ComputeCeilometerAgent
217 - OS::TripleO::Services::ComputeNeutronL3Agent
218 - OS::TripleO::Services::ComputeNeutronMetadataAgent
219 - OS::TripleO::Services::TripleoPackages
220 - OS::TripleO::Services::TripleoFirewall
221 description: A list of service resources (configured in the Heat
222 resource_registry) which represent nested stacks
223 for each service that should get installed on the Compute Nodes.
224 type: comma_delimited_list
226 # Block storage specific parameters
230 BlockStorageExtraConfig:
233 BlockStorage specific configuration to inject into the cluster. Same
234 structure as ExtraConfig.
236 BlockStorageServices:
238 - OS::TripleO::Services::CinderVolume
239 - OS::TripleO::Services::Kernel
240 - OS::TripleO::Services::Ntp
241 - OS::TripleO::Services::Timezone
242 - OS::TripleO::Services::Snmp
243 - OS::TripleO::Services::TripleoPackages
244 - OS::TripleO::Services::TripleoFirewall
245 description: A list of service resources (configured in the Heat
246 resource_registry) which represent nested stacks
247 for each service that should get installed on the BlockStorage nodes.
248 type: comma_delimited_list
250 # Object storage specific parameters
254 ObjectStorageExtraConfig:
257 ObjectStorage specific configuration to inject into the cluster. Same
258 structure as ExtraConfig.
260 ObjectStorageServices:
262 - OS::TripleO::Services::Kernel
263 - OS::TripleO::Services::Ntp
264 - OS::TripleO::Services::SwiftStorage
265 - OS::TripleO::Services::SwiftRingBuilder
266 - OS::TripleO::Services::Snmp
267 - OS::TripleO::Services::Timezone
268 - OS::TripleO::Services::TripleoPackages
269 - OS::TripleO::Services::TripleoFirewall
270 description: A list of service resources (configured in the Heat
271 resource_registry) which represent nested stacks
272 for each service that should get installed on the ObjectStorage nodes.
273 Note this role currently only supports steps 2, 3 and 4 configuration.
274 type: comma_delimited_list
277 # Ceph storage specific parameters
281 CephStorageExtraConfig:
284 CephStorage specific configuration to inject into the cluster. Same
285 structure as ExtraConfig.
289 - OS::TripleO::Services::CephOSD
290 - OS::TripleO::Services::Kernel
291 - OS::TripleO::Services::Ntp
292 - OS::TripleO::Services::Timezone
293 - OS::TripleO::Services::TripleoPackages
294 - OS::TripleO::Services::TripleoFirewall
295 description: A list of service resources (configured in the Heat
296 resource_registry) which represent nested stacks
297 for each service that should get installed on the CephStorage nodes.
298 type: comma_delimited_list
300 # Hostname format for each role
301 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
302 # and %stackname% is replaced with OS::stack_name in the template below.
303 # If you want to use the heat generated names, pass '' (empty string).
304 ControllerHostnameFormat:
306 description: Format for Controller node hostnames
307 default: '%stackname%-controller-%index%'
308 ComputeHostnameFormat:
310 description: Format for Compute node hostnames
311 default: '%stackname%-novacompute-%index%'
312 BlockStorageHostnameFormat:
314 description: Format for BlockStorage node hostnames
315 default: '%stackname%-blockstorage-%index%'
316 ObjectStorageHostnameFormat:
318 description: Format for SwiftStorage node hostnames
319 default: '%stackname%-objectstorage-%index%'
320 CephStorageHostnameFormat:
322 description: Format for CephStorage node hostnames
323 default: '%stackname%-cephstorage-%index%'
325 # Identifiers to trigger tasks on nodes
330 Setting to a previously unused value during stack-update will trigger
331 package update on all nodes
336 Setting this to a unique value will re-run any deployment tasks which
337 perform configuration on a Heat stack-update.
339 # If you want to remove a specific node from a resource group, you can pass
340 # the node name or id as a <Group>RemovalPolicies parameter, for example:
341 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
342 ControllerRemovalPolicies:
346 List of resources to be removed from ControllerResourceGroup when
347 doing an update which requires removal of specific resources.
348 ComputeRemovalPolicies:
352 List of resources to be removed from ComputeResourceGroup when
353 doing an update which requires removal of specific resources.
354 BlockStorageRemovalPolicies:
358 List of resources to be removed from BlockStorageResourceGroup when
359 doing an update which requires removal of specific resources.
360 ObjectStorageRemovalPolicies:
364 List of resources to be removed from ObjectStorageResourceGroup when
365 doing an update which requires removal of specific resources.
366 CephStorageRemovalPolicies:
370 List of resources to be removed from CephStorageResourceGroup when
371 doing an update which requires removal of specific resources.
375 description: Do not use deprecated params, they will be removed.
377 - controllerExtraConfig
382 HeatAuthEncryptionKey:
383 type: OS::Heat::RandomString
386 type: OS::Heat::RandomString
391 type: OS::Heat::RandomString
396 type: OS::TripleO::ServiceNetMap
399 type: OS::TripleO::EndpointMap
402 external: {get_param: CloudName}
403 internal_api: {get_param: CloudNameInternal}
404 storage: {get_param: CloudNameStorage}
405 storage_mgmt: {get_param: CloudNameStorageManagement}
406 management: {get_param: CloudNameManagement}
407 NetIpMap: {get_attr: [VipMap, net_ip_map]}
408 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
410 ControllerServiceChain:
411 type: OS::TripleO::Services
413 Services: {get_param: ControllerServices}
414 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
415 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
416 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
419 type: OS::Heat::ResourceGroup
422 count: {get_param: ControllerCount}
423 removal_policies: {get_param: ControllerRemovalPolicies}
425 type: OS::TripleO::Controller
427 CloudDomain: {get_param: CloudDomain}
428 controllerExtraConfig: {get_param: controllerExtraConfig}
429 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
430 HorizonSecret: {get_resource: HorizonSecret}
431 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
432 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
433 PcsdPassword: {get_resource: PcsdPassword}
434 RabbitCookie: {get_attr: [RabbitCookie, value]}
435 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
436 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
437 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
438 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
439 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
442 template: {get_param: ControllerHostnameFormat}
444 '%stackname%': {get_param: 'OS::stack_name'}
446 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
447 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
450 type: OS::TripleO::Services
452 Services: {get_param: ComputeServices}
453 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
454 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
455 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
458 type: OS::Heat::ResourceGroup
461 count: {get_param: ComputeCount}
462 removal_policies: {get_param: ComputeRemovalPolicies}
464 type: OS::TripleO::Compute
466 CloudDomain: {get_param: CloudDomain}
467 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
468 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
469 # L3 HA and Failover is not relevant for Computes, should be removed
470 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
471 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
472 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
473 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
476 template: {get_param: ComputeHostnameFormat}
478 '%stackname%': {get_param: 'OS::stack_name'}
480 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
481 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
483 BlockStorageServiceChain:
484 type: OS::TripleO::Services
486 Services: {get_param: BlockStorageServices}
487 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
488 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
489 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
492 type: OS::Heat::ResourceGroup
495 count: {get_param: BlockStorageCount}
496 removal_policies: {get_param: BlockStorageRemovalPolicies}
498 type: OS::TripleO::BlockStorage
500 UpdateIdentifier: {get_param: UpdateIdentifier}
503 template: {get_param: BlockStorageHostnameFormat}
505 '%stackname%': {get_param: 'OS::stack_name'}
506 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
507 ExtraConfig: {get_param: ExtraConfig}
508 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
509 CloudDomain: {get_param: CloudDomain}
510 ServerMetadata: {get_param: ServerMetadata}
512 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
513 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
515 ObjectStorageServiceChain:
516 type: OS::TripleO::Services
518 Services: {get_param: ObjectStorageServices}
519 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
520 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
521 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
524 type: OS::Heat::ResourceGroup
527 count: {get_param: ObjectStorageCount}
528 removal_policies: {get_param: ObjectStorageRemovalPolicies}
530 type: OS::TripleO::ObjectStorage
532 HashSuffix: {get_param: SwiftHashSuffix}
533 UpdateIdentifier: {get_param: UpdateIdentifier}
534 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
537 template: {get_param: ObjectStorageHostnameFormat}
539 '%stackname%': {get_param: 'OS::stack_name'}
540 ExtraConfig: {get_param: ExtraConfig}
541 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
542 CloudDomain: {get_param: CloudDomain}
543 ServerMetadata: {get_param: ServerMetadata}
545 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
546 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
548 CephStorageServiceChain:
549 type: OS::TripleO::Services
551 Services: {get_param: CephStorageServices}
552 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
553 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
554 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
557 type: OS::Heat::ResourceGroup
560 count: {get_param: CephStorageCount}
561 removal_policies: {get_param: CephStorageRemovalPolicies}
563 type: OS::TripleO::CephStorage
565 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
566 UpdateIdentifier: {get_param: UpdateIdentifier}
569 template: {get_param: CephStorageHostnameFormat}
571 '%stackname%': {get_param: 'OS::stack_name'}
572 ExtraConfig: {get_param: ExtraConfig}
573 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
574 CloudDomain: {get_param: CloudDomain}
575 ServerMetadata: {get_param: ServerMetadata}
577 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
578 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
581 type: OS::TripleO::Network::Ports::NetIpListMap
583 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
584 ExternalIpList: {get_attr: [Controller, external_ip_address]}
585 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
586 StorageIpList: {get_attr: [Controller, storage_ip_address]}
587 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
588 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
589 ManagementIpList: {get_attr: [Controller, management_ip_address]}
592 type: OS::TripleO::AllNodes::SoftwareConfig
597 - {get_attr: [Compute, hosts_entry]}
600 - {get_attr: [Controller, hosts_entry]}
603 - {get_attr: [BlockStorage, hosts_entry]}
606 - {get_attr: [ObjectStorage, hosts_entry]}
609 - {get_attr: [CephStorage, hosts_entry]}
610 controller_ips: {get_attr: [Controller, ip_address]}
611 controller_names: {get_attr: [Controller, hostname]}
612 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
613 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MongodbNetwork]}]}
614 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}]}
615 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
616 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
617 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
618 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
619 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
620 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
621 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
622 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
623 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
624 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
625 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
626 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
627 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
628 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
629 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
630 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
631 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
632 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
633 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
634 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
635 ceph_mon_node_names: {get_attr: [Controller, hostname]}
636 DeployIdentifier: {get_param: DeployIdentifier}
637 UpdateIdentifier: {get_param: UpdateIdentifier}
640 type: OS::Heat::RandomString
644 MysqlClusterUniquePart:
645 type: OS::Heat::RandomString
650 type: OS::Heat::RandomString
653 salt: {get_param: RabbitCookieSalt}
656 type: OS::TripleO::DefaultPasswords
658 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
659 DefaultMysqlClusterPassword: {get_attr: [MysqlClusterUniquePart, value]}
660 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
661 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
662 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
663 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
665 # creates the network architecture
667 type: OS::TripleO::Network
670 type: OS::Neutron::Port
673 name: control_virtual_ip
674 network: {get_param: NeutronControlPlaneID}
675 fixed_ips: {get_param: ControlFixedIPs}
676 replacement_policy: AUTO
680 type: OS::TripleO::Network::Ports::RedisVipPort
682 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
683 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
684 PortName: redis_virtual_ip
685 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
688 # The public VIP is on the External net, falls back to ctlplane
691 type: OS::TripleO::Network::Ports::ExternalVipPort
693 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
694 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
695 PortName: public_virtual_ip
696 FixedIPs: {get_param: PublicVirtualFixedIPs}
698 InternalApiVirtualIP:
700 type: OS::TripleO::Network::Ports::InternalApiVipPort
702 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
703 PortName: internal_api_virtual_ip
704 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
708 type: OS::TripleO::Network::Ports::StorageVipPort
710 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
711 PortName: storage_virtual_ip
712 FixedIPs: {get_param: StorageVirtualFixedIPs}
714 StorageMgmtVirtualIP:
716 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
718 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
719 PortName: storage_management_virtual_ip
720 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
723 type: OS::TripleO::Network::Ports::NetVipMap
725 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
726 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
727 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
728 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
729 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
730 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
731 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
732 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
733 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
734 # No tenant or management VIP required
737 type: OS::TripleO::VipConfig
740 type: OS::Heat::StructuredDeployments
743 config: {get_resource: VipConfig}
744 servers: {get_attr: [Controller, attributes, nova_server_resource]}
746 # service VIP mappings
747 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
748 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
749 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
750 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
751 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
752 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
753 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
754 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
755 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
756 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
757 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
758 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
759 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
760 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
761 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
762 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
763 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
764 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
765 # direct configuration of Virtual IPs for each network
766 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
767 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
768 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
769 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
770 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
771 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
772 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
774 ControllerSwiftDeployment:
775 type: OS::Heat::StructuredDeployments
777 name: ControllerSwiftDeployment
778 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
779 servers: {get_attr: [Controller, attributes, nova_server_resource]}
781 ObjectStorageSwiftDeployment:
782 type: OS::Heat::StructuredDeployments
784 name: ObjectStorageSwiftDeployment
785 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
786 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
788 SwiftDevicesAndProxyConfig:
789 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
791 controller_swift_devices: {get_attr: [Controller, swift_device]}
792 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
793 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
795 ControllerAllNodesDeployment:
796 type: OS::Heat::StructuredDeployments
798 name: ControllerAllNodesDeployment
799 config: {get_attr: [allNodesConfig, config_id]}
800 servers: {get_attr: [Controller, attributes, nova_server_resource]}
802 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
803 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
805 ComputeAllNodesDeployment:
806 type: OS::Heat::StructuredDeployments
808 name: ComputeAllNodesDeployment
809 config: {get_attr: [allNodesConfig, config_id]}
810 servers: {get_attr: [Compute, attributes, nova_server_resource]}
812 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
813 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
815 BlockStorageAllNodesDeployment:
816 type: OS::Heat::StructuredDeployments
818 name: BlockStorageAllNodesDeployment
819 config: {get_attr: [allNodesConfig, config_id]}
820 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
822 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
823 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
825 ObjectStorageAllNodesDeployment:
826 type: OS::Heat::StructuredDeployments
828 name: ObjectStorageAllNodesDeployment
829 config: {get_attr: [allNodesConfig, config_id]}
830 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
832 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
833 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
835 CephStorageAllNodesDeployment:
836 type: OS::Heat::StructuredDeployments
838 name: CephStorageAllNodesDeployment
839 config: {get_attr: [allNodesConfig, config_id]}
840 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
842 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
843 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
845 # All Nodes Validations
846 AllNodesValidationConfig:
847 type: OS::TripleO::AllNodes::Validation
852 - - {get_attr: [Controller, resource.0.external_ip_address]}
853 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
854 - {get_attr: [Controller, resource.0.storage_ip_address]}
855 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
856 - {get_attr: [Controller, resource.0.tenant_ip_address]}
857 - {get_attr: [Controller, resource.0.management_ip_address]}
859 ControllerAllNodesValidationDeployment:
860 type: OS::Heat::StructuredDeployments
861 depends_on: ControllerAllNodesDeployment
863 name: ControllerAllNodesValidationDeployment
864 config: {get_resource: AllNodesValidationConfig}
865 servers: {get_attr: [Controller, attributes, nova_server_resource]}
867 ComputeAllNodesValidationDeployment:
868 type: OS::Heat::StructuredDeployments
869 depends_on: ComputeAllNodesDeployment
871 name: ComputeAllNodesValidationDeployment
872 config: {get_resource: AllNodesValidationConfig}
873 servers: {get_attr: [Compute, attributes, nova_server_resource]}
875 BlockStorageAllNodesValidationDeployment:
876 type: OS::Heat::StructuredDeployments
877 depends_on: BlockStorageAllNodesDeployment
879 name: BlockStorageAllNodesValidationDeployment
880 config: {get_resource: AllNodesValidationConfig}
881 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
883 ObjectStorageAllNodesValidationDeployment:
884 type: OS::Heat::StructuredDeployments
885 depends_on: ObjectStorageAllNodesDeployment
887 name: ObjectStorageAllNodesValidationDeployment
888 config: {get_resource: AllNodesValidationConfig}
889 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
891 CephStorageAllNodesValidationDeployment:
892 type: OS::Heat::StructuredDeployments
893 depends_on: CephStorageAllNodesDeployment
895 name: CephStorageAllNodesValidationDeployment
896 config: {get_resource: AllNodesValidationConfig}
897 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
900 type: OS::TripleO::Tasks::UpdateWorkflow
902 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
903 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
904 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
905 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
906 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
908 deploy_identifier: {get_param: DeployIdentifier}
909 update_identifier: {get_param: UpdateIdentifier}
911 # Optional ExtraConfig for all nodes - all roles are passed in here, but
912 # the nested template may configure each role differently (or not at all)
914 type: OS::TripleO::AllNodesExtraConfig
917 - ComputeAllNodesValidationDeployment
918 - BlockStorageAllNodesValidationDeployment
919 - ObjectStorageAllNodesValidationDeployment
920 - CephStorageAllNodesValidationDeployment
921 - ControllerAllNodesValidationDeployment
923 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
924 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
925 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
926 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
927 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
929 # Nested stack deployment runs after all other controller deployments
930 ControllerNodesPostDeployment:
931 type: OS::TripleO::ControllerPostDeployment
932 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
934 servers: {get_attr: [Controller, attributes, nova_server_resource]}
935 RoleData: {get_attr: [ControllerServiceChain, role_data]}
937 ComputeNodesPostDeployment:
938 type: OS::TripleO::ComputePostDeployment
939 depends_on: [ComputeAllNodesDeployment]
941 servers: {get_attr: [Compute, attributes, nova_server_resource]}
942 RoleData: {get_attr: [ComputeServiceChain, role_data]}
944 ObjectStorageNodesPostDeployment:
945 type: OS::TripleO::ObjectStoragePostDeployment
946 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
948 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
949 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
951 BlockStorageNodesPostDeployment:
952 type: OS::TripleO::BlockStoragePostDeployment
953 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
955 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
956 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
958 CephStorageNodesPostDeployment:
959 type: OS::TripleO::CephStoragePostDeployment
960 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
962 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
963 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
967 description: URL for the Overcloud Keystone service
968 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
970 description: Keystone Admin VIP endpoint
971 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
973 description: Controller VIP for public API endpoints
974 value: {get_attr: [VipMap, net_ip_map, external]}
976 description: VIP for Aodh API internal endpoint
977 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
978 CeilometerInternalVip:
979 description: VIP for Ceilometer API internal endpoint
980 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
982 description: VIP for Cinder API internal endpoint
983 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
985 description: VIP for Glance API internal endpoint
986 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
988 description: VIP for Gnocchi API internal endpoint
989 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
991 description: VIP for Heat API internal endpoint
992 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
994 description: VIP for Ironic API internal endpoint
995 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
997 description: VIP for Keystone API internal endpoint
998 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
1000 description: VIP for Manila API internal endpoint
1001 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
1003 description: VIP for Neutron API internal endpoint
1004 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
1006 description: VIP for Nova API internal endpoint
1007 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
1009 description: VIP for Sahara API internal endpoint
1010 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1012 description: VIP for Swift Proxy internal endpoint
1013 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1016 Mapping of the resources with the needed info for their endpoints.
1017 This includes the protocol used, the IP, port and also a full
1018 representation of the URI.
1019 value: {get_attr: [EndpointMap, endpoint_map]}
1022 The content that should be appended to your /etc/hosts if you want to get
1023 hostname-based access to the deployed nodes (useful for testing without
1025 value: {get_attr: [allNodesConfig, hosts_entries]}
1027 description: The services enabled on each role
1029 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1030 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1031 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1032 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1033 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}