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
21 description: Should be used for arbitrary ips.
23 InternalApiVirtualFixedIPs:
26 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
27 [{'ip_address':'1.2.3.4'}]
29 NeutronControlPlaneID:
32 description: Neutron ID or name for ctlplane network.
33 NeutronPublicInterface:
35 description: What interface to bridge onto br-ex for network nodes.
37 PublicVirtualFixedIPs:
40 Control the IP allocation for the PublicVirtualInterface port. E.g.
41 [{'ip_address':'1.2.3.4'}]
46 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
47 StorageVirtualFixedIPs:
50 Control the IP allocation for the StorageVirtualInterface port. E.g.
51 [{'ip_address':'1.2.3.4'}]
53 StorageMgmtVirtualFixedIPs:
56 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
57 [{'ip_address':'1.2.3.4'}]
60 default: 'localdomain'
63 The DNS domain used for the hosts. This should match the dhcp_domain
64 configured in the Undercloud neutron. Defaults to localdomain.
68 Extra properties or metadata passed to Nova for the created nodes in
69 the overcloud. It's accessible via the Nova metadata API.
72 # Controller-specific params
76 controllerExtraConfig:
79 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
84 Additional configuration to inject into the cluster. The format required
85 may be implementation specific, e.g puppet hieradata. Any role specific
86 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
89 description: A random string to be used as a salt when hashing to determine mappings in the ring.
94 # Compute-specific params
98 HypervisorNeutronPhysicalBridge:
101 An OVS bridge to create on each hypervisor. This defaults to br-ex the
102 same as the control plane nodes, as we have a uniform configuration of
103 the openvswitch agent. Typically should not need to be changed.
105 HypervisorNeutronPublicInterface:
107 description: What interface to add to the HypervisorNeutronPhysicalBridge.
111 NeutronTenantNetwork: tenant
112 CeilometerApiNetwork: internal_api
113 AodhApiNetwork: internal_api
114 GnocchiApiNetwork: internal_api
115 MongoDbNetwork: internal_api
116 CinderApiNetwork: internal_api
117 CinderIscsiNetwork: storage
118 GlanceApiNetwork: storage
119 GlanceRegistryNetwork: internal_api
120 IronicApiNetwork: internal_api
121 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
122 KeystonePublicApiNetwork: internal_api
123 ManilaApiNetwork: internal_api
124 NeutronApiNetwork: internal_api
125 HeatApiNetwork: internal_api
126 NovaApiNetwork: internal_api
127 NovaMetadataNetwork: internal_api
128 NovaVncProxyNetwork: internal_api
129 SwiftMgmtNetwork: storage_mgmt
130 SwiftProxyNetwork: storage
131 SaharaApiNetwork: internal_api
132 HorizonNetwork: internal_api
133 MemcachedNetwork: internal_api
134 RabbitMqNetwork: internal_api
135 RedisNetwork: internal_api
136 MysqlNetwork: internal_api
137 CephClusterNetwork: storage_mgmt
138 CephPublicNetwork: storage
139 ControllerHostnameResolveNetwork: internal_api
140 ComputeHostnameResolveNetwork: internal_api
141 BlockStorageHostnameResolveNetwork: internal_api
142 ObjectStorageHostnameResolveNetwork: internal_api
143 CephStorageHostnameResolveNetwork: storage
144 description: Mapping of service_name -> network name. Typically set
145 via parameter_defaults in the resource registry.
150 - OS::TripleO::Services::CephMon
151 - OS::TripleO::Services::CephExternal
152 - OS::TripleO::Services::CinderApi
153 - OS::TripleO::Services::CinderScheduler
154 - OS::TripleO::Services::CinderVolume
155 - OS::TripleO::Services::Core
156 - OS::TripleO::Services::Kernel
157 - OS::TripleO::Services::Keystone
158 - OS::TripleO::Services::GlanceApi
159 - OS::TripleO::Services::GlanceRegistry
160 - OS::TripleO::Services::HeatApi
161 - OS::TripleO::Services::HeatApiCfn
162 - OS::TripleO::Services::HeatApiCloudwatch
163 - OS::TripleO::Services::HeatEngine
164 - OS::TripleO::Services::MySQL
165 - OS::TripleO::Services::NeutronDhcpAgent
166 - OS::TripleO::Services::NeutronL3Agent
167 - OS::TripleO::Services::NeutronMetadataAgent
168 - OS::TripleO::Services::NeutronServer
169 - OS::TripleO::Services::NeutronCorePlugin
170 - OS::TripleO::Services::NeutronOvsAgent
171 - OS::TripleO::Services::RabbitMQ
172 - OS::TripleO::Services::HAproxy
173 - OS::TripleO::Services::Keepalived
174 - OS::TripleO::Services::Memcached
175 - OS::TripleO::Services::Pacemaker
176 - OS::TripleO::Services::Redis
177 - OS::TripleO::Services::NovaConductor
178 - OS::TripleO::Services::MongoDb
179 - OS::TripleO::Services::NovaApi
180 - OS::TripleO::Services::NovaScheduler
181 - OS::TripleO::Services::NovaConsoleauth
182 - OS::TripleO::Services::NovaVncproxy
183 - OS::TripleO::Services::Ntp
184 - OS::TripleO::Services::SwiftProxy
185 - OS::TripleO::Services::SwiftStorage
186 - OS::TripleO::Services::SwiftRingBuilder
187 - OS::TripleO::Services::Snmp
188 - OS::TripleO::Services::Timezone
189 - OS::TripleO::Services::CeilometerApi
190 - OS::TripleO::Services::CeilometerCollector
191 - OS::TripleO::Services::CeilometerExpirer
192 - OS::TripleO::Services::CeilometerAgentCentral
193 - OS::TripleO::Services::CeilometerAgentNotification
194 - OS::TripleO::Services::Horizon
195 - OS::TripleO::Services::GnocchiApi
196 - OS::TripleO::Services::GnocchiMetricd
197 - OS::TripleO::Services::GnocchiStatsd
198 - OS::Tripleo::Services::ManilaApi
199 - OS::Tripleo::Services::ManilaScheduler
200 - OS::Tripleo::Services::ManilaShare
201 - OS::TripleO::Services::AodhApi
202 - OS::TripleO::Services::AodhEvaluator
203 - OS::TripleO::Services::AodhNotifier
204 - OS::TripleO::Services::AodhListener
205 - OS::TripleO::Services::SaharaApi
206 - OS::TripleO::Services::SaharaEngine
207 description: A list of service resources (configured in the Heat
208 resource_registry) which represent nested stacks
209 for each service that should get installed on the Controllers.
210 type: comma_delimited_list
214 - OS::TripleO::Services::CephClient
215 - OS::TripleO::Services::CephExternal
216 - OS::TripleO::Services::Timezone
217 - OS::TripleO::Services::Ntp
218 - OS::TripleO::Services::Snmp
219 - OS::TripleO::Services::NovaCompute
220 - OS::TripleO::Services::NovaLibvirt
221 - OS::TripleO::Services::Kernel
222 - OS::TripleO::Services::ComputeNeutronCorePlugin
223 - OS::TripleO::Services::ComputeNeutronOvsAgent
224 - OS::TripleO::Services::ComputeCeilometerAgent
225 - OS::TripleO::Services::ComputeNeutronL3Agent
226 - OS::TripleO::Services::ComputeNeutronMetadataAgent
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::CinderVolume
245 - OS::TripleO::Services::Kernel
246 - OS::TripleO::Services::Ntp
247 - OS::TripleO::Services::Timezone
248 - OS::TripleO::Services::Snmp
249 description: A list of service resources (configured in the Heat
250 resource_registry) which represent nested stacks
251 for each service that should get installed on the BlockStorage nodes.
252 type: comma_delimited_list
254 # Object storage specific parameters
258 ObjectStorageExtraConfig:
261 ObjectStorage specific configuration to inject into the cluster. Same
262 structure as ExtraConfig.
264 ObjectStorageServices:
266 - OS::TripleO::Services::Kernel
267 - OS::TripleO::Services::Ntp
268 - OS::TripleO::Services::SwiftStorage
269 - OS::TripleO::Services::SwiftRingBuilder
270 - OS::TripleO::Services::Snmp
271 - OS::TripleO::Services::Timezone
272 description: A list of service resources (configured in the Heat
273 resource_registry) which represent nested stacks
274 for each service that should get installed on the ObjectStorage nodes.
275 Note this role currently only supports steps 2, 3 and 4 configuration.
276 type: comma_delimited_list
279 # Ceph storage specific parameters
283 CephStorageExtraConfig:
286 CephStorage specific configuration to inject into the cluster. Same
287 structure as ExtraConfig.
291 - OS::TripleO::Services::CephOSD
292 - OS::TripleO::Services::Kernel
293 - OS::TripleO::Services::Ntp
294 - OS::TripleO::Services::Timezone
295 description: A list of service resources (configured in the Heat
296 resource_registry) which represent nested stacks
297 for each service that should get installed on the CephStorage nodes.
298 type: comma_delimited_list
300 # Hostname format for each role
301 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
302 # and %stackname% is replaced with OS::stack_name in the template below.
303 # If you want to use the heat generated names, pass '' (empty string).
304 ControllerHostnameFormat:
306 description: Format for Controller node hostnames
307 default: '%stackname%-controller-%index%'
308 ComputeHostnameFormat:
310 description: Format for Compute node hostnames
311 default: '%stackname%-novacompute-%index%'
312 BlockStorageHostnameFormat:
314 description: Format for BlockStorage node hostnames
315 default: '%stackname%-blockstorage-%index%'
316 ObjectStorageHostnameFormat:
318 description: Format for SwiftStorage node hostnames
319 default: '%stackname%-objectstorage-%index%'
320 CephStorageHostnameFormat:
322 description: Format for CephStorage node hostnames
323 default: '%stackname%-cephstorage-%index%'
325 # Identifiers to trigger tasks on nodes
330 Setting to a previously unused value during stack-update will trigger
331 package update on all nodes
336 Setting this to a unique value will re-run any deployment tasks which
337 perform configuration on a Heat stack-update.
339 # If you want to remove a specific node from a resource group, you can pass
340 # the node name or id as a <Group>RemovalPolicies parameter, for example:
341 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
342 ControllerRemovalPolicies:
346 List of resources to be removed from ControllerResourceGroup when
347 doing an update which requires removal of specific resources.
348 ComputeRemovalPolicies:
352 List of resources to be removed from ComputeResourceGroup when
353 doing an update which requires removal of specific resources.
354 BlockStorageRemovalPolicies:
358 List of resources to be removed from BlockStorageResourceGroup when
359 doing an update which requires removal of specific resources.
360 ObjectStorageRemovalPolicies:
364 List of resources to be removed from ObjectStorageResourceGroup when
365 doing an update which requires removal of specific resources.
366 CephStorageRemovalPolicies:
370 List of resources to be removed from CephStorageResourceGroup when
371 doing an update which requires removal of specific resources.
375 description: Do not use deprecated params, they will be removed.
377 - controllerExtraConfig
382 HeatAuthEncryptionKey:
383 type: OS::Heat::RandomString
386 type: OS::Heat::RandomString
391 type: OS::Heat::RandomString
396 type: OS::TripleO::EndpointMap
398 CloudName: {get_param: CloudName}
399 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
400 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
401 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
402 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
403 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
404 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
405 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
406 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
407 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
408 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
409 ManilaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
410 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
411 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
412 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
413 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
414 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
415 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
416 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
418 ControllerServiceChain:
419 type: OS::TripleO::Services
421 Services: {get_param: ControllerServices}
422 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
425 type: OS::Heat::ResourceGroup
428 count: {get_param: ControllerCount}
429 removal_policies: {get_param: ControllerRemovalPolicies}
431 type: OS::TripleO::Controller
433 controllerExtraConfig: {get_param: controllerExtraConfig}
434 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
435 HorizonSecret: {get_resource: HorizonSecret}
436 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
437 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
438 PcsdPassword: {get_resource: PcsdPassword}
439 RabbitCookie: {get_attr: [RabbitCookie, value]}
440 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
441 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
442 ServiceNetMap: {get_param: ServiceNetMap}
443 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
444 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
447 template: {get_param: ControllerHostnameFormat}
449 '%stackname%': {get_param: 'OS::stack_name'}
451 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
452 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
456 type: OS::TripleO::Services
458 Services: {get_param: ComputeServices}
459 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
462 type: OS::Heat::ResourceGroup
465 count: {get_param: ComputeCount}
466 removal_policies: {get_param: ComputeRemovalPolicies}
468 type: OS::TripleO::Compute
470 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
471 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
472 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
473 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
474 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
475 # L3 HA and Failover is not relevant for Computes, should be removed
476 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
477 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
478 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
479 ServiceNetMap: {get_param: ServiceNetMap}
480 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
483 template: {get_param: ComputeHostnameFormat}
485 '%stackname%': {get_param: 'OS::stack_name'}
487 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
488 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
490 BlockStorageServiceChain:
491 type: OS::TripleO::Services
493 Services: {get_param: BlockStorageServices}
494 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
497 type: OS::Heat::ResourceGroup
500 count: {get_param: BlockStorageCount}
501 removal_policies: {get_param: BlockStorageRemovalPolicies}
503 type: OS::TripleO::BlockStorage
505 UpdateIdentifier: {get_param: UpdateIdentifier}
508 template: {get_param: BlockStorageHostnameFormat}
510 '%stackname%': {get_param: 'OS::stack_name'}
511 ServiceNetMap: {get_param: ServiceNetMap}
512 ExtraConfig: {get_param: ExtraConfig}
513 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
514 CloudDomain: {get_param: CloudDomain}
515 ServerMetadata: {get_param: ServerMetadata}
517 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
518 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
520 ObjectStorageServiceChain:
521 type: OS::TripleO::Services
523 Services: {get_param: ObjectStorageServices}
524 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
527 type: OS::Heat::ResourceGroup
530 count: {get_param: ObjectStorageCount}
531 removal_policies: {get_param: ObjectStorageRemovalPolicies}
533 type: OS::TripleO::ObjectStorage
535 HashSuffix: {get_param: SwiftHashSuffix}
536 UpdateIdentifier: {get_param: UpdateIdentifier}
537 ServiceNetMap: {get_param: ServiceNetMap}
540 template: {get_param: ObjectStorageHostnameFormat}
542 '%stackname%': {get_param: 'OS::stack_name'}
543 ExtraConfig: {get_param: ExtraConfig}
544 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
545 CloudDomain: {get_param: CloudDomain}
546 ServerMetadata: {get_param: ServerMetadata}
548 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
549 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
551 CephStorageServiceChain:
552 type: OS::TripleO::Services
554 Services: {get_param: CephStorageServices}
555 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
558 type: OS::Heat::ResourceGroup
561 count: {get_param: CephStorageCount}
562 removal_policies: {get_param: CephStorageRemovalPolicies}
564 type: OS::TripleO::CephStorage
566 ServiceNetMap: {get_param: ServiceNetMap}
567 UpdateIdentifier: {get_param: UpdateIdentifier}
570 template: {get_param: CephStorageHostnameFormat}
572 '%stackname%': {get_param: 'OS::stack_name'}
573 ExtraConfig: {get_param: ExtraConfig}
574 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
575 CloudDomain: {get_param: CloudDomain}
576 ServerMetadata: {get_param: ServerMetadata}
578 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
579 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
582 type: OS::TripleO::Network::Ports::NetIpListMap
584 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
585 ExternalIpList: {get_attr: [Controller, external_ip_address]}
586 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
587 StorageIpList: {get_attr: [Controller, storage_ip_address]}
588 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
589 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
590 ManagementIpList: {get_attr: [Controller, management_ip_address]}
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]}
611 controller_ips: {get_attr: [Controller, ip_address]}
612 controller_names: {get_attr: [Controller, hostname]}
613 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
614 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
615 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
616 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
617 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
618 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
619 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
620 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
621 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
622 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
623 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
624 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
625 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
626 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
627 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
628 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
629 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
630 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
631 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
632 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
633 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
634 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
635 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
636 ceph_mon_node_names: {get_attr: [Controller, hostname]}
637 DeployIdentifier: {get_param: DeployIdentifier}
638 UpdateIdentifier: {get_param: UpdateIdentifier}
641 type: OS::Heat::RandomString
645 MysqlClusterUniquePart:
646 type: OS::Heat::RandomString
651 type: OS::Heat::RandomString
654 salt: {get_param: RabbitCookieSalt}
656 # creates the network architecture
658 type: OS::TripleO::Network
661 type: OS::Neutron::Port
664 name: control_virtual_ip
665 network: {get_param: NeutronControlPlaneID}
666 fixed_ips: {get_param: ControlFixedIPs}
667 replacement_policy: AUTO
671 type: OS::TripleO::Network::Ports::RedisVipPort
673 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
674 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
675 PortName: redis_virtual_ip
676 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
679 # The public VIP is on the External net, falls back to ctlplane
682 type: OS::TripleO::Network::Ports::ExternalVipPort
684 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
685 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
686 PortName: public_virtual_ip
687 FixedIPs: {get_param: PublicVirtualFixedIPs}
689 InternalApiVirtualIP:
691 type: OS::TripleO::Network::Ports::InternalApiVipPort
693 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
694 PortName: internal_api_virtual_ip
695 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
699 type: OS::TripleO::Network::Ports::StorageVipPort
701 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
702 PortName: storage_virtual_ip
703 FixedIPs: {get_param: StorageVirtualFixedIPs}
705 StorageMgmtVirtualIP:
707 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
709 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
710 PortName: storage_management_virtual_ip
711 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
714 type: OS::TripleO::Network::Ports::NetVipMap
716 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
717 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
718 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
719 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
720 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
721 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
722 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
723 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
724 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
725 # No tenant or management VIP required
728 type: OS::TripleO::VipConfig
731 type: OS::Heat::StructuredDeployments
734 config: {get_resource: VipConfig}
735 servers: {get_attr: [Controller, attributes, nova_server_resource]}
737 # service VIP mappings
738 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
739 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
740 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
741 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
742 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
743 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
744 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
745 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
746 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
747 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
748 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
749 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
750 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
751 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
752 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
753 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
754 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
755 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
756 # direct configuration of Virtual IPs for each network
757 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
758 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
759 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
760 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
761 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
762 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
763 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
765 ControllerSwiftDeployment:
766 type: OS::Heat::StructuredDeployments
768 name: ControllerSwiftDeployment
769 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
770 servers: {get_attr: [Controller, attributes, nova_server_resource]}
772 ObjectStorageSwiftDeployment:
773 type: OS::Heat::StructuredDeployments
775 name: ObjectStorageSwiftDeployment
776 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
777 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
779 SwiftDevicesAndProxyConfig:
780 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
782 controller_swift_devices: {get_attr: [Controller, swift_device]}
783 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
784 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
786 ControllerAllNodesDeployment:
787 type: OS::Heat::StructuredDeployments
789 name: ControllerAllNodesDeployment
790 config: {get_attr: [allNodesConfig, config_id]}
791 servers: {get_attr: [Controller, attributes, nova_server_resource]}
793 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
794 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
796 ComputeAllNodesDeployment:
797 type: OS::Heat::StructuredDeployments
799 name: ComputeAllNodesDeployment
800 config: {get_attr: [allNodesConfig, config_id]}
801 servers: {get_attr: [Compute, attributes, nova_server_resource]}
803 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
804 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
806 BlockStorageAllNodesDeployment:
807 type: OS::Heat::StructuredDeployments
809 name: BlockStorageAllNodesDeployment
810 config: {get_attr: [allNodesConfig, config_id]}
811 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
813 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
814 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
816 ObjectStorageAllNodesDeployment:
817 type: OS::Heat::StructuredDeployments
819 name: ObjectStorageAllNodesDeployment
820 config: {get_attr: [allNodesConfig, config_id]}
821 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
823 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
824 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
826 CephStorageAllNodesDeployment:
827 type: OS::Heat::StructuredDeployments
829 name: CephStorageAllNodesDeployment
830 config: {get_attr: [allNodesConfig, config_id]}
831 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
833 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
834 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
836 # All Nodes Validations
837 AllNodesValidationConfig:
838 type: OS::TripleO::AllNodes::Validation
843 - - {get_attr: [Controller, resource.0.external_ip_address]}
844 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
845 - {get_attr: [Controller, resource.0.storage_ip_address]}
846 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
847 - {get_attr: [Controller, resource.0.tenant_ip_address]}
849 ControllerAllNodesValidationDeployment:
850 type: OS::Heat::StructuredDeployments
851 depends_on: ControllerAllNodesDeployment
853 name: ControllerAllNodesValidationDeployment
854 config: {get_resource: AllNodesValidationConfig}
855 servers: {get_attr: [Controller, attributes, nova_server_resource]}
857 ComputeAllNodesValidationDeployment:
858 type: OS::Heat::StructuredDeployments
859 depends_on: ComputeAllNodesDeployment
861 name: ComputeAllNodesValidationDeployment
862 config: {get_resource: AllNodesValidationConfig}
863 servers: {get_attr: [Compute, attributes, nova_server_resource]}
865 BlockStorageAllNodesValidationDeployment:
866 type: OS::Heat::StructuredDeployments
867 depends_on: BlockStorageAllNodesDeployment
869 name: BlockStorageAllNodesValidationDeployment
870 config: {get_resource: AllNodesValidationConfig}
871 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
873 ObjectStorageAllNodesValidationDeployment:
874 type: OS::Heat::StructuredDeployments
875 depends_on: ObjectStorageAllNodesDeployment
877 name: ObjectStorageAllNodesValidationDeployment
878 config: {get_resource: AllNodesValidationConfig}
879 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
881 CephStorageAllNodesValidationDeployment:
882 type: OS::Heat::StructuredDeployments
883 depends_on: CephStorageAllNodesDeployment
885 name: CephStorageAllNodesValidationDeployment
886 config: {get_resource: AllNodesValidationConfig}
887 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
890 type: OS::TripleO::Tasks::UpdateWorkflow
892 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
893 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
894 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
895 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
896 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
898 deploy_identifier: {get_param: DeployIdentifier}
899 update_identifier: {get_param: UpdateIdentifier}
901 # Optional ExtraConfig for all nodes - all roles are passed in here, but
902 # the nested template may configure each role differently (or not at all)
904 type: OS::TripleO::AllNodesExtraConfig
907 - ComputeAllNodesValidationDeployment
908 - BlockStorageAllNodesValidationDeployment
909 - ObjectStorageAllNodesValidationDeployment
910 - CephStorageAllNodesValidationDeployment
911 - ControllerAllNodesValidationDeployment
913 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
914 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
915 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
916 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
917 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
919 # Nested stack deployment runs after all other controller deployments
920 ControllerNodesPostDeployment:
921 type: OS::TripleO::ControllerPostDeployment
922 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
924 servers: {get_attr: [Controller, attributes, nova_server_resource]}
925 RoleData: {get_attr: [ControllerServiceChain, role_data]}
927 ComputeNodesPostDeployment:
928 type: OS::TripleO::ComputePostDeployment
929 depends_on: [ComputeAllNodesDeployment]
931 servers: {get_attr: [Compute, attributes, nova_server_resource]}
932 RoleData: {get_attr: [ComputeServiceChain, role_data]}
934 ObjectStorageNodesPostDeployment:
935 type: OS::TripleO::ObjectStoragePostDeployment
936 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
938 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
939 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
941 BlockStorageNodesPostDeployment:
942 type: OS::TripleO::BlockStoragePostDeployment
943 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
945 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
946 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
948 CephStorageNodesPostDeployment:
949 type: OS::TripleO::CephStoragePostDeployment
950 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
952 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
953 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
957 description: URL for the Overcloud Keystone service
958 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
960 description: Keystone Admin VIP endpoint
961 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
963 description: Controller VIP for public API endpoints
964 value: {get_attr: [VipMap, net_ip_map, external]}
966 description: VIP for Aodh API internal endpoint
967 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
968 CeilometerInternalVip:
969 description: VIP for Ceilometer API internal endpoint
970 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
972 description: VIP for Cinder API internal endpoint
973 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
975 description: VIP for Glance API internal endpoint
976 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
978 description: VIP for Gnocchi API internal endpoint
979 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
981 description: VIP for Heat API internal endpoint
982 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
984 description: VIP for Ironic API internal endpoint
985 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
987 description: VIP for Keystone API internal endpoint
988 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
990 description: VIP for Manila API internal endpoint
991 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
993 description: VIP for Neutron API internal endpoint
994 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
996 description: VIP for Nova API internal endpoint
997 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
999 description: VIP for Sahara API internal endpoint
1000 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1002 description: VIP for Swift Proxy internal endpoint
1003 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1006 Mapping of the resources with the needed info for their endpoints.
1007 This includes the protocol used, the IP, port and also a full
1008 representation of the URI.
1009 value: {get_attr: [EndpointMap, endpoint_map]}
1012 The content that should be appended to your /etc/hosts if you want to get
1013 hostname-based access to the deployed nodes (useful for testing without
1015 value: {get_attr: [allNodesConfig, hosts_entries]}
1017 description: The services enabled on each role
1019 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1020 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1021 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1022 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1023 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}