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 HorizonSecret: {get_resource: HorizonSecret}
439 PcsdPassword: {get_resource: PcsdPassword}
440 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
441 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
442 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
443 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
446 template: {get_param: ControllerHostnameFormat}
448 '%stackname%': {get_param: 'OS::stack_name'}
450 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
451 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
454 type: OS::TripleO::Services
456 Services: {get_param: ComputeServices}
457 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
458 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
459 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
462 type: OS::Heat::ResourceGroup
465 count: {get_param: ComputeCount}
466 removal_policies: {get_param: ComputeRemovalPolicies}
468 type: OS::TripleO::Compute
470 CloudDomain: {get_param: CloudDomain}
471 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
472 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
473 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
474 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
477 template: {get_param: ComputeHostnameFormat}
479 '%stackname%': {get_param: 'OS::stack_name'}
481 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
482 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
484 BlockStorageServiceChain:
485 type: OS::TripleO::Services
487 Services: {get_param: BlockStorageServices}
488 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
489 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
490 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
493 type: OS::Heat::ResourceGroup
496 count: {get_param: BlockStorageCount}
497 removal_policies: {get_param: BlockStorageRemovalPolicies}
499 type: OS::TripleO::BlockStorage
501 UpdateIdentifier: {get_param: UpdateIdentifier}
504 template: {get_param: BlockStorageHostnameFormat}
506 '%stackname%': {get_param: 'OS::stack_name'}
507 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
508 ExtraConfig: {get_param: ExtraConfig}
509 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
510 CloudDomain: {get_param: CloudDomain}
511 ServerMetadata: {get_param: ServerMetadata}
513 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
514 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
516 ObjectStorageServiceChain:
517 type: OS::TripleO::Services
519 Services: {get_param: ObjectStorageServices}
520 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
521 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
522 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
525 type: OS::Heat::ResourceGroup
528 count: {get_param: ObjectStorageCount}
529 removal_policies: {get_param: ObjectStorageRemovalPolicies}
531 type: OS::TripleO::ObjectStorage
533 UpdateIdentifier: {get_param: UpdateIdentifier}
534 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
537 template: {get_param: ObjectStorageHostnameFormat}
539 '%stackname%': {get_param: 'OS::stack_name'}
540 ExtraConfig: {get_param: ExtraConfig}
541 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
542 CloudDomain: {get_param: CloudDomain}
543 ServerMetadata: {get_param: ServerMetadata}
545 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
546 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
548 CephStorageServiceChain:
549 type: OS::TripleO::Services
551 Services: {get_param: CephStorageServices}
552 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
553 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
554 DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
557 type: OS::Heat::ResourceGroup
560 count: {get_param: CephStorageCount}
561 removal_policies: {get_param: CephStorageRemovalPolicies}
563 type: OS::TripleO::CephStorage
565 ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
566 UpdateIdentifier: {get_param: UpdateIdentifier}
569 template: {get_param: CephStorageHostnameFormat}
571 '%stackname%': {get_param: 'OS::stack_name'}
572 ExtraConfig: {get_param: ExtraConfig}
573 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
574 CloudDomain: {get_param: CloudDomain}
575 ServerMetadata: {get_param: ServerMetadata}
577 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
578 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
581 type: OS::TripleO::Network::Ports::NetIpListMap
583 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
584 ExternalIpList: {get_attr: [Controller, external_ip_address]}
585 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
586 StorageIpList: {get_attr: [Controller, storage_ip_address]}
587 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
588 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
589 ManagementIpList: {get_attr: [Controller, management_ip_address]}
592 type: OS::TripleO::AllNodes::SoftwareConfig
597 - {get_attr: [Compute, hosts_entry]}
600 - {get_attr: [Controller, hosts_entry]}
603 - {get_attr: [BlockStorage, hosts_entry]}
606 - {get_attr: [ObjectStorage, hosts_entry]}
609 - {get_attr: [CephStorage, hosts_entry]}
613 - {get_attr: [ControllerServiceChain, role_data, service_names]}
614 - {get_attr: [ComputeServiceChain, role_data, service_names]}
615 - {get_attr: [BlockStorageServiceChain, role_data, service_names]}
616 - {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
617 - {get_attr: [CephStorageServiceChain, role_data, service_names]}
618 controller_ips: {get_attr: [Controller, ip_address]}
619 controller_names: {get_attr: [Controller, hostname]}
620 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
621 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MongodbNetwork]}]}
622 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}]}
623 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
624 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
625 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
626 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
627 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
628 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
629 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
630 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
631 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
632 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
633 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
634 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
635 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
636 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
637 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
638 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
639 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
640 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
641 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
642 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
643 opendaylight_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
644 ceph_mon_node_names: {get_attr: [Controller, hostname]}
645 DeployIdentifier: {get_param: DeployIdentifier}
646 UpdateIdentifier: {get_param: UpdateIdentifier}
649 type: OS::Heat::RandomString
654 type: OS::Heat::RandomString
657 salt: {get_param: RabbitCookieSalt}
660 type: OS::TripleO::DefaultPasswords
662 DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
663 DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
664 DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
665 DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
666 DefaultHorizonSecret: {get_attr: [HorizonSecret, value]}
668 # creates the network architecture
670 type: OS::TripleO::Network
673 type: OS::Neutron::Port
676 name: control_virtual_ip
677 network: {get_param: NeutronControlPlaneID}
678 fixed_ips: {get_param: ControlFixedIPs}
679 replacement_policy: AUTO
683 type: OS::TripleO::Network::Ports::RedisVipPort
685 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
686 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
687 PortName: redis_virtual_ip
688 NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
690 FixedIPs: {get_param: RedisVirtualFixedIPs}
692 # The public VIP is on the External net, falls back to ctlplane
695 type: OS::TripleO::Network::Ports::ExternalVipPort
697 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
698 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
699 PortName: public_virtual_ip
700 FixedIPs: {get_param: PublicVirtualFixedIPs}
702 InternalApiVirtualIP:
704 type: OS::TripleO::Network::Ports::InternalApiVipPort
706 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
707 PortName: internal_api_virtual_ip
708 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
712 type: OS::TripleO::Network::Ports::StorageVipPort
714 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
715 PortName: storage_virtual_ip
716 FixedIPs: {get_param: StorageVirtualFixedIPs}
718 StorageMgmtVirtualIP:
720 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
722 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
723 PortName: storage_management_virtual_ip
724 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
727 type: OS::TripleO::Network::Ports::NetVipMap
729 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
730 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
731 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
732 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
733 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
734 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
735 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
736 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
737 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
738 # No tenant or management VIP required
741 type: OS::TripleO::VipConfig
744 type: OS::Heat::StructuredDeployments
747 config: {get_resource: VipConfig}
748 servers: {get_attr: [Controller, attributes, nova_server_resource]}
750 # service VIP mappings
751 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
752 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
753 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
754 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
755 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
756 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
757 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
758 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
759 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
760 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
761 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
762 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
763 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
764 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
765 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
766 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
767 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
768 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]}
769 # direct configuration of Virtual IPs for each network
770 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
771 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
772 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
773 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
774 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
775 opendaylight_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
776 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
777 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
779 ControllerSwiftDeployment:
780 type: OS::Heat::StructuredDeployments
782 name: ControllerSwiftDeployment
783 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
784 servers: {get_attr: [Controller, attributes, nova_server_resource]}
786 ObjectStorageSwiftDeployment:
787 type: OS::Heat::StructuredDeployments
789 name: ObjectStorageSwiftDeployment
790 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
791 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
793 SwiftDevicesAndProxyConfig:
794 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
796 controller_swift_devices: {get_attr: [Controller, swift_device]}
797 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
798 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
800 ControllerAllNodesDeployment:
801 type: OS::Heat::StructuredDeployments
803 name: ControllerAllNodesDeployment
804 config: {get_attr: [allNodesConfig, config_id]}
805 servers: {get_attr: [Controller, attributes, nova_server_resource]}
807 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
808 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
810 ComputeAllNodesDeployment:
811 type: OS::Heat::StructuredDeployments
813 name: ComputeAllNodesDeployment
814 config: {get_attr: [allNodesConfig, config_id]}
815 servers: {get_attr: [Compute, attributes, nova_server_resource]}
817 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
818 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
820 BlockStorageAllNodesDeployment:
821 type: OS::Heat::StructuredDeployments
823 name: BlockStorageAllNodesDeployment
824 config: {get_attr: [allNodesConfig, config_id]}
825 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
827 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
828 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
830 ObjectStorageAllNodesDeployment:
831 type: OS::Heat::StructuredDeployments
833 name: ObjectStorageAllNodesDeployment
834 config: {get_attr: [allNodesConfig, config_id]}
835 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
837 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
838 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
840 CephStorageAllNodesDeployment:
841 type: OS::Heat::StructuredDeployments
843 name: CephStorageAllNodesDeployment
844 config: {get_attr: [allNodesConfig, config_id]}
845 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
847 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
848 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
850 # All Nodes Validations
851 AllNodesValidationConfig:
852 type: OS::TripleO::AllNodes::Validation
857 - - {get_attr: [Controller, resource.0.external_ip_address]}
858 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
859 - {get_attr: [Controller, resource.0.storage_ip_address]}
860 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
861 - {get_attr: [Controller, resource.0.tenant_ip_address]}
862 - {get_attr: [Controller, resource.0.management_ip_address]}
864 ControllerAllNodesValidationDeployment:
865 type: OS::Heat::StructuredDeployments
866 depends_on: ControllerAllNodesDeployment
868 name: ControllerAllNodesValidationDeployment
869 config: {get_resource: AllNodesValidationConfig}
870 servers: {get_attr: [Controller, attributes, nova_server_resource]}
872 ComputeAllNodesValidationDeployment:
873 type: OS::Heat::StructuredDeployments
874 depends_on: ComputeAllNodesDeployment
876 name: ComputeAllNodesValidationDeployment
877 config: {get_resource: AllNodesValidationConfig}
878 servers: {get_attr: [Compute, attributes, nova_server_resource]}
880 BlockStorageAllNodesValidationDeployment:
881 type: OS::Heat::StructuredDeployments
882 depends_on: BlockStorageAllNodesDeployment
884 name: BlockStorageAllNodesValidationDeployment
885 config: {get_resource: AllNodesValidationConfig}
886 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
888 ObjectStorageAllNodesValidationDeployment:
889 type: OS::Heat::StructuredDeployments
890 depends_on: ObjectStorageAllNodesDeployment
892 name: ObjectStorageAllNodesValidationDeployment
893 config: {get_resource: AllNodesValidationConfig}
894 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
896 CephStorageAllNodesValidationDeployment:
897 type: OS::Heat::StructuredDeployments
898 depends_on: CephStorageAllNodesDeployment
900 name: CephStorageAllNodesValidationDeployment
901 config: {get_resource: AllNodesValidationConfig}
902 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
905 type: OS::TripleO::Tasks::UpdateWorkflow
907 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
908 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
909 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
910 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
911 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
913 deploy_identifier: {get_param: DeployIdentifier}
914 update_identifier: {get_param: UpdateIdentifier}
916 # Optional ExtraConfig for all nodes - all roles are passed in here, but
917 # the nested template may configure each role differently (or not at all)
919 type: OS::TripleO::AllNodesExtraConfig
922 - ComputeAllNodesValidationDeployment
923 - BlockStorageAllNodesValidationDeployment
924 - ObjectStorageAllNodesValidationDeployment
925 - CephStorageAllNodesValidationDeployment
926 - ControllerAllNodesValidationDeployment
928 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
929 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
930 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
931 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
932 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
934 # Nested stack deployment runs after all other controller deployments
935 ControllerNodesPostDeployment:
936 type: OS::TripleO::ControllerPostDeployment
937 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
939 servers: {get_attr: [Controller, attributes, nova_server_resource]}
940 RoleData: {get_attr: [ControllerServiceChain, role_data]}
942 ComputeNodesPostDeployment:
943 type: OS::TripleO::ComputePostDeployment
944 depends_on: [ComputeAllNodesDeployment]
946 servers: {get_attr: [Compute, attributes, nova_server_resource]}
947 RoleData: {get_attr: [ComputeServiceChain, role_data]}
949 ObjectStorageNodesPostDeployment:
950 type: OS::TripleO::ObjectStoragePostDeployment
951 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
953 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
954 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
956 BlockStorageNodesPostDeployment:
957 type: OS::TripleO::BlockStoragePostDeployment
958 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
960 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
961 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
963 CephStorageNodesPostDeployment:
964 type: OS::TripleO::CephStoragePostDeployment
965 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
967 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
968 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
972 description: URL for the Overcloud Keystone service
973 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
975 description: Keystone Admin VIP endpoint
976 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
978 description: Controller VIP for public API endpoints
979 value: {get_attr: [VipMap, net_ip_map, external]}
981 description: VIP for Aodh API internal endpoint
982 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
983 CeilometerInternalVip:
984 description: VIP for Ceilometer API internal endpoint
985 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
987 description: VIP for Cinder API internal endpoint
988 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
990 description: VIP for Glance API internal endpoint
991 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
993 description: VIP for Gnocchi API internal endpoint
994 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
996 description: VIP for Heat API internal endpoint
997 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
999 description: VIP for Ironic API internal endpoint
1000 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
1001 KeystoneInternalVip:
1002 description: VIP for Keystone API internal endpoint
1003 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
1005 description: VIP for Manila API internal endpoint
1006 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
1008 description: VIP for Neutron API internal endpoint
1009 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
1011 description: VIP for Nova API internal endpoint
1012 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
1013 OpenDaylightInternalVip:
1014 description: VIP for OpenDaylight API internal endpoint
1015 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
1017 description: VIP for Sahara API internal endpoint
1018 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
1020 description: VIP for Swift Proxy internal endpoint
1021 value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
1024 Mapping of the resources with the needed info for their endpoints.
1025 This includes the protocol used, the IP, port and also a full
1026 representation of the URI.
1027 value: {get_attr: [EndpointMap, endpoint_map]}
1030 The content that should be appended to your /etc/hosts if you want to get
1031 hostname-based access to the deployed nodes (useful for testing without
1033 value: {get_attr: [allNodesConfig, hosts_entries]}
1035 description: The services enabled on each role
1037 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1038 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1039 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1040 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1041 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}