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_names: {get_attr: [Controller, hostname]}
628 DeployIdentifier: {get_param: DeployIdentifier}
629 UpdateIdentifier: {get_param: UpdateIdentifier}
632 type: OS::Heat::RandomString
637 type: OS::Heat::RandomString
640 salt: {get_param: RabbitCookieSalt}
643 type: OS::TripleO::DefaultPasswords
645 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
646 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
647 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
648 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
649 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
651 # creates the network architecture
653 type: OS::TripleO::Network
656 type: OS::Neutron::Port
659 name: control_virtual_ip
660 network: {get_param: NeutronControlPlaneID}
661 fixed_ips: {get_param: ControlFixedIPs}
662 replacement_policy: AUTO
666 type: OS::TripleO::Network::Ports::RedisVipPort
668 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
669 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
670 PortName: redis_virtual_ip
671 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
673 FixedIPs: {get_param: RedisVirtualFixedIPs}
675 # The public VIP is on the External net, falls back to ctlplane
678 type: OS::TripleO::Network::Ports::ExternalVipPort
680 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
681 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
682 PortName: public_virtual_ip
683 FixedIPs: {get_param: PublicVirtualFixedIPs}
685 InternalApiVirtualIP:
687 type: OS::TripleO::Network::Ports::InternalApiVipPort
689 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
690 PortName: internal_api_virtual_ip
691 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
695 type: OS::TripleO::Network::Ports::StorageVipPort
697 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
698 PortName: storage_virtual_ip
699 FixedIPs: {get_param: StorageVirtualFixedIPs}
701 StorageMgmtVirtualIP:
703 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
705 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
706 PortName: storage_management_virtual_ip
707 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
710 type: OS::TripleO::Network::Ports::NetVipMap
712 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
713 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
714 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
715 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
716 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
717 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
718 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
719 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
720 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
721 # No tenant or management VIP required
724 type: OS::TripleO::VipConfig
727 type: OS::Heat::StructuredDeployments
730 config: {get_resource: VipConfig}
731 servers: {get_attr: [Controller, attributes, nova_server_resource]}
733 # service VIP mappings
734 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
735 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
736 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
737 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
738 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
739 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
740 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
741 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
742 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
743 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
744 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
745 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
746 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
747 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
748 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
749 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
750 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
751 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
752 # direct configuration of Virtual IPs for each network
753 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
754 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
755 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
756 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
757 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
758 opendaylight_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
759 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
760 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
762 ControllerSwiftDeployment:
763 type: OS::Heat::StructuredDeployments
765 name: ControllerSwiftDeployment
766 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
767 servers: {get_attr: [Controller, attributes, nova_server_resource]}
769 ObjectStorageSwiftDeployment:
770 type: OS::Heat::StructuredDeployments
772 name: ObjectStorageSwiftDeployment
773 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
774 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
776 SwiftDevicesAndProxyConfig:
777 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
779 controller_swift_devices: {get_attr: [Controller, swift_device]}
780 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
781 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
783 ControllerAllNodesDeployment:
784 type: OS::Heat::StructuredDeployments
786 name: ControllerAllNodesDeployment
787 config: {get_attr: [allNodesConfig, config_id]}
788 servers: {get_attr: [Controller, attributes, nova_server_resource]}
790 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
791 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
793 ComputeAllNodesDeployment:
794 type: OS::Heat::StructuredDeployments
796 name: ComputeAllNodesDeployment
797 config: {get_attr: [allNodesConfig, config_id]}
798 servers: {get_attr: [Compute, attributes, nova_server_resource]}
800 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
801 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
803 BlockStorageAllNodesDeployment:
804 type: OS::Heat::StructuredDeployments
806 name: BlockStorageAllNodesDeployment
807 config: {get_attr: [allNodesConfig, config_id]}
808 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
810 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
811 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
813 ObjectStorageAllNodesDeployment:
814 type: OS::Heat::StructuredDeployments
816 name: ObjectStorageAllNodesDeployment
817 config: {get_attr: [allNodesConfig, config_id]}
818 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
820 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
821 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
823 CephStorageAllNodesDeployment:
824 type: OS::Heat::StructuredDeployments
826 name: CephStorageAllNodesDeployment
827 config: {get_attr: [allNodesConfig, config_id]}
828 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
830 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
831 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
833 # All Nodes Validations
834 AllNodesValidationConfig:
835 type: OS::TripleO::AllNodes::Validation
840 - - {get_attr: [Controller, resource.0.external_ip_address]}
841 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
842 - {get_attr: [Controller, resource.0.storage_ip_address]}
843 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
844 - {get_attr: [Controller, resource.0.tenant_ip_address]}
845 - {get_attr: [Controller, resource.0.management_ip_address]}
847 ControllerAllNodesValidationDeployment:
848 type: OS::Heat::StructuredDeployments
849 depends_on: ControllerAllNodesDeployment
851 name: ControllerAllNodesValidationDeployment
852 config: {get_resource: AllNodesValidationConfig}
853 servers: {get_attr: [Controller, attributes, nova_server_resource]}
855 ComputeAllNodesValidationDeployment:
856 type: OS::Heat::StructuredDeployments
857 depends_on: ComputeAllNodesDeployment
859 name: ComputeAllNodesValidationDeployment
860 config: {get_resource: AllNodesValidationConfig}
861 servers: {get_attr: [Compute, attributes, nova_server_resource]}
863 BlockStorageAllNodesValidationDeployment:
864 type: OS::Heat::StructuredDeployments
865 depends_on: BlockStorageAllNodesDeployment
867 name: BlockStorageAllNodesValidationDeployment
868 config: {get_resource: AllNodesValidationConfig}
869 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
871 ObjectStorageAllNodesValidationDeployment:
872 type: OS::Heat::StructuredDeployments
873 depends_on: ObjectStorageAllNodesDeployment
875 name: ObjectStorageAllNodesValidationDeployment
876 config: {get_resource: AllNodesValidationConfig}
877 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
879 CephStorageAllNodesValidationDeployment:
880 type: OS::Heat::StructuredDeployments
881 depends_on: CephStorageAllNodesDeployment
883 name: CephStorageAllNodesValidationDeployment
884 config: {get_resource: AllNodesValidationConfig}
885 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
888 type: OS::TripleO::Tasks::UpdateWorkflow
890 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
891 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
892 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
893 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
894 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
896 deploy_identifier: {get_param: DeployIdentifier}
897 update_identifier: {get_param: UpdateIdentifier}
899 # Optional ExtraConfig for all nodes - all roles are passed in here, but
900 # the nested template may configure each role differently (or not at all)
902 type: OS::TripleO::AllNodesExtraConfig
905 - ComputeAllNodesValidationDeployment
906 - BlockStorageAllNodesValidationDeployment
907 - ObjectStorageAllNodesValidationDeployment
908 - CephStorageAllNodesValidationDeployment
909 - ControllerAllNodesValidationDeployment
911 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
912 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
913 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
914 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
915 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
917 # Nested stack deployment runs after all other controller deployments
918 ControllerNodesPostDeployment:
919 type: OS::TripleO::ControllerPostDeployment
920 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
922 servers: {get_attr: [Controller, attributes, nova_server_resource]}
923 RoleData: {get_attr: [ControllerServiceChain, role_data]}
925 ComputeNodesPostDeployment:
926 type: OS::TripleO::ComputePostDeployment
927 depends_on: [ComputeAllNodesDeployment]
929 servers: {get_attr: [Compute, attributes, nova_server_resource]}
930 RoleData: {get_attr: [ComputeServiceChain, role_data]}
932 ObjectStorageNodesPostDeployment:
933 type: OS::TripleO::ObjectStoragePostDeployment
934 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
936 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
937 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
939 BlockStorageNodesPostDeployment:
940 type: OS::TripleO::BlockStoragePostDeployment
941 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
943 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
944 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
946 CephStorageNodesPostDeployment:
947 type: OS::TripleO::CephStoragePostDeployment
948 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
950 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
951 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
955 description: Asserts that the keystone endpoints have been provisioned.
958 description: URL for the Overcloud Keystone service
959 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
961 description: Keystone Admin VIP endpoint
962 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
964 description: Controller VIP for public API endpoints
965 value: {get_attr: [VipMap, net_ip_map, external]}
967 description: VIP for Aodh API internal endpoint
968 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
969 CeilometerInternalVip:
970 description: VIP for Ceilometer API internal endpoint
971 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
973 description: VIP for Cinder API internal endpoint
974 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
976 description: VIP for Glance API internal endpoint
977 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
979 description: VIP for Gnocchi API internal endpoint
980 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
982 description: VIP for Heat API internal endpoint
983 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
985 description: VIP for Ironic API internal endpoint
986 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
988 description: VIP for Keystone API internal endpoint
989 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
991 description: VIP for Manila API internal endpoint
992 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
994 description: VIP for Neutron API internal endpoint
995 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
997 description: VIP for Nova API internal endpoint
998 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
999 OpenDaylightInternalVip:
1000 description: VIP for OpenDaylight API internal endpoint
1001 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
1003 description: VIP for Sahara API internal endpoint
1004 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1006 description: VIP for Swift Proxy internal endpoint
1007 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1010 Mapping of the resources with the needed info for their endpoints.
1011 This includes the protocol used, the IP, port and also a full
1012 representation of the URI.
1013 value: {get_attr: [EndpointMap, endpoint_map]}
1016 The content that should be appended to your /etc/hosts if you want to get
1017 hostname-based access to the deployed nodes (useful for testing without
1019 value: {get_attr: [allNodesConfig, hosts_entries]}
1021 description: The services enabled on each role
1023 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1024 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1025 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1026 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1027 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}