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'}]
86 Control the IP allocation for the virtual IP used by Redis. E.g.
87 [{'ip_address':'1.2.3.4'}]
90 default: 'localdomain'
93 The DNS domain used for the hosts. This should match the dhcp_domain
94 configured in the Undercloud neutron. Defaults to localdomain.
98 Extra properties or metadata passed to Nova for the created nodes in
99 the overcloud. It's accessible via the Nova metadata API.
102 # Controller-specific params
106 controllerExtraConfig:
109 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
114 Additional configuration to inject into the cluster. The format required
115 may be implementation specific, e.g puppet hieradata. Any role specific
116 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
119 # Compute-specific params
123 HypervisorNeutronPhysicalBridge:
126 An OVS bridge to create on each hypervisor. This defaults to br-ex the
127 same as the control plane nodes, as we have a uniform configuration of
128 the openvswitch agent. Typically should not need to be changed.
130 HypervisorNeutronPublicInterface:
132 description: What interface to add to the HypervisorNeutronPhysicalBridge.
137 - OS::TripleO::Services::CACerts
138 - OS::TripleO::Services::CephMon
139 - OS::TripleO::Services::CephExternal
140 - OS::TripleO::Services::CinderApi
141 - OS::TripleO::Services::CinderBackup
142 - OS::TripleO::Services::CinderScheduler
143 - OS::TripleO::Services::CinderVolume
144 - OS::TripleO::Services::Core
145 - OS::TripleO::Services::Kernel
146 - OS::TripleO::Services::Keystone
147 - OS::TripleO::Services::GlanceApi
148 - OS::TripleO::Services::GlanceRegistry
149 - OS::TripleO::Services::HeatApi
150 - OS::TripleO::Services::HeatApiCfn
151 - OS::TripleO::Services::HeatApiCloudwatch
152 - OS::TripleO::Services::HeatEngine
153 - OS::TripleO::Services::MySQL
154 - OS::TripleO::Services::NeutronDhcpAgent
155 - OS::TripleO::Services::NeutronL3Agent
156 - OS::TripleO::Services::NeutronMetadataAgent
157 - OS::TripleO::Services::NeutronApi
158 - OS::TripleO::Services::NeutronCorePlugin
159 - OS::TripleO::Services::NeutronOvsAgent
160 - OS::TripleO::Services::RabbitMQ
161 - OS::TripleO::Services::HAproxy
162 - OS::TripleO::Services::Keepalived
163 - OS::TripleO::Services::Memcached
164 - OS::TripleO::Services::Pacemaker
165 - OS::TripleO::Services::Redis
166 - OS::TripleO::Services::NovaConductor
167 - OS::TripleO::Services::MongoDb
168 - OS::TripleO::Services::NovaApi
169 - OS::TripleO::Services::NovaScheduler
170 - OS::TripleO::Services::NovaConsoleauth
171 - OS::TripleO::Services::NovaVncproxy
172 - OS::TripleO::Services::Ntp
173 - OS::TripleO::Services::SwiftProxy
174 - OS::TripleO::Services::SwiftStorage
175 - OS::TripleO::Services::SwiftRingBuilder
176 - OS::TripleO::Services::Snmp
177 - OS::TripleO::Services::Timezone
178 - OS::TripleO::Services::CeilometerApi
179 - OS::TripleO::Services::CeilometerCollector
180 - OS::TripleO::Services::CeilometerExpirer
181 - OS::TripleO::Services::CeilometerAgentCentral
182 - OS::TripleO::Services::CeilometerAgentNotification
183 - OS::TripleO::Services::Horizon
184 - OS::TripleO::Services::GnocchiApi
185 - OS::TripleO::Services::GnocchiMetricd
186 - OS::TripleO::Services::GnocchiStatsd
187 - OS::Tripleo::Services::ManilaApi
188 - OS::Tripleo::Services::ManilaScheduler
189 - OS::Tripleo::Services::ManilaShare
190 - OS::TripleO::Services::AodhApi
191 - OS::TripleO::Services::AodhEvaluator
192 - OS::TripleO::Services::AodhNotifier
193 - OS::TripleO::Services::AodhListener
194 - OS::TripleO::Services::SaharaApi
195 - OS::TripleO::Services::SaharaEngine
196 - OS::TripleO::Services::IronicApi
197 - OS::TripleO::Services::IronicConductor
198 - OS::TripleO::Services::NovaIronic
199 - OS::TripleO::Services::TripleoPackages
200 - OS::TripleO::Services::TripleoFirewall
201 - OS::TripleO::Services::OpenDaylight
202 - OS::TripleO::Services::SensuClient
203 description: A list of service resources (configured in the Heat
204 resource_registry) which represent nested stacks
205 for each service that should get installed on the Controllers.
206 type: comma_delimited_list
210 - OS::TripleO::Services::CACerts
211 - OS::TripleO::Services::CephClient
212 - OS::TripleO::Services::CephExternal
213 - OS::TripleO::Services::Timezone
214 - OS::TripleO::Services::Ntp
215 - OS::TripleO::Services::Snmp
216 - OS::TripleO::Services::NovaCompute
217 - OS::TripleO::Services::NovaLibvirt
218 - OS::TripleO::Services::Kernel
219 - OS::TripleO::Services::ComputeNeutronCorePlugin
220 - OS::TripleO::Services::ComputeNeutronOvsAgent
221 - OS::TripleO::Services::ComputeCeilometerAgent
222 - OS::TripleO::Services::ComputeNeutronL3Agent
223 - OS::TripleO::Services::ComputeNeutronMetadataAgent
224 - OS::TripleO::Services::TripleoPackages
225 - OS::TripleO::Services::TripleoFirewall
226 - OS::TripleO::Services::NeutronSriovAgent
227 - OS::TripleO::Services::OpenDaylightOvs
228 - OS::TripleO::Services::SensuClient
229 description: A list of service resources (configured in the Heat
230 resource_registry) which represent nested stacks
231 for each service that should get installed on the Compute Nodes.
232 type: comma_delimited_list
234 # Block storage specific parameters
238 BlockStorageExtraConfig:
241 BlockStorage specific configuration to inject into the cluster. Same
242 structure as ExtraConfig.
244 BlockStorageServices:
246 - OS::TripleO::Services::CACerts
247 - OS::TripleO::Services::CinderVolume
248 - OS::TripleO::Services::Kernel
249 - OS::TripleO::Services::Ntp
250 - OS::TripleO::Services::Timezone
251 - OS::TripleO::Services::Snmp
252 - OS::TripleO::Services::TripleoPackages
253 - OS::TripleO::Services::TripleoFirewall
254 - OS::TripleO::Services::SensuClient
255 description: A list of service resources (configured in the Heat
256 resource_registry) which represent nested stacks
257 for each service that should get installed on the BlockStorage nodes.
258 type: comma_delimited_list
260 # Object storage specific parameters
264 ObjectStorageExtraConfig:
267 ObjectStorage specific configuration to inject into the cluster. Same
268 structure as ExtraConfig.
270 ObjectStorageServices:
272 - OS::TripleO::Services::CACerts
273 - OS::TripleO::Services::Kernel
274 - OS::TripleO::Services::Ntp
275 - OS::TripleO::Services::SwiftStorage
276 - OS::TripleO::Services::SwiftRingBuilder
277 - OS::TripleO::Services::Snmp
278 - OS::TripleO::Services::Timezone
279 - OS::TripleO::Services::TripleoPackages
280 - OS::TripleO::Services::TripleoFirewall
281 - OS::TripleO::Services::SensuClient
282 description: A list of service resources (configured in the Heat
283 resource_registry) which represent nested stacks
284 for each service that should get installed on the ObjectStorage nodes.
285 Note this role currently only supports steps 2, 3 and 4 configuration.
286 type: comma_delimited_list
289 # Ceph storage specific parameters
293 CephStorageExtraConfig:
296 CephStorage specific configuration to inject into the cluster. Same
297 structure as ExtraConfig.
301 - OS::TripleO::Services::CACerts
302 - OS::TripleO::Services::CephOSD
303 - OS::TripleO::Services::Kernel
304 - OS::TripleO::Services::Ntp
305 - OS::TripleO::Services::Timezone
306 - OS::TripleO::Services::TripleoPackages
307 - OS::TripleO::Services::TripleoFirewall
308 - OS::TripleO::Services::SensuClient
309 description: A list of service resources (configured in the Heat
310 resource_registry) which represent nested stacks
311 for each service that should get installed on the CephStorage nodes.
312 type: comma_delimited_list
314 # Hostname format for each role
315 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
316 # and %stackname% is replaced with OS::stack_name in the template below.
317 # If you want to use the heat generated names, pass '' (empty string).
318 ControllerHostnameFormat:
320 description: Format for Controller node hostnames
321 default: '%stackname%-controller-%index%'
322 ComputeHostnameFormat:
324 description: Format for Compute node hostnames
325 default: '%stackname%-novacompute-%index%'
326 BlockStorageHostnameFormat:
328 description: Format for BlockStorage node hostnames
329 default: '%stackname%-blockstorage-%index%'
330 ObjectStorageHostnameFormat:
332 description: Format for SwiftStorage node hostnames
333 default: '%stackname%-objectstorage-%index%'
334 CephStorageHostnameFormat:
336 description: Format for CephStorage node hostnames
337 default: '%stackname%-cephstorage-%index%'
339 # Identifiers to trigger tasks on nodes
344 Setting to a previously unused value during stack-update will trigger
345 package update on all nodes
350 Setting this to a unique value will re-run any deployment tasks which
351 perform configuration on a Heat stack-update.
353 # If you want to remove a specific node from a resource group, you can pass
354 # the node name or id as a <Group>RemovalPolicies parameter, for example:
355 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
356 ControllerRemovalPolicies:
360 List of resources to be removed from ControllerResourceGroup when
361 doing an update which requires removal of specific resources.
362 ComputeRemovalPolicies:
366 List of resources to be removed from ComputeResourceGroup when
367 doing an update which requires removal of specific resources.
368 BlockStorageRemovalPolicies:
372 List of resources to be removed from BlockStorageResourceGroup when
373 doing an update which requires removal of specific resources.
374 ObjectStorageRemovalPolicies:
378 List of resources to be removed from ObjectStorageResourceGroup when
379 doing an update which requires removal of specific resources.
380 CephStorageRemovalPolicies:
384 List of resources to be removed from CephStorageResourceGroup when
385 doing an update which requires removal of specific resources.
389 description: Do not use deprecated params, they will be removed.
391 - controllerExtraConfig
396 HeatAuthEncryptionKey:
397 type: OS::Heat::RandomString
400 type: OS::Heat::RandomString
405 type: OS::Heat::RandomString
410 type: OS::TripleO::ServiceNetMap
413 type: OS::TripleO::EndpointMap
416 external: {get_param: CloudName}
417 internal_api: {get_param: CloudNameInternal}
418 storage: {get_param: CloudNameStorage}
419 storage_mgmt: {get_param: CloudNameStorageManagement}
420 management: {get_param: CloudNameManagement}
421 NetIpMap: {get_attr: [VipMap, net_ip_map]}
422 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
424 ControllerServiceChain:
425 type: OS::TripleO::Services
427 Services: {get_param: ControllerServices}
428 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
429 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
430 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
433 type: OS::Heat::ResourceGroup
436 count: {get_param: ControllerCount}
437 removal_policies: {get_param: ControllerRemovalPolicies}
439 type: OS::TripleO::Controller
441 CloudDomain: {get_param: CloudDomain}
442 controllerExtraConfig: {get_param: controllerExtraConfig}
443 PcsdPassword: {get_resource: PcsdPassword}
444 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
445 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
446 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
447 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
450 template: {get_param: ControllerHostnameFormat}
452 '%stackname%': {get_param: 'OS::stack_name'}
454 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
455 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
456 MonitoringSubscriptions: {get_attr: [ControllerServiceChain, role_data, monitoring_subscriptions]}
459 type: OS::TripleO::Services
461 Services: {get_param: ComputeServices}
462 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
463 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
464 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
467 type: OS::Heat::ResourceGroup
470 count: {get_param: ComputeCount}
471 removal_policies: {get_param: ComputeRemovalPolicies}
473 type: OS::TripleO::Compute
475 CloudDomain: {get_param: CloudDomain}
476 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
477 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
478 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
479 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
482 template: {get_param: ComputeHostnameFormat}
484 '%stackname%': {get_param: 'OS::stack_name'}
486 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
487 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
488 MonitoringSubscriptions: {get_attr: [ComputeServiceChain, role_data, monitoring_subscriptions]}
490 BlockStorageServiceChain:
491 type: OS::TripleO::Services
493 Services: {get_param: BlockStorageServices}
494 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
495 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
496 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
499 type: OS::Heat::ResourceGroup
502 count: {get_param: BlockStorageCount}
503 removal_policies: {get_param: BlockStorageRemovalPolicies}
505 type: OS::TripleO::BlockStorage
507 UpdateIdentifier: {get_param: UpdateIdentifier}
510 template: {get_param: BlockStorageHostnameFormat}
512 '%stackname%': {get_param: 'OS::stack_name'}
513 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
514 ExtraConfig: {get_param: ExtraConfig}
515 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
516 CloudDomain: {get_param: CloudDomain}
517 ServerMetadata: {get_param: ServerMetadata}
519 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
520 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
521 MonitoringSubscriptions: {get_attr: [BlockStorageServiceChain, role_data, monitoring_subscriptions]}
523 ObjectStorageServiceChain:
524 type: OS::TripleO::Services
526 Services: {get_param: ObjectStorageServices}
527 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
528 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
529 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
532 type: OS::Heat::ResourceGroup
535 count: {get_param: ObjectStorageCount}
536 removal_policies: {get_param: ObjectStorageRemovalPolicies}
538 type: OS::TripleO::ObjectStorage
540 UpdateIdentifier: {get_param: UpdateIdentifier}
541 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
544 template: {get_param: ObjectStorageHostnameFormat}
546 '%stackname%': {get_param: 'OS::stack_name'}
547 ExtraConfig: {get_param: ExtraConfig}
548 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
549 CloudDomain: {get_param: CloudDomain}
550 ServerMetadata: {get_param: ServerMetadata}
552 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
553 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
554 MonitoringSubscriptions: {get_attr: [ObjectStorageServiceChain, role_data, monitoring_subscriptions]}
556 CephStorageServiceChain:
557 type: OS::TripleO::Services
559 Services: {get_param: CephStorageServices}
560 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
561 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
562 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
565 type: OS::Heat::ResourceGroup
568 count: {get_param: CephStorageCount}
569 removal_policies: {get_param: CephStorageRemovalPolicies}
571 type: OS::TripleO::CephStorage
573 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
574 UpdateIdentifier: {get_param: UpdateIdentifier}
577 template: {get_param: CephStorageHostnameFormat}
579 '%stackname%': {get_param: 'OS::stack_name'}
580 ExtraConfig: {get_param: ExtraConfig}
581 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
582 CloudDomain: {get_param: CloudDomain}
583 ServerMetadata: {get_param: ServerMetadata}
585 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
586 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
587 MonitoringSubscriptions: {get_attr: [CephStorageServiceChain, role_data, monitoring_subscriptions]}
590 type: OS::TripleO::Network::Ports::NetIpListMap
592 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
593 ExternalIpList: {get_attr: [Controller, external_ip_address]}
594 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
595 StorageIpList: {get_attr: [Controller, storage_ip_address]}
596 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
597 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
598 ManagementIpList: {get_attr: [Controller, management_ip_address]}
599 EnabledServices: {get_attr: [ControllerServiceChain, role_data, service_names]}
600 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
601 ServiceHostnameList: {get_attr: [Controller, hostname]}
604 type: OS::TripleO::AllNodes::SoftwareConfig
609 - {get_attr: [Compute, hosts_entry]}
612 - {get_attr: [Controller, hosts_entry]}
615 - {get_attr: [BlockStorage, hosts_entry]}
618 - {get_attr: [ObjectStorage, hosts_entry]}
621 - {get_attr: [CephStorage, hosts_entry]}
625 - {get_attr: [ControllerServiceChain, role_data, service_names]}
626 - {get_attr: [ComputeServiceChain, role_data, service_names]}
627 - {get_attr: [BlockStorageServiceChain, role_data, service_names]}
628 - {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
629 - {get_attr: [CephStorageServiceChain, role_data, service_names]}
630 controller_ips: {get_attr: [Controller, ip_address]}
631 controller_names: {get_attr: [Controller, hostname]}
632 service_ips: {get_attr: [ControllerIpListMap, service_ips]}
633 service_node_names: {get_attr: [ControllerIpListMap, service_hostnames]}
634 # FIXME(shardy): These require further work to move into service_ips
635 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
636 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
637 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
638 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
639 DeployIdentifier: {get_param: DeployIdentifier}
640 UpdateIdentifier: {get_param: UpdateIdentifier}
643 type: OS::Heat::RandomString
648 type: OS::Heat::RandomString
651 salt: {get_param: RabbitCookieSalt}
654 type: OS::TripleO::DefaultPasswords
656 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
657 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
658 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
659 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
660 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
662 # creates the network architecture
664 type: OS::TripleO::Network
667 type: OS::Neutron::Port
670 name: control_virtual_ip
671 network: {get_param: NeutronControlPlaneID}
672 fixed_ips: {get_param: ControlFixedIPs}
673 replacement_policy: AUTO
677 type: OS::TripleO::Network::Ports::RedisVipPort
679 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
680 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
681 PortName: redis_virtual_ip
682 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
684 FixedIPs: {get_param: RedisVirtualFixedIPs}
686 # The public VIP is on the External net, falls back to ctlplane
689 type: OS::TripleO::Network::Ports::ExternalVipPort
691 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
692 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
693 PortName: public_virtual_ip
694 FixedIPs: {get_param: PublicVirtualFixedIPs}
696 InternalApiVirtualIP:
698 type: OS::TripleO::Network::Ports::InternalApiVipPort
700 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
701 PortName: internal_api_virtual_ip
702 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
706 type: OS::TripleO::Network::Ports::StorageVipPort
708 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
709 PortName: storage_virtual_ip
710 FixedIPs: {get_param: StorageVirtualFixedIPs}
712 StorageMgmtVirtualIP:
714 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
716 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
717 PortName: storage_management_virtual_ip
718 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
721 type: OS::TripleO::Network::Ports::NetVipMap
723 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
724 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
725 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
726 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
727 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
728 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
729 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
730 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
731 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
732 # No tenant or management VIP required
735 type: OS::TripleO::VipConfig
738 type: OS::Heat::StructuredDeployments
741 config: {get_resource: VipConfig}
742 servers: {get_attr: [Controller, attributes, nova_server_resource]}
744 # service VIP mappings
745 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
746 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
747 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
748 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
749 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
750 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
751 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
752 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
753 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
754 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
755 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
756 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
757 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
758 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
759 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
760 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
761 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
762 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
763 # direct configuration of Virtual IPs for each network
764 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
765 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
766 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
767 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
768 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
769 opendaylight_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
770 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
771 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
773 ControllerSwiftDeployment:
774 type: OS::Heat::StructuredDeployments
776 name: ControllerSwiftDeployment
777 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
778 servers: {get_attr: [Controller, attributes, nova_server_resource]}
780 ObjectStorageSwiftDeployment:
781 type: OS::Heat::StructuredDeployments
783 name: ObjectStorageSwiftDeployment
784 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
785 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
787 SwiftDevicesAndProxyConfig:
788 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
790 controller_swift_devices: {get_attr: [Controller, swift_device]}
791 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
792 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
794 ControllerAllNodesDeployment:
795 type: OS::Heat::StructuredDeployments
797 name: ControllerAllNodesDeployment
798 config: {get_attr: [allNodesConfig, config_id]}
799 servers: {get_attr: [Controller, attributes, nova_server_resource]}
801 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
802 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
804 ComputeAllNodesDeployment:
805 type: OS::Heat::StructuredDeployments
807 name: ComputeAllNodesDeployment
808 config: {get_attr: [allNodesConfig, config_id]}
809 servers: {get_attr: [Compute, attributes, nova_server_resource]}
811 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
812 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
814 BlockStorageAllNodesDeployment:
815 type: OS::Heat::StructuredDeployments
817 name: BlockStorageAllNodesDeployment
818 config: {get_attr: [allNodesConfig, config_id]}
819 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
821 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
822 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
824 ObjectStorageAllNodesDeployment:
825 type: OS::Heat::StructuredDeployments
827 name: ObjectStorageAllNodesDeployment
828 config: {get_attr: [allNodesConfig, config_id]}
829 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
831 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
832 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
834 CephStorageAllNodesDeployment:
835 type: OS::Heat::StructuredDeployments
837 name: CephStorageAllNodesDeployment
838 config: {get_attr: [allNodesConfig, config_id]}
839 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
841 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
842 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
844 # All Nodes Validations
845 AllNodesValidationConfig:
846 type: OS::TripleO::AllNodes::Validation
851 - - {get_attr: [Controller, resource.0.external_ip_address]}
852 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
853 - {get_attr: [Controller, resource.0.storage_ip_address]}
854 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
855 - {get_attr: [Controller, resource.0.tenant_ip_address]}
856 - {get_attr: [Controller, resource.0.management_ip_address]}
858 ControllerAllNodesValidationDeployment:
859 type: OS::Heat::StructuredDeployments
860 depends_on: ControllerAllNodesDeployment
862 name: ControllerAllNodesValidationDeployment
863 config: {get_resource: AllNodesValidationConfig}
864 servers: {get_attr: [Controller, attributes, nova_server_resource]}
866 ComputeAllNodesValidationDeployment:
867 type: OS::Heat::StructuredDeployments
868 depends_on: ComputeAllNodesDeployment
870 name: ComputeAllNodesValidationDeployment
871 config: {get_resource: AllNodesValidationConfig}
872 servers: {get_attr: [Compute, attributes, nova_server_resource]}
874 BlockStorageAllNodesValidationDeployment:
875 type: OS::Heat::StructuredDeployments
876 depends_on: BlockStorageAllNodesDeployment
878 name: BlockStorageAllNodesValidationDeployment
879 config: {get_resource: AllNodesValidationConfig}
880 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
882 ObjectStorageAllNodesValidationDeployment:
883 type: OS::Heat::StructuredDeployments
884 depends_on: ObjectStorageAllNodesDeployment
886 name: ObjectStorageAllNodesValidationDeployment
887 config: {get_resource: AllNodesValidationConfig}
888 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
890 CephStorageAllNodesValidationDeployment:
891 type: OS::Heat::StructuredDeployments
892 depends_on: CephStorageAllNodesDeployment
894 name: CephStorageAllNodesValidationDeployment
895 config: {get_resource: AllNodesValidationConfig}
896 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
899 type: OS::TripleO::Tasks::UpdateWorkflow
901 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
902 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
903 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
904 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
905 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
907 deploy_identifier: {get_param: DeployIdentifier}
908 update_identifier: {get_param: UpdateIdentifier}
910 # Optional ExtraConfig for all nodes - all roles are passed in here, but
911 # the nested template may configure each role differently (or not at all)
913 type: OS::TripleO::AllNodesExtraConfig
916 - ComputeAllNodesValidationDeployment
917 - BlockStorageAllNodesValidationDeployment
918 - ObjectStorageAllNodesValidationDeployment
919 - CephStorageAllNodesValidationDeployment
920 - ControllerAllNodesValidationDeployment
922 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
923 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
924 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
925 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
926 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
928 # Nested stack deployment runs after all other controller deployments
929 ControllerNodesPostDeployment:
930 type: OS::TripleO::ControllerPostDeployment
931 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
933 servers: {get_attr: [Controller, attributes, nova_server_resource]}
934 RoleData: {get_attr: [ControllerServiceChain, role_data]}
936 ComputeNodesPostDeployment:
937 type: OS::TripleO::ComputePostDeployment
938 depends_on: [ComputeAllNodesDeployment]
940 servers: {get_attr: [Compute, attributes, nova_server_resource]}
941 RoleData: {get_attr: [ComputeServiceChain, role_data]}
943 ObjectStorageNodesPostDeployment:
944 type: OS::TripleO::ObjectStoragePostDeployment
945 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
947 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
948 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
950 BlockStorageNodesPostDeployment:
951 type: OS::TripleO::BlockStoragePostDeployment
952 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
954 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
955 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
957 CephStorageNodesPostDeployment:
958 type: OS::TripleO::CephStoragePostDeployment
959 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
961 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
962 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
967 description: Asserts that the keystone endpoints have been provisioned.
970 description: URL for the Overcloud Keystone service
971 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
973 description: Keystone Admin VIP endpoint
974 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
976 description: Controller VIP for public API endpoints
977 value: {get_attr: [VipMap, net_ip_map, external]}
979 description: VIP for Aodh API internal endpoint
980 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
981 CeilometerInternalVip:
982 description: VIP for Ceilometer API internal endpoint
983 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
985 description: VIP for Cinder API internal endpoint
986 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
988 description: VIP for Glance API internal endpoint
989 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
991 description: VIP for Gnocchi API internal endpoint
992 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
994 description: VIP for Heat API internal endpoint
995 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
997 description: VIP for Ironic API internal endpoint
998 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
1000 description: VIP for Keystone API internal endpoint
1001 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
1003 description: VIP for Manila API internal endpoint
1004 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
1006 description: VIP for Neutron API internal endpoint
1007 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
1009 description: VIP for Nova API internal endpoint
1010 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
1011 OpenDaylightInternalVip:
1012 description: VIP for OpenDaylight API internal endpoint
1013 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
1015 description: VIP for Sahara API internal endpoint
1016 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1018 description: VIP for Swift Proxy internal endpoint
1019 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1022 Mapping of the resources with the needed info for their endpoints.
1023 This includes the protocol used, the IP, port and also a full
1024 representation of the URI.
1025 value: {get_attr: [EndpointMap, endpoint_map]}
1028 The content that should be appended to your /etc/hosts if you want to get
1029 hostname-based access to the deployed nodes (useful for testing without
1031 value: {get_attr: [allNodesConfig, hosts_entries]}
1033 description: The services enabled on each role
1035 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1036 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1037 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1038 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1039 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}