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.
127 OvercloudControlFlavor:
128 description: Flavor for control nodes to request when deploying.
132 - custom_constraint: nova.flavor
136 Additional configuration to inject into the cluster. The format required
137 may be implementation specific, e.g puppet hieradata. Any role specific
138 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
141 description: A random string to be used as a salt when hashing to determine mappings in the ring.
146 # Compute-specific params
150 HypervisorNeutronPhysicalBridge:
153 An OVS bridge to create on each hypervisor. This defaults to br-ex the
154 same as the control plane nodes, as we have a uniform configuration of
155 the openvswitch agent. Typically should not need to be changed.
157 HypervisorNeutronPublicInterface:
159 description: What interface to add to the HypervisorNeutronPhysicalBridge.
163 default: libvirt.LibvirtDriver
164 NovaComputeExtraConfig:
167 NovaCompute specific configuration to inject into the cluster. Same
168 structure as ExtraConfig.
170 NovaComputeLibvirtType:
173 NovaComputeLibvirtVifDriver:
175 description: Libvirt VIF driver configuration for the network
177 NovaEnableRbdBackend:
179 description: Whether to enable or not the Rbd backend for Nova
183 description: Name of integration bridge used by Open vSwitch
185 NovaSecurityGroupAPI:
187 description: The full class name of the security API class
189 OvercloudComputeFlavor:
190 description: Use this flavor
194 - custom_constraint: nova.flavor
197 NeutronTenantNetwork: tenant
198 CeilometerApiNetwork: internal_api
199 AodhApiNetwork: internal_api
200 GnocchiApiNetwork: internal_api
201 MongoDbNetwork: internal_api
202 CinderApiNetwork: internal_api
203 CinderIscsiNetwork: storage
204 GlanceApiNetwork: storage
205 GlanceRegistryNetwork: internal_api
206 IronicApiNetwork: internal_api
207 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
208 KeystonePublicApiNetwork: internal_api
209 ManilaApiNetwork: internal_api
210 NeutronApiNetwork: internal_api
211 HeatApiNetwork: internal_api
212 NovaApiNetwork: internal_api
213 NovaMetadataNetwork: internal_api
214 NovaVncProxyNetwork: internal_api
215 SwiftMgmtNetwork: storage_mgmt
216 SwiftProxyNetwork: storage
217 SaharaApiNetwork: internal_api
218 HorizonNetwork: internal_api
219 MemcachedNetwork: internal_api
220 RabbitMqNetwork: internal_api
221 RedisNetwork: internal_api
222 MysqlNetwork: internal_api
223 CephClusterNetwork: storage_mgmt
224 CephPublicNetwork: storage
225 ControllerHostnameResolveNetwork: internal_api
226 ComputeHostnameResolveNetwork: internal_api
227 BlockStorageHostnameResolveNetwork: internal_api
228 ObjectStorageHostnameResolveNetwork: internal_api
229 CephStorageHostnameResolveNetwork: storage
230 description: Mapping of service_name -> network name. Typically set
231 via parameter_defaults in the resource registry.
236 - OS::TripleO::Services::CephMon
237 - OS::TripleO::Services::CephExternal
238 - OS::TripleO::Services::CinderApi
239 - OS::TripleO::Services::CinderScheduler
240 - OS::TripleO::Services::CinderVolume
241 - OS::TripleO::Services::Core
242 - OS::TripleO::Services::Kernel
243 - OS::TripleO::Services::Keystone
244 - OS::TripleO::Services::GlanceApi
245 - OS::TripleO::Services::GlanceRegistry
246 - OS::TripleO::Services::HeatApi
247 - OS::TripleO::Services::HeatApiCfn
248 - OS::TripleO::Services::HeatApiCloudwatch
249 - OS::TripleO::Services::HeatEngine
250 - OS::TripleO::Services::MySQL
251 - OS::TripleO::Services::NeutronDhcpAgent
252 - OS::TripleO::Services::NeutronL3Agent
253 - OS::TripleO::Services::NeutronMetadataAgent
254 - OS::TripleO::Services::NeutronServer
255 - OS::TripleO::Services::NeutronCorePlugin
256 - OS::TripleO::Services::NeutronOvsAgent
257 - OS::TripleO::Services::RabbitMQ
258 - OS::TripleO::Services::HAproxy
259 - OS::TripleO::Services::Keepalived
260 - OS::TripleO::Services::Memcached
261 - OS::TripleO::Services::Pacemaker
262 - OS::TripleO::Services::Redis
263 - OS::TripleO::Services::NovaConductor
264 - OS::TripleO::Services::MongoDb
265 - OS::TripleO::Services::NovaApi
266 - OS::TripleO::Services::NovaScheduler
267 - OS::TripleO::Services::NovaConsoleauth
268 - OS::TripleO::Services::NovaVncproxy
269 - OS::TripleO::Services::Ntp
270 - OS::TripleO::Services::SwiftProxy
271 - OS::TripleO::Services::SwiftStorage
272 - OS::TripleO::Services::SwiftRingBuilder
273 - OS::TripleO::Services::Snmp
274 - OS::TripleO::Services::Timezone
275 - OS::TripleO::Services::CeilometerApi
276 - OS::TripleO::Services::CeilometerCollector
277 - OS::TripleO::Services::CeilometerExpirer
278 - OS::TripleO::Services::CeilometerAgentCentral
279 - OS::TripleO::Services::CeilometerAgentNotification
280 - OS::TripleO::Services::Horizon
281 - OS::TripleO::Services::GnocchiApi
282 - OS::TripleO::Services::GnocchiMetricd
283 - OS::TripleO::Services::GnocchiStatsd
284 - OS::Tripleo::Services::ManilaApi
285 - OS::Tripleo::Services::ManilaScheduler
286 - OS::Tripleo::Services::ManilaShare
287 - OS::TripleO::Services::AodhApi
288 - OS::TripleO::Services::AodhEvaluator
289 - OS::TripleO::Services::AodhNotifier
290 - OS::TripleO::Services::AodhListener
291 - OS::TripleO::Services::SaharaApi
292 - OS::TripleO::Services::SaharaEngine
293 description: A list of service resources (configured in the Heat
294 resource_registry) which represent nested stacks
295 for each service that should get installed on the Controllers.
296 type: comma_delimited_list
300 - OS::TripleO::Services::CephClient
301 - OS::TripleO::Services::CephExternal
302 - OS::TripleO::Services::Timezone
303 - OS::TripleO::Services::Ntp
304 - OS::TripleO::Services::Snmp
305 - OS::TripleO::Services::NovaCompute
306 - OS::TripleO::Services::NovaLibvirt
307 - OS::TripleO::Services::Kernel
308 - OS::TripleO::Services::ComputeNeutronCorePlugin
309 - OS::TripleO::Services::ComputeNeutronOvsAgent
310 - OS::TripleO::Services::ComputeCeilometerAgent
311 - OS::TripleO::Services::ComputeNeutronL3Agent
312 - OS::TripleO::Services::ComputeNeutronMetadataAgent
313 description: A list of service resources (configured in the Heat
314 resource_registry) which represent nested stacks
315 for each service that should get installed on the Compute Nodes.
316 type: comma_delimited_list
318 # Block storage specific parameters
322 OvercloudBlockStorageFlavor:
323 description: Flavor for block storage nodes to request when deploying.
327 - custom_constraint: nova.flavor
328 BlockStorageExtraConfig:
331 BlockStorage specific configuration to inject into the cluster. Same
332 structure as ExtraConfig.
334 BlockStorageServices:
336 - OS::TripleO::Services::CinderVolume
337 - OS::TripleO::Services::Kernel
338 - OS::TripleO::Services::Ntp
339 - OS::TripleO::Services::Timezone
340 - OS::TripleO::Services::Snmp
341 description: A list of service resources (configured in the Heat
342 resource_registry) which represent nested stacks
343 for each service that should get installed on the BlockStorage nodes.
344 type: comma_delimited_list
346 # Object storage specific parameters
350 OvercloudSwiftStorageFlavor:
351 description: Flavor for Swift storage nodes to request when deploying.
355 - custom_constraint: nova.flavor
356 ObjectStorageExtraConfig:
359 ObjectStorage specific configuration to inject into the cluster. Same
360 structure as ExtraConfig.
362 ObjectStorageServices:
364 - OS::TripleO::Services::Kernel
365 - OS::TripleO::Services::Ntp
366 - OS::TripleO::Services::SwiftStorage
367 - OS::TripleO::Services::SwiftRingBuilder
368 - OS::TripleO::Services::Snmp
369 - OS::TripleO::Services::Timezone
370 description: A list of service resources (configured in the Heat
371 resource_registry) which represent nested stacks
372 for each service that should get installed on the ObjectStorage nodes.
373 Note this role currently only supports steps 2, 3 and 4 configuration.
374 type: comma_delimited_list
377 # Ceph storage specific parameters
381 OvercloudCephStorageFlavor:
383 description: Flavor for Ceph storage nodes to request when deploying.
386 - custom_constraint: nova.flavor
387 CephStorageExtraConfig:
390 CephStorage specific configuration to inject into the cluster. Same
391 structure as ExtraConfig.
395 - OS::TripleO::Services::CephOSD
396 - OS::TripleO::Services::Kernel
397 - OS::TripleO::Services::Ntp
398 - OS::TripleO::Services::Timezone
399 description: A list of service resources (configured in the Heat
400 resource_registry) which represent nested stacks
401 for each service that should get installed on the CephStorage nodes.
402 type: comma_delimited_list
404 # Hostname format for each role
405 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
406 # and %stackname% is replaced with OS::stack_name in the template below.
407 # If you want to use the heat generated names, pass '' (empty string).
408 ControllerHostnameFormat:
410 description: Format for Controller node hostnames
411 default: '%stackname%-controller-%index%'
412 ComputeHostnameFormat:
414 description: Format for Compute node hostnames
415 default: '%stackname%-novacompute-%index%'
416 BlockStorageHostnameFormat:
418 description: Format for BlockStorage node hostnames
419 default: '%stackname%-blockstorage-%index%'
420 ObjectStorageHostnameFormat:
422 description: Format for SwiftStorage node hostnames
423 default: '%stackname%-objectstorage-%index%'
424 CephStorageHostnameFormat:
426 description: Format for CephStorage node hostnames
427 default: '%stackname%-cephstorage-%index%'
429 # Identifiers to trigger tasks on nodes
434 Setting to a previously unused value during stack-update will trigger
435 package update on all nodes
440 Setting this to a unique value will re-run any deployment tasks which
441 perform configuration on a Heat stack-update.
443 # If you want to remove a specific node from a resource group, you can pass
444 # the node name or id as a <Group>RemovalPolicies parameter, for example:
445 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
446 ControllerRemovalPolicies:
450 List of resources to be removed from ControllerResourceGroup when
451 doing an update which requires removal of specific resources.
452 ComputeRemovalPolicies:
456 List of resources to be removed from ComputeResourceGroup when
457 doing an update which requires removal of specific resources.
458 BlockStorageRemovalPolicies:
462 List of resources to be removed from BlockStorageResourceGroup when
463 doing an update which requires removal of specific resources.
464 ObjectStorageRemovalPolicies:
468 List of resources to be removed from ObjectStorageResourceGroup when
469 doing an update which requires removal of specific resources.
470 CephStorageRemovalPolicies:
474 List of resources to be removed from CephStorageResourceGroup when
475 doing an update which requires removal of specific resources.
479 description: Do not use deprecated params, they will be removed.
481 - controllerExtraConfig
486 HeatAuthEncryptionKey:
487 type: OS::Heat::RandomString
490 type: OS::Heat::RandomString
495 type: OS::Heat::RandomString
500 type: OS::TripleO::EndpointMap
502 CloudName: {get_param: CloudName}
503 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
504 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
505 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
506 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
507 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
508 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
509 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
510 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
511 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
512 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
513 ManilaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
514 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
515 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
516 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
517 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
518 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
519 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
520 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
522 ControllerServiceChain:
523 type: OS::TripleO::Services
525 Services: {get_param: ControllerServices}
526 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
529 type: OS::Heat::ResourceGroup
532 count: {get_param: ControllerCount}
533 removal_policies: {get_param: ControllerRemovalPolicies}
535 type: OS::TripleO::Controller
537 controllerExtraConfig: {get_param: controllerExtraConfig}
538 Flavor: {get_param: OvercloudControlFlavor}
539 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
540 HorizonSecret: {get_resource: HorizonSecret}
541 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
542 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
543 PcsdPassword: {get_resource: PcsdPassword}
544 RabbitCookie: {get_attr: [RabbitCookie, value]}
545 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
546 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
547 ServiceNetMap: {get_param: ServiceNetMap}
548 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
549 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
552 template: {get_param: ControllerHostnameFormat}
554 '%stackname%': {get_param: 'OS::stack_name'}
556 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
557 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
561 type: OS::TripleO::Services
563 Services: {get_param: ComputeServices}
564 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
567 type: OS::Heat::ResourceGroup
570 count: {get_param: ComputeCount}
571 removal_policies: {get_param: ComputeRemovalPolicies}
573 type: OS::TripleO::Compute
575 AdminPassword: {get_param: AdminPassword}
576 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
577 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
578 Debug: {get_param: Debug}
579 ExtraConfig: {get_param: ExtraConfig}
580 Flavor: {get_param: OvercloudComputeFlavor}
581 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
582 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
583 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
584 NeutronPassword: {get_param: NeutronPassword}
585 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
586 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
587 # L3 HA and Failover is not relevant for Computes, should be removed
588 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
589 NovaComputeDriver: {get_param: NovaComputeDriver}
590 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
591 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
592 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
593 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
594 NovaIPv6: {get_param: NovaIPv6}
595 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
596 NovaPassword: {get_param: NovaPassword}
597 NovaOVSBridge: {get_param: NovaOVSBridge}
598 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
599 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
600 RabbitPassword: {get_param: RabbitPassword}
601 RabbitUserName: {get_param: RabbitUserName}
602 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
603 RabbitClientPort: {get_param: RabbitClientPort}
604 ServiceNetMap: {get_param: ServiceNetMap}
605 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
606 UpdateIdentifier: {get_param: UpdateIdentifier}
609 template: {get_param: ComputeHostnameFormat}
611 '%stackname%': {get_param: 'OS::stack_name'}
612 CloudDomain: {get_param: CloudDomain}
613 ServerMetadata: {get_param: ServerMetadata}
615 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
616 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
618 BlockStorageServiceChain:
619 type: OS::TripleO::Services
621 Services: {get_param: BlockStorageServices}
622 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
625 type: OS::Heat::ResourceGroup
628 count: {get_param: BlockStorageCount}
629 removal_policies: {get_param: BlockStorageRemovalPolicies}
631 type: OS::TripleO::BlockStorage
633 Flavor: {get_param: OvercloudBlockStorageFlavor}
634 UpdateIdentifier: {get_param: UpdateIdentifier}
637 template: {get_param: BlockStorageHostnameFormat}
639 '%stackname%': {get_param: 'OS::stack_name'}
640 ServiceNetMap: {get_param: ServiceNetMap}
641 ExtraConfig: {get_param: ExtraConfig}
642 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
643 CloudDomain: {get_param: CloudDomain}
644 ServerMetadata: {get_param: ServerMetadata}
646 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
647 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
649 ObjectStorageServiceChain:
650 type: OS::TripleO::Services
652 Services: {get_param: ObjectStorageServices}
653 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
656 type: OS::Heat::ResourceGroup
659 count: {get_param: ObjectStorageCount}
660 removal_policies: {get_param: ObjectStorageRemovalPolicies}
662 type: OS::TripleO::ObjectStorage
664 Flavor: {get_param: OvercloudSwiftStorageFlavor}
665 HashSuffix: {get_param: SwiftHashSuffix}
666 UpdateIdentifier: {get_param: UpdateIdentifier}
667 ServiceNetMap: {get_param: ServiceNetMap}
670 template: {get_param: ObjectStorageHostnameFormat}
672 '%stackname%': {get_param: 'OS::stack_name'}
673 ExtraConfig: {get_param: ExtraConfig}
674 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
675 CloudDomain: {get_param: CloudDomain}
676 ServerMetadata: {get_param: ServerMetadata}
678 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
679 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
681 CephStorageServiceChain:
682 type: OS::TripleO::Services
684 Services: {get_param: CephStorageServices}
685 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
688 type: OS::Heat::ResourceGroup
691 count: {get_param: CephStorageCount}
692 removal_policies: {get_param: CephStorageRemovalPolicies}
694 type: OS::TripleO::CephStorage
696 Flavor: {get_param: OvercloudCephStorageFlavor}
697 ServiceNetMap: {get_param: ServiceNetMap}
698 UpdateIdentifier: {get_param: UpdateIdentifier}
701 template: {get_param: CephStorageHostnameFormat}
703 '%stackname%': {get_param: 'OS::stack_name'}
704 ExtraConfig: {get_param: ExtraConfig}
705 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
706 CloudDomain: {get_param: CloudDomain}
707 ServerMetadata: {get_param: ServerMetadata}
709 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
710 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
713 type: OS::TripleO::Network::Ports::NetIpListMap
715 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
716 ExternalIpList: {get_attr: [Controller, external_ip_address]}
717 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
718 StorageIpList: {get_attr: [Controller, storage_ip_address]}
719 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
720 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
721 ManagementIpList: {get_attr: [Controller, management_ip_address]}
724 type: OS::TripleO::AllNodes::SoftwareConfig
729 - {get_attr: [Compute, hosts_entry]}
732 - {get_attr: [Controller, hosts_entry]}
735 - {get_attr: [BlockStorage, hosts_entry]}
738 - {get_attr: [ObjectStorage, hosts_entry]}
741 - {get_attr: [CephStorage, hosts_entry]}
742 controller_ips: {get_attr: [Controller, ip_address]}
743 controller_names: {get_attr: [Controller, hostname]}
744 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
745 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
746 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
747 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
748 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
749 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
750 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
751 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
752 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
753 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
754 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
755 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
756 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
757 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
758 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
759 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
760 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
761 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
762 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
763 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
764 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
765 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
766 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
767 ceph_mon_node_names: {get_attr: [Controller, hostname]}
768 DeployIdentifier: {get_param: DeployIdentifier}
769 UpdateIdentifier: {get_param: UpdateIdentifier}
772 type: OS::Heat::RandomString
776 MysqlClusterUniquePart:
777 type: OS::Heat::RandomString
782 type: OS::Heat::RandomString
785 salt: {get_param: RabbitCookieSalt}
787 # creates the network architecture
789 type: OS::TripleO::Network
792 type: OS::Neutron::Port
795 name: control_virtual_ip
796 network: {get_param: NeutronControlPlaneID}
797 fixed_ips: {get_param: ControlFixedIPs}
798 replacement_policy: AUTO
802 type: OS::TripleO::Network::Ports::RedisVipPort
804 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
805 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
806 PortName: redis_virtual_ip
807 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
810 # The public VIP is on the External net, falls back to ctlplane
813 type: OS::TripleO::Network::Ports::ExternalVipPort
815 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
816 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
817 PortName: public_virtual_ip
818 FixedIPs: {get_param: PublicVirtualFixedIPs}
820 InternalApiVirtualIP:
822 type: OS::TripleO::Network::Ports::InternalApiVipPort
824 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
825 PortName: internal_api_virtual_ip
826 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
830 type: OS::TripleO::Network::Ports::StorageVipPort
832 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
833 PortName: storage_virtual_ip
834 FixedIPs: {get_param: StorageVirtualFixedIPs}
836 StorageMgmtVirtualIP:
838 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
840 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
841 PortName: storage_management_virtual_ip
842 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
845 type: OS::TripleO::Network::Ports::NetVipMap
847 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
848 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
849 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
850 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
851 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
852 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
853 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
854 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
855 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
856 # No tenant or management VIP required
859 type: OS::TripleO::VipConfig
862 type: OS::Heat::StructuredDeployments
865 config: {get_resource: VipConfig}
866 servers: {get_attr: [Controller, attributes, nova_server_resource]}
868 # service VIP mappings
869 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
870 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
871 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
872 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
873 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
874 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
875 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
876 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
877 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
878 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
879 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
880 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
881 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
882 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
883 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
884 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
885 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
886 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
887 # direct configuration of Virtual IPs for each network
888 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
889 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
890 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
891 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
892 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
893 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
894 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
896 ControllerSwiftDeployment:
897 type: OS::Heat::StructuredDeployments
899 name: ControllerSwiftDeployment
900 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
901 servers: {get_attr: [Controller, attributes, nova_server_resource]}
903 ObjectStorageSwiftDeployment:
904 type: OS::Heat::StructuredDeployments
906 name: ObjectStorageSwiftDeployment
907 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
908 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
910 SwiftDevicesAndProxyConfig:
911 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
913 controller_swift_devices: {get_attr: [Controller, swift_device]}
914 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
915 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
917 ControllerAllNodesDeployment:
918 type: OS::Heat::StructuredDeployments
920 name: ControllerAllNodesDeployment
921 config: {get_attr: [allNodesConfig, config_id]}
922 servers: {get_attr: [Controller, attributes, nova_server_resource]}
924 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
925 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
927 ComputeAllNodesDeployment:
928 type: OS::Heat::StructuredDeployments
930 name: ComputeAllNodesDeployment
931 config: {get_attr: [allNodesConfig, config_id]}
932 servers: {get_attr: [Compute, attributes, nova_server_resource]}
934 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
935 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
937 BlockStorageAllNodesDeployment:
938 type: OS::Heat::StructuredDeployments
940 name: BlockStorageAllNodesDeployment
941 config: {get_attr: [allNodesConfig, config_id]}
942 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
944 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
945 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
947 ObjectStorageAllNodesDeployment:
948 type: OS::Heat::StructuredDeployments
950 name: ObjectStorageAllNodesDeployment
951 config: {get_attr: [allNodesConfig, config_id]}
952 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
954 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
955 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
957 CephStorageAllNodesDeployment:
958 type: OS::Heat::StructuredDeployments
960 name: CephStorageAllNodesDeployment
961 config: {get_attr: [allNodesConfig, config_id]}
962 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
964 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
965 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
967 # All Nodes Validations
968 AllNodesValidationConfig:
969 type: OS::TripleO::AllNodes::Validation
974 - - {get_attr: [Controller, resource.0.external_ip_address]}
975 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
976 - {get_attr: [Controller, resource.0.storage_ip_address]}
977 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
978 - {get_attr: [Controller, resource.0.tenant_ip_address]}
980 ControllerAllNodesValidationDeployment:
981 type: OS::Heat::StructuredDeployments
982 depends_on: ControllerAllNodesDeployment
984 name: ControllerAllNodesValidationDeployment
985 config: {get_resource: AllNodesValidationConfig}
986 servers: {get_attr: [Controller, attributes, nova_server_resource]}
988 ComputeAllNodesValidationDeployment:
989 type: OS::Heat::StructuredDeployments
990 depends_on: ComputeAllNodesDeployment
992 name: ComputeAllNodesValidationDeployment
993 config: {get_resource: AllNodesValidationConfig}
994 servers: {get_attr: [Compute, attributes, nova_server_resource]}
996 BlockStorageAllNodesValidationDeployment:
997 type: OS::Heat::StructuredDeployments
998 depends_on: BlockStorageAllNodesDeployment
1000 name: BlockStorageAllNodesValidationDeployment
1001 config: {get_resource: AllNodesValidationConfig}
1002 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1004 ObjectStorageAllNodesValidationDeployment:
1005 type: OS::Heat::StructuredDeployments
1006 depends_on: ObjectStorageAllNodesDeployment
1008 name: ObjectStorageAllNodesValidationDeployment
1009 config: {get_resource: AllNodesValidationConfig}
1010 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1012 CephStorageAllNodesValidationDeployment:
1013 type: OS::Heat::StructuredDeployments
1014 depends_on: CephStorageAllNodesDeployment
1016 name: CephStorageAllNodesValidationDeployment
1017 config: {get_resource: AllNodesValidationConfig}
1018 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1021 type: OS::TripleO::Tasks::UpdateWorkflow
1023 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1024 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1025 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1026 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1027 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1029 deploy_identifier: {get_param: DeployIdentifier}
1030 update_identifier: {get_param: UpdateIdentifier}
1032 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1033 # the nested template may configure each role differently (or not at all)
1034 AllNodesExtraConfig:
1035 type: OS::TripleO::AllNodesExtraConfig
1038 - ComputeAllNodesValidationDeployment
1039 - BlockStorageAllNodesValidationDeployment
1040 - ObjectStorageAllNodesValidationDeployment
1041 - CephStorageAllNodesValidationDeployment
1042 - ControllerAllNodesValidationDeployment
1044 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1045 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1046 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1047 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1048 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1050 # Nested stack deployment runs after all other controller deployments
1051 ControllerNodesPostDeployment:
1052 type: OS::TripleO::ControllerPostDeployment
1053 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
1055 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1056 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1058 ComputeNodesPostDeployment:
1059 type: OS::TripleO::ComputePostDeployment
1060 depends_on: [ComputeAllNodesDeployment]
1062 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1063 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1065 ObjectStorageNodesPostDeployment:
1066 type: OS::TripleO::ObjectStoragePostDeployment
1067 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1069 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1070 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1072 BlockStorageNodesPostDeployment:
1073 type: OS::TripleO::BlockStoragePostDeployment
1074 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1076 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1077 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1079 CephStorageNodesPostDeployment:
1080 type: OS::TripleO::CephStoragePostDeployment
1081 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
1083 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1084 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1088 description: URL for the Overcloud Keystone service
1089 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1091 description: Keystone Admin VIP endpoint
1092 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1094 description: Controller VIP for public API endpoints
1095 value: {get_attr: [VipMap, net_ip_map, external]}
1097 description: VIP for Aodh API internal endpoint
1098 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1099 CeilometerInternalVip:
1100 description: VIP for Ceilometer API internal endpoint
1101 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1103 description: VIP for Cinder API internal endpoint
1104 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1106 description: VIP for Glance API internal endpoint
1107 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1109 description: VIP for Gnocchi API internal endpoint
1110 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1112 description: VIP for Heat API internal endpoint
1113 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1115 description: VIP for Ironic API internal endpoint
1116 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1117 KeystoneInternalVip:
1118 description: VIP for Keystone API internal endpoint
1119 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1121 description: VIP for Manila API internal endpoint
1122 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
1124 description: VIP for Neutron API internal endpoint
1125 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1127 description: VIP for Nova API internal endpoint
1128 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1130 description: VIP for Sahara API internal endpoint
1131 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1133 description: VIP for Swift Proxy internal endpoint
1134 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1137 Mapping of the resources with the needed info for their endpoints.
1138 This includes the protocol used, the IP, port and also a full
1139 representation of the URI.
1140 value: {get_attr: [EndpointMap, endpoint_map]}
1143 The content that should be appended to your /etc/hosts if you want to get
1144 hostname-based access to the deployed nodes (useful for testing without
1146 value: {get_attr: [allNodesConfig, hosts_entries]}
1148 description: The services enabled on each role
1150 Controller: {get_attr: [ControllerServiceChain, role_data, service_names]}
1151 Compute: {get_attr: [ComputeServiceChain, role_data, service_names]}
1152 BlockStorage: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
1153 ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
1154 CephStorage: {get_attr: [CephStorageServiceChain, role_data, service_names]}