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 description: A list of service resources (configured in the Heat
203 resource_registry) which represent nested stacks
204 for each service that should get installed on the Controllers.
205 type: comma_delimited_list
209 - OS::TripleO::Services::CACerts
210 - OS::TripleO::Services::CephClient
211 - OS::TripleO::Services::CephExternal
212 - OS::TripleO::Services::Timezone
213 - OS::TripleO::Services::Ntp
214 - OS::TripleO::Services::Snmp
215 - OS::TripleO::Services::NovaCompute
216 - OS::TripleO::Services::NovaLibvirt
217 - OS::TripleO::Services::Kernel
218 - OS::TripleO::Services::ComputeNeutronCorePlugin
219 - OS::TripleO::Services::ComputeNeutronOvsAgent
220 - OS::TripleO::Services::ComputeCeilometerAgent
221 - OS::TripleO::Services::ComputeNeutronL3Agent
222 - OS::TripleO::Services::ComputeNeutronMetadataAgent
223 - OS::TripleO::Services::TripleoPackages
224 - OS::TripleO::Services::TripleoFirewall
225 - OS::TripleO::Services::NeutronSriovAgent
226 - OS::TripleO::Services::OpenDaylightOvs
227 description: A list of service resources (configured in the Heat
228 resource_registry) which represent nested stacks
229 for each service that should get installed on the Compute Nodes.
230 type: comma_delimited_list
232 # Block storage specific parameters
236 BlockStorageExtraConfig:
239 BlockStorage specific configuration to inject into the cluster. Same
240 structure as ExtraConfig.
242 BlockStorageServices:
244 - OS::TripleO::Services::CACerts
245 - OS::TripleO::Services::CinderVolume
246 - OS::TripleO::Services::Kernel
247 - OS::TripleO::Services::Ntp
248 - OS::TripleO::Services::Timezone
249 - OS::TripleO::Services::Snmp
250 - OS::TripleO::Services::TripleoPackages
251 - OS::TripleO::Services::TripleoFirewall
252 description: A list of service resources (configured in the Heat
253 resource_registry) which represent nested stacks
254 for each service that should get installed on the BlockStorage nodes.
255 type: comma_delimited_list
257 # Object storage specific parameters
261 ObjectStorageExtraConfig:
264 ObjectStorage specific configuration to inject into the cluster. Same
265 structure as ExtraConfig.
267 ObjectStorageServices:
269 - OS::TripleO::Services::CACerts
270 - OS::TripleO::Services::Kernel
271 - OS::TripleO::Services::Ntp
272 - OS::TripleO::Services::SwiftStorage
273 - OS::TripleO::Services::SwiftRingBuilder
274 - OS::TripleO::Services::Snmp
275 - OS::TripleO::Services::Timezone
276 - OS::TripleO::Services::TripleoPackages
277 - OS::TripleO::Services::TripleoFirewall
278 description: A list of service resources (configured in the Heat
279 resource_registry) which represent nested stacks
280 for each service that should get installed on the ObjectStorage nodes.
281 Note this role currently only supports steps 2, 3 and 4 configuration.
282 type: comma_delimited_list
285 # Ceph storage specific parameters
289 CephStorageExtraConfig:
292 CephStorage specific configuration to inject into the cluster. Same
293 structure as ExtraConfig.
297 - OS::TripleO::Services::CACerts
298 - OS::TripleO::Services::CephOSD
299 - OS::TripleO::Services::Kernel
300 - OS::TripleO::Services::Ntp
301 - OS::TripleO::Services::Timezone
302 - OS::TripleO::Services::TripleoPackages
303 - OS::TripleO::Services::TripleoFirewall
304 description: A list of service resources (configured in the Heat
305 resource_registry) which represent nested stacks
306 for each service that should get installed on the CephStorage nodes.
307 type: comma_delimited_list
309 # Hostname format for each role
310 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
311 # and %stackname% is replaced with OS::stack_name in the template below.
312 # If you want to use the heat generated names, pass '' (empty string).
313 ControllerHostnameFormat:
315 description: Format for Controller node hostnames
316 default: '%stackname%-controller-%index%'
317 ComputeHostnameFormat:
319 description: Format for Compute node hostnames
320 default: '%stackname%-novacompute-%index%'
321 BlockStorageHostnameFormat:
323 description: Format for BlockStorage node hostnames
324 default: '%stackname%-blockstorage-%index%'
325 ObjectStorageHostnameFormat:
327 description: Format for SwiftStorage node hostnames
328 default: '%stackname%-objectstorage-%index%'
329 CephStorageHostnameFormat:
331 description: Format for CephStorage node hostnames
332 default: '%stackname%-cephstorage-%index%'
334 # Identifiers to trigger tasks on nodes
339 Setting to a previously unused value during stack-update will trigger
340 package update on all nodes
345 Setting this to a unique value will re-run any deployment tasks which
346 perform configuration on a Heat stack-update.
348 # If you want to remove a specific node from a resource group, you can pass
349 # the node name or id as a <Group>RemovalPolicies parameter, for example:
350 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
351 ControllerRemovalPolicies:
355 List of resources to be removed from ControllerResourceGroup when
356 doing an update which requires removal of specific resources.
357 ComputeRemovalPolicies:
361 List of resources to be removed from ComputeResourceGroup when
362 doing an update which requires removal of specific resources.
363 BlockStorageRemovalPolicies:
367 List of resources to be removed from BlockStorageResourceGroup when
368 doing an update which requires removal of specific resources.
369 ObjectStorageRemovalPolicies:
373 List of resources to be removed from ObjectStorageResourceGroup when
374 doing an update which requires removal of specific resources.
375 CephStorageRemovalPolicies:
379 List of resources to be removed from CephStorageResourceGroup when
380 doing an update which requires removal of specific resources.
384 description: Do not use deprecated params, they will be removed.
386 - controllerExtraConfig
391 HeatAuthEncryptionKey:
392 type: OS::Heat::RandomString
395 type: OS::Heat::RandomString
400 type: OS::Heat::RandomString
405 type: OS::TripleO::ServiceNetMap
408 type: OS::TripleO::EndpointMap
411 external: {get_param: CloudName}
412 internal_api: {get_param: CloudNameInternal}
413 storage: {get_param: CloudNameStorage}
414 storage_mgmt: {get_param: CloudNameStorageManagement}
415 management: {get_param: CloudNameManagement}
416 NetIpMap: {get_attr: [VipMap, net_ip_map]}
417 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
419 ControllerServiceChain:
420 type: OS::TripleO::Services
422 Services: {get_param: ControllerServices}
423 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
424 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
425 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
428 type: OS::Heat::ResourceGroup
431 count: {get_param: ControllerCount}
432 removal_policies: {get_param: ControllerRemovalPolicies}
434 type: OS::TripleO::Controller
436 CloudDomain: {get_param: CloudDomain}
437 controllerExtraConfig: {get_param: controllerExtraConfig}
438 PcsdPassword: {get_resource: PcsdPassword}
439 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
440 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
441 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
442 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
445 template: {get_param: ControllerHostnameFormat}
447 '%stackname%': {get_param: 'OS::stack_name'}
449 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
450 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
453 type: OS::TripleO::Services
455 Services: {get_param: ComputeServices}
456 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
457 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
458 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
461 type: OS::Heat::ResourceGroup
464 count: {get_param: ComputeCount}
465 removal_policies: {get_param: ComputeRemovalPolicies}
467 type: OS::TripleO::Compute
469 CloudDomain: {get_param: CloudDomain}
470 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
471 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
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 UpdateIdentifier: {get_param: UpdateIdentifier}
533 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
536 template: {get_param: ObjectStorageHostnameFormat}
538 '%stackname%': {get_param: 'OS::stack_name'}
539 ExtraConfig: {get_param: ExtraConfig}
540 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
541 CloudDomain: {get_param: CloudDomain}
542 ServerMetadata: {get_param: ServerMetadata}
544 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
545 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
547 CephStorageServiceChain:
548 type: OS::TripleO::Services
550 Services: {get_param: CephStorageServices}
551 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
552 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
553 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
556 type: OS::Heat::ResourceGroup
559 count: {get_param: CephStorageCount}
560 removal_policies: {get_param: CephStorageRemovalPolicies}
562 type: OS::TripleO::CephStorage
564 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
565 UpdateIdentifier: {get_param: UpdateIdentifier}
568 template: {get_param: CephStorageHostnameFormat}
570 '%stackname%': {get_param: 'OS::stack_name'}
571 ExtraConfig: {get_param: ExtraConfig}
572 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
573 CloudDomain: {get_param: CloudDomain}
574 ServerMetadata: {get_param: ServerMetadata}
576 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
577 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
580 type: OS::TripleO::Network::Ports::NetIpListMap
582 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
583 ExternalIpList: {get_attr: [Controller, external_ip_address]}
584 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
585 StorageIpList: {get_attr: [Controller, storage_ip_address]}
586 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
587 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
588 ManagementIpList: {get_attr: [Controller, management_ip_address]}
589 EnabledServices: {get_attr: [ControllerServiceChain, role_data, service_names]}
590 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
593 type: OS::TripleO::AllNodes::SoftwareConfig
598 - {get_attr: [Compute, hosts_entry]}
601 - {get_attr: [Controller, hosts_entry]}
604 - {get_attr: [BlockStorage, hosts_entry]}
607 - {get_attr: [ObjectStorage, hosts_entry]}
610 - {get_attr: [CephStorage, hosts_entry]}
614 - {get_attr: [ControllerServiceChain, role_data, service_names]}
615 - {get_attr: [ComputeServiceChain, role_data, service_names]}
616 - {get_attr: [BlockStorageServiceChain, role_data, service_names]}
617 - {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
618 - {get_attr: [CephStorageServiceChain, role_data, service_names]}
619 controller_ips: {get_attr: [Controller, ip_address]}
620 controller_names: {get_attr: [Controller, hostname]}
621 service_ips: {get_attr: [ControllerIpListMap, service_ips]}
622 # FIXME(shardy): These require further work to move into service_ips
623 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
624 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
625 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
626 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
627 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
628 ceph_mon_node_names: {get_attr: [Controller, hostname]}
629 DeployIdentifier: {get_param: DeployIdentifier}
630 UpdateIdentifier: {get_param: UpdateIdentifier}
633 type: OS::Heat::RandomString
638 type: OS::Heat::RandomString
641 salt: {get_param: RabbitCookieSalt}
644 type: OS::TripleO::DefaultPasswords
646 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
647 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
648 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
649 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
650 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
652 # creates the network architecture
654 type: OS::TripleO::Network
657 type: OS::Neutron::Port
660 name: control_virtual_ip
661 network: {get_param: NeutronControlPlaneID}
662 fixed_ips: {get_param: ControlFixedIPs}
663 replacement_policy: AUTO
667 type: OS::TripleO::Network::Ports::RedisVipPort
669 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
670 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
671 PortName: redis_virtual_ip
672 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
674 FixedIPs: {get_param: RedisVirtualFixedIPs}
676 # The public VIP is on the External net, falls back to ctlplane
679 type: OS::TripleO::Network::Ports::ExternalVipPort
681 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
682 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
683 PortName: public_virtual_ip
684 FixedIPs: {get_param: PublicVirtualFixedIPs}
686 InternalApiVirtualIP:
688 type: OS::TripleO::Network::Ports::InternalApiVipPort
690 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
691 PortName: internal_api_virtual_ip
692 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
696 type: OS::TripleO::Network::Ports::StorageVipPort
698 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
699 PortName: storage_virtual_ip
700 FixedIPs: {get_param: StorageVirtualFixedIPs}
702 StorageMgmtVirtualIP:
704 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
706 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
707 PortName: storage_management_virtual_ip
708 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
711 type: OS::TripleO::Network::Ports::NetVipMap
713 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
714 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
715 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
716 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
717 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
718 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
719 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
720 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
721 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
722 # No tenant or management VIP required
725 type: OS::TripleO::VipConfig
728 type: OS::Heat::StructuredDeployments
731 config: {get_resource: VipConfig}
732 servers: {get_attr: [Controller, attributes, nova_server_resource]}
734 # service VIP mappings
735 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
736 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
737 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
738 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
739 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
740 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
741 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
742 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
743 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
744 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
745 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
746 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
747 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
748 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
749 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
750 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
751 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
752 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
753 # direct configuration of Virtual IPs for each network
754 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
755 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
756 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
757 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
758 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
759 opendaylight_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
760 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
761 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
763 ControllerSwiftDeployment:
764 type: OS::Heat::StructuredDeployments
766 name: ControllerSwiftDeployment
767 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
768 servers: {get_attr: [Controller, attributes, nova_server_resource]}
770 ObjectStorageSwiftDeployment:
771 type: OS::Heat::StructuredDeployments
773 name: ObjectStorageSwiftDeployment
774 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
775 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
777 SwiftDevicesAndProxyConfig:
778 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
780 controller_swift_devices: {get_attr: [Controller, swift_device]}
781 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
782 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
784 ControllerAllNodesDeployment:
785 type: OS::Heat::StructuredDeployments
787 name: ControllerAllNodesDeployment
788 config: {get_attr: [allNodesConfig, config_id]}
789 servers: {get_attr: [Controller, attributes, nova_server_resource]}
791 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
792 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
794 ComputeAllNodesDeployment:
795 type: OS::Heat::StructuredDeployments
797 name: ComputeAllNodesDeployment
798 config: {get_attr: [allNodesConfig, config_id]}
799 servers: {get_attr: [Compute, attributes, nova_server_resource]}
801 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
802 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
804 BlockStorageAllNodesDeployment:
805 type: OS::Heat::StructuredDeployments
807 name: BlockStorageAllNodesDeployment
808 config: {get_attr: [allNodesConfig, config_id]}
809 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
811 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
812 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
814 ObjectStorageAllNodesDeployment:
815 type: OS::Heat::StructuredDeployments
817 name: ObjectStorageAllNodesDeployment
818 config: {get_attr: [allNodesConfig, config_id]}
819 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
821 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
822 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
824 CephStorageAllNodesDeployment:
825 type: OS::Heat::StructuredDeployments
827 name: CephStorageAllNodesDeployment
828 config: {get_attr: [allNodesConfig, config_id]}
829 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
831 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
832 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
834 # All Nodes Validations
835 AllNodesValidationConfig:
836 type: OS::TripleO::AllNodes::Validation
841 - - {get_attr: [Controller, resource.0.external_ip_address]}
842 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
843 - {get_attr: [Controller, resource.0.storage_ip_address]}
844 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
845 - {get_attr: [Controller, resource.0.tenant_ip_address]}
846 - {get_attr: [Controller, resource.0.management_ip_address]}
848 ControllerAllNodesValidationDeployment:
849 type: OS::Heat::StructuredDeployments
850 depends_on: ControllerAllNodesDeployment
852 name: ControllerAllNodesValidationDeployment
853 config: {get_resource: AllNodesValidationConfig}
854 servers: {get_attr: [Controller, attributes, nova_server_resource]}
856 ComputeAllNodesValidationDeployment:
857 type: OS::Heat::StructuredDeployments
858 depends_on: ComputeAllNodesDeployment
860 name: ComputeAllNodesValidationDeployment
861 config: {get_resource: AllNodesValidationConfig}
862 servers: {get_attr: [Compute, attributes, nova_server_resource]}
864 BlockStorageAllNodesValidationDeployment:
865 type: OS::Heat::StructuredDeployments
866 depends_on: BlockStorageAllNodesDeployment
868 name: BlockStorageAllNodesValidationDeployment
869 config: {get_resource: AllNodesValidationConfig}
870 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
872 ObjectStorageAllNodesValidationDeployment:
873 type: OS::Heat::StructuredDeployments
874 depends_on: ObjectStorageAllNodesDeployment
876 name: ObjectStorageAllNodesValidationDeployment
877 config: {get_resource: AllNodesValidationConfig}
878 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
880 CephStorageAllNodesValidationDeployment:
881 type: OS::Heat::StructuredDeployments
882 depends_on: CephStorageAllNodesDeployment
884 name: CephStorageAllNodesValidationDeployment
885 config: {get_resource: AllNodesValidationConfig}
886 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
889 type: OS::TripleO::Tasks::UpdateWorkflow
891 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
892 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
893 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
894 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
895 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
897 deploy_identifier: {get_param: DeployIdentifier}
898 update_identifier: {get_param: UpdateIdentifier}
900 # Optional ExtraConfig for all nodes - all roles are passed in here, but
901 # the nested template may configure each role differently (or not at all)
903 type: OS::TripleO::AllNodesExtraConfig
906 - ComputeAllNodesValidationDeployment
907 - BlockStorageAllNodesValidationDeployment
908 - ObjectStorageAllNodesValidationDeployment
909 - CephStorageAllNodesValidationDeployment
910 - ControllerAllNodesValidationDeployment
912 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
913 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
914 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
915 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
916 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
918 # Nested stack deployment runs after all other controller deployments
919 ControllerNodesPostDeployment:
920 type: OS::TripleO::ControllerPostDeployment
921 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
923 servers: {get_attr: [Controller, attributes, nova_server_resource]}
924 RoleData: {get_attr: [ControllerServiceChain, role_data]}
926 ComputeNodesPostDeployment:
927 type: OS::TripleO::ComputePostDeployment
928 depends_on: [ComputeAllNodesDeployment]
930 servers: {get_attr: [Compute, attributes, nova_server_resource]}
931 RoleData: {get_attr: [ComputeServiceChain, role_data]}
933 ObjectStorageNodesPostDeployment:
934 type: OS::TripleO::ObjectStoragePostDeployment
935 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
937 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
938 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
940 BlockStorageNodesPostDeployment:
941 type: OS::TripleO::BlockStoragePostDeployment
942 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
944 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
945 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
947 CephStorageNodesPostDeployment:
948 type: OS::TripleO::CephStoragePostDeployment
949 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
951 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
952 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
956 description: Asserts that the keystone endpoints have been provisioned.
959 description: URL for the Overcloud Keystone service
960 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
962 description: Keystone Admin VIP endpoint
963 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
965 description: Controller VIP for public API endpoints
966 value: {get_attr: [VipMap, net_ip_map, external]}
968 description: VIP for Aodh API internal endpoint
969 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
970 CeilometerInternalVip:
971 description: VIP for Ceilometer API internal endpoint
972 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
974 description: VIP for Cinder API internal endpoint
975 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
977 description: VIP for Glance API internal endpoint
978 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
980 description: VIP for Gnocchi API internal endpoint
981 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
983 description: VIP for Heat API internal endpoint
984 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
986 description: VIP for Ironic API internal endpoint
987 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
989 description: VIP for Keystone API internal endpoint
990 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
992 description: VIP for Manila API internal endpoint
993 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
995 description: VIP for Neutron API internal endpoint
996 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
998 description: VIP for Nova API internal endpoint
999 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
1000 OpenDaylightInternalVip:
1001 description: VIP for OpenDaylight API internal endpoint
1002 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
1004 description: VIP for Sahara API internal endpoint
1005 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1007 description: VIP for Swift Proxy internal endpoint
1008 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1011 Mapping of the resources with the needed info for their endpoints.
1012 This includes the protocol used, the IP, port and also a full
1013 representation of the URI.
1014 value: {get_attr: [EndpointMap, endpoint_map]}
1017 The content that should be appended to your /etc/hosts if you want to get
1018 hostname-based access to the deployed nodes (useful for testing without
1020 value: {get_attr: [allNodesConfig, hosts_entries]}
1022 description: The services enabled on each role
1024 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1025 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1026 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1027 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1028 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}