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)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
19 CinderEnableNfsBackend:
21 description: Whether to enable or not the NFS backend for Cinder
23 CinderEnableRbdBackend:
25 description: Whether to enable or not the Rbd backend for Cinder
29 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
33 description: Should be used for arbitrary ips.
37 description: Set to True to enable debugging on all services.
39 InternalApiVirtualFixedIPs:
42 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
43 [{'ip_address':'1.2.3.4'}]
45 NeutronControlPlaneID:
48 description: Neutron ID or name for ctlplane network.
50 description: The password for the neutron service account, used by neutron agents.
53 NeutronPublicInterface:
55 description: What interface to bridge onto br-ex for network nodes.
59 description: Enable IPv6 features in Nova
62 description: The password for the nova service account, used by nova-api.
65 PublicVirtualFixedIPs:
68 Control the IP allocation for the PublicVirtualInterface port. E.g.
69 [{'ip_address':'1.2.3.4'}]
74 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
77 description: The username for RabbitMQ
80 description: The password for RabbitMQ
86 Rabbit client subscriber parameter to specify
87 an SSL connection to the RabbitMQ host.
91 description: Set rabbit subscriber port, change this if using SSL
93 StorageVirtualFixedIPs:
96 Control the IP allocation for the StorageVirtualInterface port. E.g.
97 [{'ip_address':'1.2.3.4'}]
99 StorageMgmtVirtualFixedIPs:
102 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
103 [{'ip_address':'1.2.3.4'}]
106 default: 'localdomain'
109 The DNS domain used for the hosts. This should match the dhcp_domain
110 configured in the Undercloud neutron. Defaults to localdomain.
114 Extra properties or metadata passed to Nova for the created nodes in
115 the overcloud. It's accessible via the Nova metadata API.
118 # Controller-specific params
122 controllerExtraConfig:
125 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
130 Additional configuration to inject into the cluster. The format required
131 may be implementation specific, e.g puppet hieradata. Any role specific
132 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
135 description: A random string to be used as a salt when hashing to determine mappings in the ring.
140 # Compute-specific params
144 HypervisorNeutronPhysicalBridge:
147 An OVS bridge to create on each hypervisor. This defaults to br-ex the
148 same as the control plane nodes, as we have a uniform configuration of
149 the openvswitch agent. Typically should not need to be changed.
151 HypervisorNeutronPublicInterface:
153 description: What interface to add to the HypervisorNeutronPhysicalBridge.
157 default: libvirt.LibvirtDriver
158 NovaComputeExtraConfig:
161 NovaCompute specific configuration to inject into the cluster. Same
162 structure as ExtraConfig.
164 NovaComputeLibvirtType:
167 NovaComputeLibvirtVifDriver:
169 description: Libvirt VIF driver configuration for the network
171 NovaEnableRbdBackend:
173 description: Whether to enable or not the Rbd backend for Nova
177 description: Name of integration bridge used by Open vSwitch
179 NovaSecurityGroupAPI:
181 description: The full class name of the security API class
185 NeutronTenantNetwork: tenant
186 CeilometerApiNetwork: internal_api
187 AodhApiNetwork: internal_api
188 GnocchiApiNetwork: internal_api
189 MongoDbNetwork: internal_api
190 CinderApiNetwork: internal_api
191 CinderIscsiNetwork: storage
192 GlanceApiNetwork: storage
193 GlanceRegistryNetwork: internal_api
194 IronicApiNetwork: internal_api
195 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
196 KeystonePublicApiNetwork: internal_api
197 ManilaApiNetwork: internal_api
198 NeutronApiNetwork: internal_api
199 HeatApiNetwork: internal_api
200 NovaApiNetwork: internal_api
201 NovaMetadataNetwork: internal_api
202 NovaVncProxyNetwork: internal_api
203 SwiftMgmtNetwork: storage_mgmt
204 SwiftProxyNetwork: storage
205 SaharaApiNetwork: internal_api
206 HorizonNetwork: internal_api
207 MemcachedNetwork: internal_api
208 RabbitMqNetwork: internal_api
209 RedisNetwork: internal_api
210 MysqlNetwork: internal_api
211 CephClusterNetwork: storage_mgmt
212 CephPublicNetwork: storage
213 ControllerHostnameResolveNetwork: internal_api
214 ComputeHostnameResolveNetwork: internal_api
215 BlockStorageHostnameResolveNetwork: internal_api
216 ObjectStorageHostnameResolveNetwork: internal_api
217 CephStorageHostnameResolveNetwork: storage
218 description: Mapping of service_name -> network name. Typically set
219 via parameter_defaults in the resource registry.
224 - OS::TripleO::Services::CephMon
225 - OS::TripleO::Services::CephExternal
226 - OS::TripleO::Services::CinderApi
227 - OS::TripleO::Services::CinderScheduler
228 - OS::TripleO::Services::CinderVolume
229 - OS::TripleO::Services::Core
230 - OS::TripleO::Services::Kernel
231 - OS::TripleO::Services::Keystone
232 - OS::TripleO::Services::GlanceApi
233 - OS::TripleO::Services::GlanceRegistry
234 - OS::TripleO::Services::HeatApi
235 - OS::TripleO::Services::HeatApiCfn
236 - OS::TripleO::Services::HeatApiCloudwatch
237 - OS::TripleO::Services::HeatEngine
238 - OS::TripleO::Services::MySQL
239 - OS::TripleO::Services::NeutronDhcpAgent
240 - OS::TripleO::Services::NeutronL3Agent
241 - OS::TripleO::Services::NeutronMetadataAgent
242 - OS::TripleO::Services::NeutronServer
243 - OS::TripleO::Services::NeutronCorePlugin
244 - OS::TripleO::Services::NeutronOvsAgent
245 - OS::TripleO::Services::RabbitMQ
246 - OS::TripleO::Services::HAproxy
247 - OS::TripleO::Services::Keepalived
248 - OS::TripleO::Services::Memcached
249 - OS::TripleO::Services::Pacemaker
250 - OS::TripleO::Services::Redis
251 - OS::TripleO::Services::NovaConductor
252 - OS::TripleO::Services::MongoDb
253 - OS::TripleO::Services::NovaApi
254 - OS::TripleO::Services::NovaScheduler
255 - OS::TripleO::Services::NovaConsoleauth
256 - OS::TripleO::Services::NovaVncproxy
257 - OS::TripleO::Services::Ntp
258 - OS::TripleO::Services::SwiftProxy
259 - OS::TripleO::Services::SwiftStorage
260 - OS::TripleO::Services::SwiftRingBuilder
261 - OS::TripleO::Services::Snmp
262 - OS::TripleO::Services::Timezone
263 - OS::TripleO::Services::CeilometerApi
264 - OS::TripleO::Services::CeilometerCollector
265 - OS::TripleO::Services::CeilometerExpirer
266 - OS::TripleO::Services::CeilometerAgentCentral
267 - OS::TripleO::Services::CeilometerAgentNotification
268 - OS::TripleO::Services::Horizon
269 - OS::TripleO::Services::GnocchiApi
270 - OS::TripleO::Services::GnocchiMetricd
271 - OS::TripleO::Services::GnocchiStatsd
272 - OS::Tripleo::Services::ManilaApi
273 - OS::Tripleo::Services::ManilaScheduler
274 - OS::Tripleo::Services::ManilaShare
275 - OS::TripleO::Services::AodhApi
276 - OS::TripleO::Services::AodhEvaluator
277 - OS::TripleO::Services::AodhNotifier
278 - OS::TripleO::Services::AodhListener
279 - OS::TripleO::Services::SaharaApi
280 - OS::TripleO::Services::SaharaEngine
281 description: A list of service resources (configured in the Heat
282 resource_registry) which represent nested stacks
283 for each service that should get installed on the Controllers.
284 type: comma_delimited_list
288 - OS::TripleO::Services::CephClient
289 - OS::TripleO::Services::CephExternal
290 - OS::TripleO::Services::Timezone
291 - OS::TripleO::Services::Ntp
292 - OS::TripleO::Services::Snmp
293 - OS::TripleO::Services::NovaCompute
294 - OS::TripleO::Services::NovaLibvirt
295 - OS::TripleO::Services::Kernel
296 - OS::TripleO::Services::ComputeNeutronCorePlugin
297 - OS::TripleO::Services::ComputeNeutronOvsAgent
298 - OS::TripleO::Services::ComputeCeilometerAgent
299 - OS::TripleO::Services::ComputeNeutronL3Agent
300 - OS::TripleO::Services::ComputeNeutronMetadataAgent
301 description: A list of service resources (configured in the Heat
302 resource_registry) which represent nested stacks
303 for each service that should get installed on the Compute Nodes.
304 type: comma_delimited_list
306 # Block storage specific parameters
310 BlockStorageExtraConfig:
313 BlockStorage specific configuration to inject into the cluster. Same
314 structure as ExtraConfig.
316 BlockStorageServices:
318 - OS::TripleO::Services::CinderVolume
319 - OS::TripleO::Services::Kernel
320 - OS::TripleO::Services::Ntp
321 - OS::TripleO::Services::Timezone
322 - OS::TripleO::Services::Snmp
323 description: A list of service resources (configured in the Heat
324 resource_registry) which represent nested stacks
325 for each service that should get installed on the BlockStorage nodes.
326 type: comma_delimited_list
328 # Object storage specific parameters
332 ObjectStorageExtraConfig:
335 ObjectStorage specific configuration to inject into the cluster. Same
336 structure as ExtraConfig.
338 ObjectStorageServices:
340 - OS::TripleO::Services::Kernel
341 - OS::TripleO::Services::Ntp
342 - OS::TripleO::Services::SwiftStorage
343 - OS::TripleO::Services::SwiftRingBuilder
344 - OS::TripleO::Services::Snmp
345 - OS::TripleO::Services::Timezone
346 description: A list of service resources (configured in the Heat
347 resource_registry) which represent nested stacks
348 for each service that should get installed on the ObjectStorage nodes.
349 Note this role currently only supports steps 2, 3 and 4 configuration.
350 type: comma_delimited_list
353 # Ceph storage specific parameters
357 CephStorageExtraConfig:
360 CephStorage specific configuration to inject into the cluster. Same
361 structure as ExtraConfig.
365 - OS::TripleO::Services::CephOSD
366 - OS::TripleO::Services::Kernel
367 - OS::TripleO::Services::Ntp
368 - OS::TripleO::Services::Timezone
369 description: A list of service resources (configured in the Heat
370 resource_registry) which represent nested stacks
371 for each service that should get installed on the CephStorage nodes.
372 type: comma_delimited_list
374 # Hostname format for each role
375 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
376 # and %stackname% is replaced with OS::stack_name in the template below.
377 # If you want to use the heat generated names, pass '' (empty string).
378 ControllerHostnameFormat:
380 description: Format for Controller node hostnames
381 default: '%stackname%-controller-%index%'
382 ComputeHostnameFormat:
384 description: Format for Compute node hostnames
385 default: '%stackname%-novacompute-%index%'
386 BlockStorageHostnameFormat:
388 description: Format for BlockStorage node hostnames
389 default: '%stackname%-blockstorage-%index%'
390 ObjectStorageHostnameFormat:
392 description: Format for SwiftStorage node hostnames
393 default: '%stackname%-objectstorage-%index%'
394 CephStorageHostnameFormat:
396 description: Format for CephStorage node hostnames
397 default: '%stackname%-cephstorage-%index%'
399 # Identifiers to trigger tasks on nodes
404 Setting to a previously unused value during stack-update will trigger
405 package update on all nodes
410 Setting this to a unique value will re-run any deployment tasks which
411 perform configuration on a Heat stack-update.
413 # If you want to remove a specific node from a resource group, you can pass
414 # the node name or id as a <Group>RemovalPolicies parameter, for example:
415 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
416 ControllerRemovalPolicies:
420 List of resources to be removed from ControllerResourceGroup when
421 doing an update which requires removal of specific resources.
422 ComputeRemovalPolicies:
426 List of resources to be removed from ComputeResourceGroup when
427 doing an update which requires removal of specific resources.
428 BlockStorageRemovalPolicies:
432 List of resources to be removed from BlockStorageResourceGroup when
433 doing an update which requires removal of specific resources.
434 ObjectStorageRemovalPolicies:
438 List of resources to be removed from ObjectStorageResourceGroup when
439 doing an update which requires removal of specific resources.
440 CephStorageRemovalPolicies:
444 List of resources to be removed from CephStorageResourceGroup when
445 doing an update which requires removal of specific resources.
449 description: Do not use deprecated params, they will be removed.
451 - controllerExtraConfig
456 HeatAuthEncryptionKey:
457 type: OS::Heat::RandomString
460 type: OS::Heat::RandomString
465 type: OS::Heat::RandomString
470 type: OS::TripleO::EndpointMap
472 CloudName: {get_param: CloudName}
473 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
474 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
475 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
476 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
477 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
478 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
479 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
480 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
481 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
482 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
483 ManilaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
484 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
485 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
486 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
487 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
488 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
489 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
490 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
492 ControllerServiceChain:
493 type: OS::TripleO::Services
495 Services: {get_param: ControllerServices}
496 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
499 type: OS::Heat::ResourceGroup
502 count: {get_param: ControllerCount}
503 removal_policies: {get_param: ControllerRemovalPolicies}
505 type: OS::TripleO::Controller
507 controllerExtraConfig: {get_param: controllerExtraConfig}
508 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
509 HorizonSecret: {get_resource: HorizonSecret}
510 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
511 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
512 PcsdPassword: {get_resource: PcsdPassword}
513 RabbitCookie: {get_attr: [RabbitCookie, value]}
514 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
515 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
516 ServiceNetMap: {get_param: ServiceNetMap}
517 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
518 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
521 template: {get_param: ControllerHostnameFormat}
523 '%stackname%': {get_param: 'OS::stack_name'}
525 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
526 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
530 type: OS::TripleO::Services
532 Services: {get_param: ComputeServices}
533 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
536 type: OS::Heat::ResourceGroup
539 count: {get_param: ComputeCount}
540 removal_policies: {get_param: ComputeRemovalPolicies}
542 type: OS::TripleO::Compute
544 AdminPassword: {get_param: AdminPassword}
545 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
546 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
547 Debug: {get_param: Debug}
548 ExtraConfig: {get_param: ExtraConfig}
549 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
550 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
551 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
552 NeutronPassword: {get_param: NeutronPassword}
553 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
554 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
555 # L3 HA and Failover is not relevant for Computes, should be removed
556 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
557 NovaComputeDriver: {get_param: NovaComputeDriver}
558 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
559 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
560 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
561 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
562 NovaIPv6: {get_param: NovaIPv6}
563 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
564 NovaPassword: {get_param: NovaPassword}
565 NovaOVSBridge: {get_param: NovaOVSBridge}
566 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
567 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
568 RabbitPassword: {get_param: RabbitPassword}
569 RabbitUserName: {get_param: RabbitUserName}
570 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
571 RabbitClientPort: {get_param: RabbitClientPort}
572 ServiceNetMap: {get_param: ServiceNetMap}
573 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
574 UpdateIdentifier: {get_param: UpdateIdentifier}
577 template: {get_param: ComputeHostnameFormat}
579 '%stackname%': {get_param: 'OS::stack_name'}
580 CloudDomain: {get_param: CloudDomain}
581 ServerMetadata: {get_param: ServerMetadata}
583 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
584 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
586 BlockStorageServiceChain:
587 type: OS::TripleO::Services
589 Services: {get_param: BlockStorageServices}
590 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
593 type: OS::Heat::ResourceGroup
596 count: {get_param: BlockStorageCount}
597 removal_policies: {get_param: BlockStorageRemovalPolicies}
599 type: OS::TripleO::BlockStorage
601 UpdateIdentifier: {get_param: UpdateIdentifier}
604 template: {get_param: BlockStorageHostnameFormat}
606 '%stackname%': {get_param: 'OS::stack_name'}
607 ServiceNetMap: {get_param: ServiceNetMap}
608 ExtraConfig: {get_param: ExtraConfig}
609 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
610 CloudDomain: {get_param: CloudDomain}
611 ServerMetadata: {get_param: ServerMetadata}
613 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
614 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
616 ObjectStorageServiceChain:
617 type: OS::TripleO::Services
619 Services: {get_param: ObjectStorageServices}
620 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
623 type: OS::Heat::ResourceGroup
626 count: {get_param: ObjectStorageCount}
627 removal_policies: {get_param: ObjectStorageRemovalPolicies}
629 type: OS::TripleO::ObjectStorage
631 HashSuffix: {get_param: SwiftHashSuffix}
632 UpdateIdentifier: {get_param: UpdateIdentifier}
633 ServiceNetMap: {get_param: ServiceNetMap}
636 template: {get_param: ObjectStorageHostnameFormat}
638 '%stackname%': {get_param: 'OS::stack_name'}
639 ExtraConfig: {get_param: ExtraConfig}
640 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
641 CloudDomain: {get_param: CloudDomain}
642 ServerMetadata: {get_param: ServerMetadata}
644 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
645 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
647 CephStorageServiceChain:
648 type: OS::TripleO::Services
650 Services: {get_param: CephStorageServices}
651 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
654 type: OS::Heat::ResourceGroup
657 count: {get_param: CephStorageCount}
658 removal_policies: {get_param: CephStorageRemovalPolicies}
660 type: OS::TripleO::CephStorage
662 ServiceNetMap: {get_param: ServiceNetMap}
663 UpdateIdentifier: {get_param: UpdateIdentifier}
666 template: {get_param: CephStorageHostnameFormat}
668 '%stackname%': {get_param: 'OS::stack_name'}
669 ExtraConfig: {get_param: ExtraConfig}
670 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
671 CloudDomain: {get_param: CloudDomain}
672 ServerMetadata: {get_param: ServerMetadata}
674 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
675 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
678 type: OS::TripleO::Network::Ports::NetIpListMap
680 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
681 ExternalIpList: {get_attr: [Controller, external_ip_address]}
682 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
683 StorageIpList: {get_attr: [Controller, storage_ip_address]}
684 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
685 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
686 ManagementIpList: {get_attr: [Controller, management_ip_address]}
689 type: OS::TripleO::AllNodes::SoftwareConfig
694 - {get_attr: [Compute, hosts_entry]}
697 - {get_attr: [Controller, hosts_entry]}
700 - {get_attr: [BlockStorage, hosts_entry]}
703 - {get_attr: [ObjectStorage, hosts_entry]}
706 - {get_attr: [CephStorage, hosts_entry]}
707 controller_ips: {get_attr: [Controller, ip_address]}
708 controller_names: {get_attr: [Controller, hostname]}
709 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
710 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
711 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
712 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
713 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
714 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
715 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
716 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
717 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
718 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
719 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
720 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
721 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
722 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
723 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
724 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
725 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
726 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
727 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
728 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
729 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
730 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
731 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
732 ceph_mon_node_names: {get_attr: [Controller, hostname]}
733 DeployIdentifier: {get_param: DeployIdentifier}
734 UpdateIdentifier: {get_param: UpdateIdentifier}
737 type: OS::Heat::RandomString
741 MysqlClusterUniquePart:
742 type: OS::Heat::RandomString
747 type: OS::Heat::RandomString
750 salt: {get_param: RabbitCookieSalt}
752 # creates the network architecture
754 type: OS::TripleO::Network
757 type: OS::Neutron::Port
760 name: control_virtual_ip
761 network: {get_param: NeutronControlPlaneID}
762 fixed_ips: {get_param: ControlFixedIPs}
763 replacement_policy: AUTO
767 type: OS::TripleO::Network::Ports::RedisVipPort
769 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
770 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
771 PortName: redis_virtual_ip
772 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
775 # The public VIP is on the External net, falls back to ctlplane
778 type: OS::TripleO::Network::Ports::ExternalVipPort
780 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
781 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
782 PortName: public_virtual_ip
783 FixedIPs: {get_param: PublicVirtualFixedIPs}
785 InternalApiVirtualIP:
787 type: OS::TripleO::Network::Ports::InternalApiVipPort
789 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
790 PortName: internal_api_virtual_ip
791 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
795 type: OS::TripleO::Network::Ports::StorageVipPort
797 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
798 PortName: storage_virtual_ip
799 FixedIPs: {get_param: StorageVirtualFixedIPs}
801 StorageMgmtVirtualIP:
803 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
805 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
806 PortName: storage_management_virtual_ip
807 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
810 type: OS::TripleO::Network::Ports::NetVipMap
812 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
813 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
814 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
815 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
816 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
817 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
818 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
819 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
820 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
821 # No tenant or management VIP required
824 type: OS::TripleO::VipConfig
827 type: OS::Heat::StructuredDeployments
830 config: {get_resource: VipConfig}
831 servers: {get_attr: [Controller, attributes, nova_server_resource]}
833 # service VIP mappings
834 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
835 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
836 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
837 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
838 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
839 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
840 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
841 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
842 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
843 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
844 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
845 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
846 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
847 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
848 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
849 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
850 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
851 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
852 # direct configuration of Virtual IPs for each network
853 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
854 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
855 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
856 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
857 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
858 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
859 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
861 ControllerSwiftDeployment:
862 type: OS::Heat::StructuredDeployments
864 name: ControllerSwiftDeployment
865 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
866 servers: {get_attr: [Controller, attributes, nova_server_resource]}
868 ObjectStorageSwiftDeployment:
869 type: OS::Heat::StructuredDeployments
871 name: ObjectStorageSwiftDeployment
872 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
873 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
875 SwiftDevicesAndProxyConfig:
876 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
878 controller_swift_devices: {get_attr: [Controller, swift_device]}
879 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
880 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
882 ControllerAllNodesDeployment:
883 type: OS::Heat::StructuredDeployments
885 name: ControllerAllNodesDeployment
886 config: {get_attr: [allNodesConfig, config_id]}
887 servers: {get_attr: [Controller, attributes, nova_server_resource]}
889 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
890 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
892 ComputeAllNodesDeployment:
893 type: OS::Heat::StructuredDeployments
895 name: ComputeAllNodesDeployment
896 config: {get_attr: [allNodesConfig, config_id]}
897 servers: {get_attr: [Compute, attributes, nova_server_resource]}
899 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
900 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
902 BlockStorageAllNodesDeployment:
903 type: OS::Heat::StructuredDeployments
905 name: BlockStorageAllNodesDeployment
906 config: {get_attr: [allNodesConfig, config_id]}
907 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
909 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
910 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
912 ObjectStorageAllNodesDeployment:
913 type: OS::Heat::StructuredDeployments
915 name: ObjectStorageAllNodesDeployment
916 config: {get_attr: [allNodesConfig, config_id]}
917 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
919 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
920 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
922 CephStorageAllNodesDeployment:
923 type: OS::Heat::StructuredDeployments
925 name: CephStorageAllNodesDeployment
926 config: {get_attr: [allNodesConfig, config_id]}
927 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
929 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
930 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
932 # All Nodes Validations
933 AllNodesValidationConfig:
934 type: OS::TripleO::AllNodes::Validation
939 - - {get_attr: [Controller, resource.0.external_ip_address]}
940 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
941 - {get_attr: [Controller, resource.0.storage_ip_address]}
942 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
943 - {get_attr: [Controller, resource.0.tenant_ip_address]}
945 ControllerAllNodesValidationDeployment:
946 type: OS::Heat::StructuredDeployments
947 depends_on: ControllerAllNodesDeployment
949 name: ControllerAllNodesValidationDeployment
950 config: {get_resource: AllNodesValidationConfig}
951 servers: {get_attr: [Controller, attributes, nova_server_resource]}
953 ComputeAllNodesValidationDeployment:
954 type: OS::Heat::StructuredDeployments
955 depends_on: ComputeAllNodesDeployment
957 name: ComputeAllNodesValidationDeployment
958 config: {get_resource: AllNodesValidationConfig}
959 servers: {get_attr: [Compute, attributes, nova_server_resource]}
961 BlockStorageAllNodesValidationDeployment:
962 type: OS::Heat::StructuredDeployments
963 depends_on: BlockStorageAllNodesDeployment
965 name: BlockStorageAllNodesValidationDeployment
966 config: {get_resource: AllNodesValidationConfig}
967 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
969 ObjectStorageAllNodesValidationDeployment:
970 type: OS::Heat::StructuredDeployments
971 depends_on: ObjectStorageAllNodesDeployment
973 name: ObjectStorageAllNodesValidationDeployment
974 config: {get_resource: AllNodesValidationConfig}
975 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
977 CephStorageAllNodesValidationDeployment:
978 type: OS::Heat::StructuredDeployments
979 depends_on: CephStorageAllNodesDeployment
981 name: CephStorageAllNodesValidationDeployment
982 config: {get_resource: AllNodesValidationConfig}
983 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
986 type: OS::TripleO::Tasks::UpdateWorkflow
988 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
989 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
990 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
991 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
992 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
994 deploy_identifier: {get_param: DeployIdentifier}
995 update_identifier: {get_param: UpdateIdentifier}
997 # Optional ExtraConfig for all nodes - all roles are passed in here, but
998 # the nested template may configure each role differently (or not at all)
1000 type: OS::TripleO::AllNodesExtraConfig
1003 - ComputeAllNodesValidationDeployment
1004 - BlockStorageAllNodesValidationDeployment
1005 - ObjectStorageAllNodesValidationDeployment
1006 - CephStorageAllNodesValidationDeployment
1007 - ControllerAllNodesValidationDeployment
1009 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1010 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1011 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1012 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1013 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1015 # Nested stack deployment runs after all other controller deployments
1016 ControllerNodesPostDeployment:
1017 type: OS::TripleO::ControllerPostDeployment
1018 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
1020 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1021 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1023 ComputeNodesPostDeployment:
1024 type: OS::TripleO::ComputePostDeployment
1025 depends_on: [ComputeAllNodesDeployment]
1027 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1028 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1030 ObjectStorageNodesPostDeployment:
1031 type: OS::TripleO::ObjectStoragePostDeployment
1032 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1034 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1035 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1037 BlockStorageNodesPostDeployment:
1038 type: OS::TripleO::BlockStoragePostDeployment
1039 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1041 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1042 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1044 CephStorageNodesPostDeployment:
1045 type: OS::TripleO::CephStoragePostDeployment
1046 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
1048 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1049 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1053 description: URL for the Overcloud Keystone service
1054 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1056 description: Keystone Admin VIP endpoint
1057 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1059 description: Controller VIP for public API endpoints
1060 value: {get_attr: [VipMap, net_ip_map, external]}
1062 description: VIP for Aodh API internal endpoint
1063 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1064 CeilometerInternalVip:
1065 description: VIP for Ceilometer API internal endpoint
1066 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1068 description: VIP for Cinder API internal endpoint
1069 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1071 description: VIP for Glance API internal endpoint
1072 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1074 description: VIP for Gnocchi API internal endpoint
1075 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1077 description: VIP for Heat API internal endpoint
1078 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1080 description: VIP for Ironic API internal endpoint
1081 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1082 KeystoneInternalVip:
1083 description: VIP for Keystone API internal endpoint
1084 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1086 description: VIP for Manila API internal endpoint
1087 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
1089 description: VIP for Neutron API internal endpoint
1090 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1092 description: VIP for Nova API internal endpoint
1093 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1095 description: VIP for Sahara API internal endpoint
1096 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1098 description: VIP for Swift Proxy internal endpoint
1099 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1102 Mapping of the resources with the needed info for their endpoints.
1103 This includes the protocol used, the IP, port and also a full
1104 representation of the URI.
1105 value: {get_attr: [EndpointMap, endpoint_map]}
1108 The content that should be appended to your /etc/hosts if you want to get
1109 hostname-based access to the deployed nodes (useful for testing without
1111 value: {get_attr: [allNodesConfig, hosts_entries]}
1113 description: The services enabled on each role
1115 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1116 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1117 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1118 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1119 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}