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 CloudDomain: {get_param: CloudDomain}
434 controllerExtraConfig: {get_param: controllerExtraConfig}
435 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
436 HorizonSecret: {get_resource: HorizonSecret}
437 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
438 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
439 PcsdPassword: {get_resource: PcsdPassword}
440 RabbitCookie: {get_attr: [RabbitCookie, value]}
441 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
442 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
443 ServiceNetMap: {get_param: ServiceNetMap}
444 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
445 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
448 template: {get_param: ControllerHostnameFormat}
450 '%stackname%': {get_param: 'OS::stack_name'}
452 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
453 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
457 type: OS::TripleO::Services
459 Services: {get_param: ComputeServices}
460 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
463 type: OS::Heat::ResourceGroup
466 count: {get_param: ComputeCount}
467 removal_policies: {get_param: ComputeRemovalPolicies}
469 type: OS::TripleO::Compute
471 CloudDomain: {get_param: CloudDomain}
472 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
473 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
474 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
475 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
476 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
477 # L3 HA and Failover is not relevant for Computes, should be removed
478 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
479 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
480 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
481 ServiceNetMap: {get_param: ServiceNetMap}
482 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
485 template: {get_param: ComputeHostnameFormat}
487 '%stackname%': {get_param: 'OS::stack_name'}
489 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
490 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
492 BlockStorageServiceChain:
493 type: OS::TripleO::Services
495 Services: {get_param: BlockStorageServices}
496 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
499 type: OS::Heat::ResourceGroup
502 count: {get_param: BlockStorageCount}
503 removal_policies: {get_param: BlockStorageRemovalPolicies}
505 type: OS::TripleO::BlockStorage
507 UpdateIdentifier: {get_param: UpdateIdentifier}
510 template: {get_param: BlockStorageHostnameFormat}
512 '%stackname%': {get_param: 'OS::stack_name'}
513 ServiceNetMap: {get_param: ServiceNetMap}
514 ExtraConfig: {get_param: ExtraConfig}
515 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
516 CloudDomain: {get_param: CloudDomain}
517 ServerMetadata: {get_param: ServerMetadata}
519 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
520 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
522 ObjectStorageServiceChain:
523 type: OS::TripleO::Services
525 Services: {get_param: ObjectStorageServices}
526 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
529 type: OS::Heat::ResourceGroup
532 count: {get_param: ObjectStorageCount}
533 removal_policies: {get_param: ObjectStorageRemovalPolicies}
535 type: OS::TripleO::ObjectStorage
537 HashSuffix: {get_param: SwiftHashSuffix}
538 UpdateIdentifier: {get_param: UpdateIdentifier}
539 ServiceNetMap: {get_param: ServiceNetMap}
542 template: {get_param: ObjectStorageHostnameFormat}
544 '%stackname%': {get_param: 'OS::stack_name'}
545 ExtraConfig: {get_param: ExtraConfig}
546 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
547 CloudDomain: {get_param: CloudDomain}
548 ServerMetadata: {get_param: ServerMetadata}
550 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
551 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
553 CephStorageServiceChain:
554 type: OS::TripleO::Services
556 Services: {get_param: CephStorageServices}
557 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
560 type: OS::Heat::ResourceGroup
563 count: {get_param: CephStorageCount}
564 removal_policies: {get_param: CephStorageRemovalPolicies}
566 type: OS::TripleO::CephStorage
568 ServiceNetMap: {get_param: ServiceNetMap}
569 UpdateIdentifier: {get_param: UpdateIdentifier}
572 template: {get_param: CephStorageHostnameFormat}
574 '%stackname%': {get_param: 'OS::stack_name'}
575 ExtraConfig: {get_param: ExtraConfig}
576 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
577 CloudDomain: {get_param: CloudDomain}
578 ServerMetadata: {get_param: ServerMetadata}
580 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
581 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
584 type: OS::TripleO::Network::Ports::NetIpListMap
586 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
587 ExternalIpList: {get_attr: [Controller, external_ip_address]}
588 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
589 StorageIpList: {get_attr: [Controller, storage_ip_address]}
590 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
591 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
592 ManagementIpList: {get_attr: [Controller, management_ip_address]}
595 type: OS::TripleO::AllNodes::SoftwareConfig
600 - {get_attr: [Compute, hosts_entry]}
603 - {get_attr: [Controller, hosts_entry]}
606 - {get_attr: [BlockStorage, hosts_entry]}
609 - {get_attr: [ObjectStorage, hosts_entry]}
612 - {get_attr: [CephStorage, hosts_entry]}
613 controller_ips: {get_attr: [Controller, ip_address]}
614 controller_names: {get_attr: [Controller, hostname]}
615 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
616 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
617 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
618 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
619 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
620 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
621 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
622 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
623 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
624 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
625 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
626 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
627 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
628 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
629 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
630 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
631 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
632 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
633 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
634 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
635 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
636 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
637 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
638 ceph_mon_node_names: {get_attr: [Controller, hostname]}
639 DeployIdentifier: {get_param: DeployIdentifier}
640 UpdateIdentifier: {get_param: UpdateIdentifier}
643 type: OS::Heat::RandomString
647 MysqlClusterUniquePart:
648 type: OS::Heat::RandomString
653 type: OS::Heat::RandomString
656 salt: {get_param: RabbitCookieSalt}
658 # creates the network architecture
660 type: OS::TripleO::Network
663 type: OS::Neutron::Port
666 name: control_virtual_ip
667 network: {get_param: NeutronControlPlaneID}
668 fixed_ips: {get_param: ControlFixedIPs}
669 replacement_policy: AUTO
673 type: OS::TripleO::Network::Ports::RedisVipPort
675 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
676 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
677 PortName: redis_virtual_ip
678 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
681 # The public VIP is on the External net, falls back to ctlplane
684 type: OS::TripleO::Network::Ports::ExternalVipPort
686 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
687 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
688 PortName: public_virtual_ip
689 FixedIPs: {get_param: PublicVirtualFixedIPs}
691 InternalApiVirtualIP:
693 type: OS::TripleO::Network::Ports::InternalApiVipPort
695 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
696 PortName: internal_api_virtual_ip
697 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
701 type: OS::TripleO::Network::Ports::StorageVipPort
703 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
704 PortName: storage_virtual_ip
705 FixedIPs: {get_param: StorageVirtualFixedIPs}
707 StorageMgmtVirtualIP:
709 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
711 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
712 PortName: storage_management_virtual_ip
713 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
716 type: OS::TripleO::Network::Ports::NetVipMap
718 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
719 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
720 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
721 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
722 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
723 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
724 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
725 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
726 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
727 # No tenant or management VIP required
730 type: OS::TripleO::VipConfig
733 type: OS::Heat::StructuredDeployments
736 config: {get_resource: VipConfig}
737 servers: {get_attr: [Controller, attributes, nova_server_resource]}
739 # service VIP mappings
740 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
741 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
742 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
743 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
744 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
745 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
746 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
747 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
748 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
749 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
750 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
751 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
752 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
753 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
754 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
755 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
756 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
757 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
758 # direct configuration of Virtual IPs for each network
759 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
760 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
761 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
762 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
763 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
764 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
765 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
767 ControllerSwiftDeployment:
768 type: OS::Heat::StructuredDeployments
770 name: ControllerSwiftDeployment
771 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
772 servers: {get_attr: [Controller, attributes, nova_server_resource]}
774 ObjectStorageSwiftDeployment:
775 type: OS::Heat::StructuredDeployments
777 name: ObjectStorageSwiftDeployment
778 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
779 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
781 SwiftDevicesAndProxyConfig:
782 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
784 controller_swift_devices: {get_attr: [Controller, swift_device]}
785 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
786 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
788 ControllerAllNodesDeployment:
789 type: OS::Heat::StructuredDeployments
791 name: ControllerAllNodesDeployment
792 config: {get_attr: [allNodesConfig, config_id]}
793 servers: {get_attr: [Controller, attributes, nova_server_resource]}
795 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
796 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
798 ComputeAllNodesDeployment:
799 type: OS::Heat::StructuredDeployments
801 name: ComputeAllNodesDeployment
802 config: {get_attr: [allNodesConfig, config_id]}
803 servers: {get_attr: [Compute, attributes, nova_server_resource]}
805 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
806 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
808 BlockStorageAllNodesDeployment:
809 type: OS::Heat::StructuredDeployments
811 name: BlockStorageAllNodesDeployment
812 config: {get_attr: [allNodesConfig, config_id]}
813 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
815 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
816 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
818 ObjectStorageAllNodesDeployment:
819 type: OS::Heat::StructuredDeployments
821 name: ObjectStorageAllNodesDeployment
822 config: {get_attr: [allNodesConfig, config_id]}
823 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
825 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
826 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
828 CephStorageAllNodesDeployment:
829 type: OS::Heat::StructuredDeployments
831 name: CephStorageAllNodesDeployment
832 config: {get_attr: [allNodesConfig, config_id]}
833 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
835 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
836 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
838 # All Nodes Validations
839 AllNodesValidationConfig:
840 type: OS::TripleO::AllNodes::Validation
845 - - {get_attr: [Controller, resource.0.external_ip_address]}
846 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
847 - {get_attr: [Controller, resource.0.storage_ip_address]}
848 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
849 - {get_attr: [Controller, resource.0.tenant_ip_address]}
851 ControllerAllNodesValidationDeployment:
852 type: OS::Heat::StructuredDeployments
853 depends_on: ControllerAllNodesDeployment
855 name: ControllerAllNodesValidationDeployment
856 config: {get_resource: AllNodesValidationConfig}
857 servers: {get_attr: [Controller, attributes, nova_server_resource]}
859 ComputeAllNodesValidationDeployment:
860 type: OS::Heat::StructuredDeployments
861 depends_on: ComputeAllNodesDeployment
863 name: ComputeAllNodesValidationDeployment
864 config: {get_resource: AllNodesValidationConfig}
865 servers: {get_attr: [Compute, attributes, nova_server_resource]}
867 BlockStorageAllNodesValidationDeployment:
868 type: OS::Heat::StructuredDeployments
869 depends_on: BlockStorageAllNodesDeployment
871 name: BlockStorageAllNodesValidationDeployment
872 config: {get_resource: AllNodesValidationConfig}
873 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
875 ObjectStorageAllNodesValidationDeployment:
876 type: OS::Heat::StructuredDeployments
877 depends_on: ObjectStorageAllNodesDeployment
879 name: ObjectStorageAllNodesValidationDeployment
880 config: {get_resource: AllNodesValidationConfig}
881 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
883 CephStorageAllNodesValidationDeployment:
884 type: OS::Heat::StructuredDeployments
885 depends_on: CephStorageAllNodesDeployment
887 name: CephStorageAllNodesValidationDeployment
888 config: {get_resource: AllNodesValidationConfig}
889 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
892 type: OS::TripleO::Tasks::UpdateWorkflow
894 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
895 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
896 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
897 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
898 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
900 deploy_identifier: {get_param: DeployIdentifier}
901 update_identifier: {get_param: UpdateIdentifier}
903 # Optional ExtraConfig for all nodes - all roles are passed in here, but
904 # the nested template may configure each role differently (or not at all)
906 type: OS::TripleO::AllNodesExtraConfig
909 - ComputeAllNodesValidationDeployment
910 - BlockStorageAllNodesValidationDeployment
911 - ObjectStorageAllNodesValidationDeployment
912 - CephStorageAllNodesValidationDeployment
913 - ControllerAllNodesValidationDeployment
915 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
916 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
917 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
918 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
919 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
921 # Nested stack deployment runs after all other controller deployments
922 ControllerNodesPostDeployment:
923 type: OS::TripleO::ControllerPostDeployment
924 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
926 servers: {get_attr: [Controller, attributes, nova_server_resource]}
927 RoleData: {get_attr: [ControllerServiceChain, role_data]}
929 ComputeNodesPostDeployment:
930 type: OS::TripleO::ComputePostDeployment
931 depends_on: [ComputeAllNodesDeployment]
933 servers: {get_attr: [Compute, attributes, nova_server_resource]}
934 RoleData: {get_attr: [ComputeServiceChain, role_data]}
936 ObjectStorageNodesPostDeployment:
937 type: OS::TripleO::ObjectStoragePostDeployment
938 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
940 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
941 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
943 BlockStorageNodesPostDeployment:
944 type: OS::TripleO::BlockStoragePostDeployment
945 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
947 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
948 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
950 CephStorageNodesPostDeployment:
951 type: OS::TripleO::CephStoragePostDeployment
952 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
954 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
955 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
959 description: URL for the Overcloud Keystone service
960 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
962 description: Keystone Admin VIP endpoint
963 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
965 description: Controller VIP for public API endpoints
966 value: {get_attr: [VipMap, net_ip_map, external]}
968 description: VIP for Aodh API internal endpoint
969 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
970 CeilometerInternalVip:
971 description: VIP for Ceilometer API internal endpoint
972 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
974 description: VIP for Cinder API internal endpoint
975 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
977 description: VIP for Glance API internal endpoint
978 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
980 description: VIP for Gnocchi API internal endpoint
981 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
983 description: VIP for Heat API internal endpoint
984 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
986 description: VIP for Ironic API internal endpoint
987 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
989 description: VIP for Keystone API internal endpoint
990 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
992 description: VIP for Manila API internal endpoint
993 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
995 description: VIP for Neutron API internal endpoint
996 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
998 description: VIP for Nova API internal endpoint
999 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1001 description: VIP for Sahara API internal endpoint
1002 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1004 description: VIP for Swift Proxy internal endpoint
1005 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1008 Mapping of the resources with the needed info for their endpoints.
1009 This includes the protocol used, the IP, port and also a full
1010 representation of the URI.
1011 value: {get_attr: [EndpointMap, endpoint_map]}
1014 The content that should be appended to your /etc/hosts if you want to get
1015 hostname-based access to the deployed nodes (useful for testing without
1017 value: {get_attr: [allNodesConfig, hosts_entries]}
1019 description: The services enabled on each role
1021 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1022 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1023 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1024 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1025 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}