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.
20 description: The password for the aodh services.
23 CinderEnableNfsBackend:
25 description: Whether to enable or not the NFS backend for Cinder
27 CinderEnableRbdBackend:
29 description: Whether to enable or not the Rbd backend for Cinder
33 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
37 description: Should be used for arbitrary ips.
41 description: Enable IPv6 in Corosync
45 description: Set to True to enable debugging on all services.
49 description: Syslog address where HAproxy will send its log
52 default: 'REBUILD_PRESERVE_EPHEMERAL'
53 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
55 InternalApiVirtualFixedIPs:
58 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
59 [{'ip_address':'1.2.3.4'}]
63 description: Name of an existing Nova key pair to enable SSH access to the instances
66 - custom_constraint: nova.keypair
69 description: Enable IPv6 features in Memcached.
71 NeutronControlPlaneID:
74 description: Neutron ID or name for ctlplane network.
76 description: The password for the neutron service account, used by neutron agents.
79 NeutronPublicInterface:
81 description: What interface to bridge onto br-ex for network nodes.
85 description: Enable IPv6 features in Nova
88 description: The password for the nova service account, used by nova-api.
91 PublicVirtualFixedIPs:
94 Control the IP allocation for the PublicVirtualInterface port. E.g.
95 [{'ip_address':'1.2.3.4'}]
100 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
103 description: The username for RabbitMQ
106 description: The password for RabbitMQ
112 Rabbit client subscriber parameter to specify
113 an SSL connection to the RabbitMQ host.
117 description: Set rabbit subscriber port, change this if using SSL
120 description: The password for Redis
123 StorageVirtualFixedIPs:
126 Control the IP allocation for the StorageVirtualInterface port. E.g.
127 [{'ip_address':'1.2.3.4'}]
129 StorageMgmtVirtualFixedIPs:
132 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
133 [{'ip_address':'1.2.3.4'}]
136 default: 'localdomain'
139 The DNS domain used for the hosts. This should match the dhcp_domain
140 configured in the Undercloud neutron. Defaults to localdomain.
144 Extra properties or metadata passed to Nova for the created nodes in
145 the overcloud. It's accessible via the Nova metadata API.
148 # Controller-specific params
152 controllerExtraConfig:
155 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
159 default: overcloud-full
161 - custom_constraint: glance.image
162 OvercloudControlFlavor:
163 description: Flavor for control nodes to request when deploying.
167 - custom_constraint: nova.flavor
168 ControlVirtualInterface:
170 description: Interface where virtual ip will be assigned.
174 description: Whether to enable fencing in Pacemaker or not.
178 description: Whether to use Galera instead of regular MariaDB.
180 ControllerSchedulerHints:
182 description: Optional scheduler hints to pass to nova
187 Additional configuration to inject into the cluster. The format required
188 may be implementation specific, e.g puppet hieradata. Any role specific
189 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
194 Pacemaker fencing configuration. The JSON should have
195 the following structure:
199 "agent": "AGENT_NAME",
200 "host_mac": "HOST_MAC_ADDRESS",
201 "params": {"PARAM_NAME": "PARAM_VALUE"}
209 "agent": "fence_xvm",
210 "host_mac": "52:54:00:aa:bb:cc",
212 "multicast_address": "225.0.0.12",
213 "port": "baremetal_0",
215 "manage_key_file": true,
216 "key_file": "/etc/fence_xvm.key",
217 "key_file_password": "abcdef"
225 InstanceNameTemplate:
226 default: 'instance-%08x'
227 description: Template string to be used to generate instance names
231 description: Whether to manage IPtables rules.
235 description: Whether IPtables rules should be purged before setting up the ones.
237 MysqlInnodbBufferPoolSize:
239 Specifies the size of the buffer pool in megabytes. Setting to
240 zero should be interpreted as "no value" and will defer to the
245 description: Configures MySQL max_connections config setting
248 PublicVirtualInterface:
251 Specifies the interface where the public-facing virtual ip will be assigned.
252 This should be int_public when a VLAN is being used.
255 description: A random string to be used as a salt when hashing to determine mappings in the ring.
259 # Compute-specific params
263 HypervisorNeutronPhysicalBridge:
266 An OVS bridge to create on each hypervisor. This defaults to br-ex the
267 same as the control plane nodes, as we have a uniform configuration of
268 the openvswitch agent. Typically should not need to be changed.
270 HypervisorNeutronPublicInterface:
272 description: What interface to add to the HypervisorNeutronPhysicalBridge.
276 default: libvirt.LibvirtDriver
277 NovaComputeExtraConfig:
280 NovaCompute specific configuration to inject into the cluster. Same
281 structure as ExtraConfig.
283 NovaComputeLibvirtType:
286 NovaComputeLibvirtVifDriver:
288 description: Libvirt VIF driver configuration for the network
290 NovaComputeSchedulerHints:
292 description: Optional scheduler hints to pass to nova
294 NovaEnableRbdBackend:
296 description: Whether to enable or not the Rbd backend for Nova
300 default: overcloud-full
302 - custom_constraint: glance.image
305 description: Name of integration bridge used by Open vSwitch
307 NovaSecurityGroupAPI:
309 description: The full class name of the security API class
311 OvercloudComputeFlavor:
312 description: Use this flavor
316 - custom_constraint: nova.flavor
319 NeutronTenantNetwork: tenant
320 CeilometerApiNetwork: internal_api
321 AodhApiNetwork: internal_api
322 GnocchiApiNetwork: internal_api
323 MongoDbNetwork: internal_api
324 CinderApiNetwork: internal_api
325 CinderIscsiNetwork: storage
326 GlanceApiNetwork: storage
327 GlanceRegistryNetwork: internal_api
328 IronicApiNetwork: internal_api
329 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
330 KeystonePublicApiNetwork: internal_api
331 ManilaApiNetwork: internal_api
332 NeutronApiNetwork: internal_api
333 HeatApiNetwork: internal_api
334 NovaApiNetwork: internal_api
335 NovaMetadataNetwork: internal_api
336 NovaVncProxyNetwork: internal_api
337 SwiftMgmtNetwork: storage_mgmt
338 SwiftProxyNetwork: storage
339 SaharaApiNetwork: internal_api
340 HorizonNetwork: internal_api
341 MemcachedNetwork: internal_api
342 RabbitMqNetwork: internal_api
343 RedisNetwork: internal_api
344 MysqlNetwork: internal_api
345 CephClusterNetwork: storage_mgmt
346 CephPublicNetwork: storage
347 ControllerHostnameResolveNetwork: internal_api
348 ComputeHostnameResolveNetwork: internal_api
349 BlockStorageHostnameResolveNetwork: internal_api
350 ObjectStorageHostnameResolveNetwork: internal_api
351 CephStorageHostnameResolveNetwork: storage
352 description: Mapping of service_name -> network name. Typically set
353 via parameter_defaults in the resource registry.
358 - OS::TripleO::Services::CephMon
359 - OS::TripleO::Services::CephExternal
360 - OS::TripleO::Services::CinderApi
361 - OS::TripleO::Services::CinderScheduler
362 - OS::TripleO::Services::CinderVolume
363 - OS::TripleO::Services::Core
364 - OS::TripleO::Services::Kernel
365 - OS::TripleO::Services::Keystone
366 - OS::TripleO::Services::GlanceApi
367 - OS::TripleO::Services::GlanceRegistry
368 - OS::TripleO::Services::HeatApi
369 - OS::TripleO::Services::HeatApiCfn
370 - OS::TripleO::Services::HeatApiCloudwatch
371 - OS::TripleO::Services::HeatEngine
372 - OS::TripleO::Services::MySQL
373 - OS::TripleO::Services::NeutronDhcpAgent
374 - OS::TripleO::Services::NeutronL3Agent
375 - OS::TripleO::Services::NeutronMetadataAgent
376 - OS::TripleO::Services::NeutronServer
377 - OS::TripleO::Services::NeutronCorePlugin
378 - OS::TripleO::Services::NeutronOvsAgent
379 - OS::TripleO::Services::RabbitMQ
380 - OS::TripleO::Services::HAproxy
381 - OS::TripleO::Services::Keepalived
382 - OS::TripleO::Services::Memcached
383 - OS::TripleO::Services::Pacemaker
384 - OS::TripleO::Services::Redis
385 - OS::TripleO::Services::NovaConductor
386 - OS::TripleO::Services::MongoDb
387 - OS::TripleO::Services::NovaApi
388 - OS::TripleO::Services::NovaScheduler
389 - OS::TripleO::Services::NovaConsoleauth
390 - OS::TripleO::Services::NovaVncproxy
391 - OS::TripleO::Services::Ntp
392 - OS::TripleO::Services::SwiftProxy
393 - OS::TripleO::Services::SwiftStorage
394 - OS::TripleO::Services::SwiftRingBuilder
395 - OS::TripleO::Services::Snmp
396 - OS::TripleO::Services::Timezone
397 - OS::TripleO::Services::CeilometerApi
398 - OS::TripleO::Services::CeilometerCollector
399 - OS::TripleO::Services::CeilometerExpirer
400 - OS::TripleO::Services::CeilometerAgentCentral
401 - OS::TripleO::Services::CeilometerAgentNotification
402 - OS::TripleO::Services::Horizon
403 - OS::TripleO::Services::GnocchiApi
404 - OS::TripleO::Services::GnocchiMetricd
405 - OS::TripleO::Services::GnocchiStatsd
406 - OS::Tripleo::Services::ManilaApi
407 - OS::Tripleo::Services::ManilaScheduler
408 - OS::Tripleo::Services::ManilaShare
409 description: A list of service resources (configured in the Heat
410 resource_registry) which represent nested stacks
411 for each service that should get installed on the Controllers.
412 type: comma_delimited_list
416 - OS::TripleO::Services::CephClient
417 - OS::TripleO::Services::CephExternal
418 - OS::TripleO::Services::Timezone
419 - OS::TripleO::Services::Ntp
420 - OS::TripleO::Services::Snmp
421 - OS::TripleO::Services::NovaCompute
422 - OS::TripleO::Services::NovaLibvirt
423 - OS::TripleO::Services::Kernel
424 - OS::TripleO::Services::ComputeNeutronCorePlugin
425 - OS::TripleO::Services::ComputeNeutronOvsAgent
426 - OS::TripleO::Services::ComputeCeilometerAgent
427 description: A list of service resources (configured in the Heat
428 resource_registry) which represent nested stacks
429 for each service that should get installed on the Compute Nodes.
430 type: comma_delimited_list
432 # Block storage specific parameters
437 default: overcloud-full
439 OvercloudBlockStorageFlavor:
440 description: Flavor for block storage nodes to request when deploying.
444 - custom_constraint: nova.flavor
445 BlockStorageExtraConfig:
448 BlockStorage specific configuration to inject into the cluster. Same
449 structure as ExtraConfig.
451 BlockStorageSchedulerHints:
453 description: Optional scheduler hints to pass to nova
455 BlockStorageServices:
457 - OS::TripleO::Services::CinderVolume
458 - OS::TripleO::Services::Kernel
459 - OS::TripleO::Services::Ntp
460 - OS::TripleO::Services::Timezone
461 - OS::TripleO::Services::Snmp
462 description: A list of service resources (configured in the Heat
463 resource_registry) which represent nested stacks
464 for each service that should get installed on the BlockStorage nodes.
465 type: comma_delimited_list
467 # Object storage specific parameters
471 OvercloudSwiftStorageFlavor:
472 description: Flavor for Swift storage nodes to request when deploying.
476 - custom_constraint: nova.flavor
478 default: overcloud-full
480 ObjectStorageExtraConfig:
483 ObjectStorage specific configuration to inject into the cluster. Same
484 structure as ExtraConfig.
486 ObjectStorageSchedulerHints:
488 description: Optional scheduler hints to pass to nova
490 ObjectStorageServices:
492 - OS::TripleO::Services::Kernel
493 - OS::TripleO::Services::Ntp
494 - OS::TripleO::Services::SwiftStorage
495 - OS::TripleO::Services::SwiftRingBuilder
496 - OS::TripleO::Services::Snmp
497 - OS::TripleO::Services::Timezone
498 description: A list of service resources (configured in the Heat
499 resource_registry) which represent nested stacks
500 for each service that should get installed on the ObjectStorage nodes.
501 Note this role currently only supports steps 2, 3 and 4 configuration.
502 type: comma_delimited_list
505 # Ceph storage specific parameters
510 default: overcloud-full
512 OvercloudCephStorageFlavor:
514 description: Flavor for Ceph storage nodes to request when deploying.
517 - custom_constraint: nova.flavor
518 CephStorageExtraConfig:
521 CephStorage specific configuration to inject into the cluster. Same
522 structure as ExtraConfig.
524 CephStorageSchedulerHints:
526 description: Optional scheduler hints to pass to nova
530 - OS::TripleO::Services::CephOSD
531 - OS::TripleO::Services::Kernel
532 - OS::TripleO::Services::Ntp
533 - OS::TripleO::Services::Timezone
534 description: A list of service resources (configured in the Heat
535 resource_registry) which represent nested stacks
536 for each service that should get installed on the CephStorage nodes.
537 type: comma_delimited_list
539 # Hostname format for each role
540 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
541 # and %stackname% is replaced with OS::stack_name in the template below.
542 # If you want to use the heat generated names, pass '' (empty string).
543 ControllerHostnameFormat:
545 description: Format for Controller node hostnames
546 default: '%stackname%-controller-%index%'
547 ComputeHostnameFormat:
549 description: Format for Compute node hostnames
550 default: '%stackname%-novacompute-%index%'
551 BlockStorageHostnameFormat:
553 description: Format for BlockStorage node hostnames
554 default: '%stackname%-blockstorage-%index%'
555 ObjectStorageHostnameFormat:
557 description: Format for SwiftStorage node hostnames
558 default: '%stackname%-objectstorage-%index%'
559 CephStorageHostnameFormat:
561 description: Format for CephStorage node hostnames
562 default: '%stackname%-cephstorage-%index%'
564 # Identifiers to trigger tasks on nodes
569 Setting to a previously unused value during stack-update will trigger
570 package update on all nodes
575 Setting this to a unique value will re-run any deployment tasks which
576 perform configuration on a Heat stack-update.
578 # If you want to remove a specific node from a resource group, you can pass
579 # the node name or id as a <Group>RemovalPolicies parameter, for example:
580 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
581 ControllerRemovalPolicies:
585 List of resources to be removed from ControllerResourceGroup when
586 doing an update which requires removal of specific resources.
587 ComputeRemovalPolicies:
591 List of resources to be removed from ComputeResourceGroup when
592 doing an update which requires removal of specific resources.
593 BlockStorageRemovalPolicies:
597 List of resources to be removed from BlockStorageResourceGroup when
598 doing an update which requires removal of specific resources.
599 ObjectStorageRemovalPolicies:
603 List of resources to be removed from ObjectStorageResourceGroup when
604 doing an update which requires removal of specific resources.
605 CephStorageRemovalPolicies:
609 List of resources to be removed from CephStorageResourceGroup when
610 doing an update which requires removal of specific resources.
614 description: Do not use deprecated params, they will be removed.
616 - controllerExtraConfig
621 HeatAuthEncryptionKey:
622 type: OS::Heat::RandomString
625 type: OS::Heat::RandomString
630 type: OS::Heat::RandomString
635 type: OS::TripleO::EndpointMap
637 CloudName: {get_param: CloudName}
638 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
639 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
640 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
641 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
642 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
643 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
644 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
645 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
646 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
647 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
648 ManilaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
649 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
650 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
651 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
652 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
653 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
654 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
655 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
657 ControllerServiceChain:
658 type: OS::TripleO::Services
660 Services: {get_param: ControllerServices}
661 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
664 type: OS::Heat::ResourceGroup
667 count: {get_param: ControllerCount}
668 removal_policies: {get_param: ControllerRemovalPolicies}
670 type: OS::TripleO::Controller
672 AdminPassword: {get_param: AdminPassword}
673 AodhPassword: {get_param: AodhPassword}
674 CloudDomain: {get_param: CloudDomain}
675 ControlVirtualInterface: {get_param: ControlVirtualInterface}
676 controllerExtraConfig: {get_param: controllerExtraConfig}
677 CorosyncIPv6: {get_param: CorosyncIPv6}
678 Debug: {get_param: Debug}
679 EnableFencing: {get_param: EnableFencing}
680 ManageFirewall: {get_param: ManageFirewall}
681 PurgeFirewallRules: {get_param: PurgeFirewallRules}
682 EnableGalera: {get_param: EnableGalera}
683 ExtraConfig: {get_param: ExtraConfig}
684 FencingConfig: {get_param: FencingConfig}
685 Flavor: {get_param: OvercloudControlFlavor}
686 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
687 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
688 HorizonSecret: {get_resource: HorizonSecret}
689 Image: {get_param: controllerImage}
690 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
691 InstanceNameTemplate: {get_param: InstanceNameTemplate}
692 KeyName: {get_param: KeyName}
693 MemcachedIPv6: {get_param: MemcachedIPv6}
694 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
695 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
696 MysqlMaxConnections: {get_param: MysqlMaxConnections}
697 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
698 NeutronPublicInterface: {get_param: NeutronPublicInterface}
699 NeutronPassword: {get_param: NeutronPassword}
700 NovaIPv6: {get_param: NovaIPv6}
701 NovaPassword: {get_param: NovaPassword}
702 PcsdPassword: {get_resource: PcsdPassword}
703 PublicVirtualInterface: {get_param: PublicVirtualInterface}
704 RabbitPassword: {get_param: RabbitPassword}
705 RabbitUserName: {get_param: RabbitUserName}
706 RabbitCookie: {get_attr: [RabbitCookie, value]}
707 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
708 RabbitClientPort: {get_param: RabbitClientPort}
709 RedisPassword: {get_param: RedisPassword}
710 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
711 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
712 SwiftHashSuffix: {get_param: SwiftHashSuffix}
713 ServiceNetMap: {get_param: ServiceNetMap}
714 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
715 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
716 UpdateIdentifier: {get_param: UpdateIdentifier}
719 template: {get_param: ControllerHostnameFormat}
721 '%stackname%': {get_param: 'OS::stack_name'}
723 ServerMetadata: {get_param: ServerMetadata}
724 SchedulerHints: {get_param: ControllerSchedulerHints}
725 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
726 ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
730 type: OS::TripleO::Services
732 Services: {get_param: ComputeServices}
733 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
736 type: OS::Heat::ResourceGroup
739 count: {get_param: ComputeCount}
740 removal_policies: {get_param: ComputeRemovalPolicies}
742 type: OS::TripleO::Compute
744 AdminPassword: {get_param: AdminPassword}
745 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
746 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
747 Debug: {get_param: Debug}
748 ExtraConfig: {get_param: ExtraConfig}
749 Flavor: {get_param: OvercloudComputeFlavor}
750 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
751 Image: {get_param: NovaImage}
752 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
753 KeyName: {get_param: KeyName}
754 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
755 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
756 NeutronPassword: {get_param: NeutronPassword}
757 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
758 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
759 # L3 HA and Failover is not relevant for Computes, should be removed
760 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
761 NovaComputeDriver: {get_param: NovaComputeDriver}
762 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
763 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
764 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
765 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
766 NovaIPv6: {get_param: NovaIPv6}
767 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
768 NovaPassword: {get_param: NovaPassword}
769 NovaOVSBridge: {get_param: NovaOVSBridge}
770 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
771 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
772 RabbitPassword: {get_param: RabbitPassword}
773 RabbitUserName: {get_param: RabbitUserName}
774 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
775 RabbitClientPort: {get_param: RabbitClientPort}
776 ServiceNetMap: {get_param: ServiceNetMap}
777 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
778 UpdateIdentifier: {get_param: UpdateIdentifier}
781 template: {get_param: ComputeHostnameFormat}
783 '%stackname%': {get_param: 'OS::stack_name'}
784 CloudDomain: {get_param: CloudDomain}
785 ServerMetadata: {get_param: ServerMetadata}
786 SchedulerHints: {get_param: NovaComputeSchedulerHints}
788 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
789 ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
791 BlockStorageServiceChain:
792 type: OS::TripleO::Services
794 Services: {get_param: BlockStorageServices}
795 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
798 type: OS::Heat::ResourceGroup
801 count: {get_param: BlockStorageCount}
802 removal_policies: {get_param: BlockStorageRemovalPolicies}
804 type: OS::TripleO::BlockStorage
806 Image: {get_param: BlockStorageImage}
807 KeyName: {get_param: KeyName}
808 Flavor: {get_param: OvercloudBlockStorageFlavor}
809 UpdateIdentifier: {get_param: UpdateIdentifier}
812 template: {get_param: BlockStorageHostnameFormat}
814 '%stackname%': {get_param: 'OS::stack_name'}
815 ServiceNetMap: {get_param: ServiceNetMap}
816 ExtraConfig: {get_param: ExtraConfig}
817 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
818 CloudDomain: {get_param: CloudDomain}
819 ServerMetadata: {get_param: ServerMetadata}
820 SchedulerHints: {get_param: BlockStorageSchedulerHints}
822 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
823 ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
825 ObjectStorageServiceChain:
826 type: OS::TripleO::Services
828 Services: {get_param: ObjectStorageServices}
829 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
832 type: OS::Heat::ResourceGroup
835 count: {get_param: ObjectStorageCount}
836 removal_policies: {get_param: ObjectStorageRemovalPolicies}
838 type: OS::TripleO::ObjectStorage
840 KeyName: {get_param: KeyName}
841 Flavor: {get_param: OvercloudSwiftStorageFlavor}
842 HashSuffix: {get_param: SwiftHashSuffix}
843 Image: {get_param: SwiftStorageImage}
844 UpdateIdentifier: {get_param: UpdateIdentifier}
845 ServiceNetMap: {get_param: ServiceNetMap}
848 template: {get_param: ObjectStorageHostnameFormat}
850 '%stackname%': {get_param: 'OS::stack_name'}
851 ExtraConfig: {get_param: ExtraConfig}
852 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
853 CloudDomain: {get_param: CloudDomain}
854 ServerMetadata: {get_param: ServerMetadata}
855 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
857 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
858 ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
860 CephStorageServiceChain:
861 type: OS::TripleO::Services
863 Services: {get_param: CephStorageServices}
864 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
867 type: OS::Heat::ResourceGroup
870 count: {get_param: CephStorageCount}
871 removal_policies: {get_param: CephStorageRemovalPolicies}
873 type: OS::TripleO::CephStorage
875 Image: {get_param: CephStorageImage}
876 KeyName: {get_param: KeyName}
877 Flavor: {get_param: OvercloudCephStorageFlavor}
878 ServiceNetMap: {get_param: ServiceNetMap}
879 UpdateIdentifier: {get_param: UpdateIdentifier}
882 template: {get_param: CephStorageHostnameFormat}
884 '%stackname%': {get_param: 'OS::stack_name'}
885 ExtraConfig: {get_param: ExtraConfig}
886 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
887 CloudDomain: {get_param: CloudDomain}
888 ServerMetadata: {get_param: ServerMetadata}
889 SchedulerHints: {get_param: CephStorageSchedulerHints}
891 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
892 ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
895 type: OS::TripleO::Network::Ports::NetIpListMap
897 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
898 ExternalIpList: {get_attr: [Controller, external_ip_address]}
899 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
900 StorageIpList: {get_attr: [Controller, storage_ip_address]}
901 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
902 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
903 ManagementIpList: {get_attr: [Controller, management_ip_address]}
906 type: OS::TripleO::AllNodes::SoftwareConfig
908 compute_hosts: {get_attr: [Compute, hosts_entry]}
909 controller_hosts: {get_attr: [Controller, hosts_entry]}
910 controller_ips: {get_attr: [Controller, ip_address]}
911 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
912 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
913 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
914 controller_names: {get_attr: [Controller, hostname]}
915 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
916 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
917 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
918 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
919 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
920 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
921 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
922 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
923 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
924 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
925 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
926 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
927 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
928 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
929 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
930 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
931 manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
932 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
933 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
934 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
935 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
936 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
937 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
938 ceph_mon_node_names: {get_attr: [Controller, hostname]}
939 DeployIdentifier: {get_param: DeployIdentifier}
940 UpdateIdentifier: {get_param: UpdateIdentifier}
943 type: OS::Heat::RandomString
947 MysqlClusterUniquePart:
948 type: OS::Heat::RandomString
953 type: OS::Heat::RandomString
956 salt: {get_param: RabbitCookieSalt}
958 # creates the network architecture
960 type: OS::TripleO::Network
963 type: OS::Neutron::Port
966 name: control_virtual_ip
967 network: {get_param: NeutronControlPlaneID}
968 fixed_ips: {get_param: ControlFixedIPs}
969 replacement_policy: AUTO
973 type: OS::TripleO::Network::Ports::RedisVipPort
975 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
976 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
977 PortName: redis_virtual_ip
978 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
981 # The public VIP is on the External net, falls back to ctlplane
984 type: OS::TripleO::Network::Ports::ExternalVipPort
986 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
987 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
988 PortName: public_virtual_ip
989 FixedIPs: {get_param: PublicVirtualFixedIPs}
991 InternalApiVirtualIP:
993 type: OS::TripleO::Network::Ports::InternalApiVipPort
995 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
996 PortName: internal_api_virtual_ip
997 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1000 depends_on: Networks
1001 type: OS::TripleO::Network::Ports::StorageVipPort
1003 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1004 PortName: storage_virtual_ip
1005 FixedIPs: {get_param: StorageVirtualFixedIPs}
1007 StorageMgmtVirtualIP:
1008 depends_on: Networks
1009 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1011 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1012 PortName: storage_management_virtual_ip
1013 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1016 type: OS::TripleO::Network::Ports::NetVipMap
1018 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1019 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1020 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1021 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1022 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1023 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1024 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1025 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1026 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1027 # No tenant or management VIP required
1030 type: OS::TripleO::VipConfig
1033 type: OS::Heat::StructuredDeployments
1036 config: {get_resource: VipConfig}
1037 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1039 # service VIP mappings
1040 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1041 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1042 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1043 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1044 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1045 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1046 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1047 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1048 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1049 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1050 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1051 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1052 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1053 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1054 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1055 manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
1056 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1057 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1058 # direct configuration of Virtual IPs for each network
1059 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1060 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1061 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1062 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1063 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1064 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1065 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1067 ControllerSwiftDeployment:
1068 type: OS::Heat::StructuredDeployments
1070 name: ControllerSwiftDeployment
1071 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1072 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1074 ObjectStorageSwiftDeployment:
1075 type: OS::Heat::StructuredDeployments
1077 name: ObjectStorageSwiftDeployment
1078 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1079 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1081 SwiftDevicesAndProxyConfig:
1082 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1084 controller_swift_devices: {get_attr: [Controller, swift_device]}
1085 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1086 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1088 ControllerAllNodesDeployment:
1089 type: OS::Heat::StructuredDeployments
1091 name: ControllerAllNodesDeployment
1092 config: {get_attr: [allNodesConfig, config_id]}
1093 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1095 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1096 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1098 ComputeAllNodesDeployment:
1099 type: OS::Heat::StructuredDeployments
1101 name: ComputeAllNodesDeployment
1102 config: {get_attr: [allNodesConfig, config_id]}
1103 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1105 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1106 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1108 BlockStorageAllNodesDeployment:
1109 type: OS::Heat::StructuredDeployments
1111 name: BlockStorageAllNodesDeployment
1112 config: {get_attr: [allNodesConfig, config_id]}
1113 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1115 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1116 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1118 ObjectStorageAllNodesDeployment:
1119 type: OS::Heat::StructuredDeployments
1121 name: ObjectStorageAllNodesDeployment
1122 config: {get_attr: [allNodesConfig, config_id]}
1123 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1125 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1126 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1128 CephStorageAllNodesDeployment:
1129 type: OS::Heat::StructuredDeployments
1131 name: CephStorageAllNodesDeployment
1132 config: {get_attr: [allNodesConfig, config_id]}
1133 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1135 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1136 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1138 # All Nodes Validations
1139 AllNodesValidationConfig:
1140 type: OS::TripleO::AllNodes::Validation
1145 - - {get_attr: [Controller, resource.0.external_ip_address]}
1146 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1147 - {get_attr: [Controller, resource.0.storage_ip_address]}
1148 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1149 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1150 - {get_attr: [Controller, resource.0.management_ip_address]}
1152 ControllerAllNodesValidationDeployment:
1153 type: OS::Heat::StructuredDeployments
1154 depends_on: ControllerAllNodesDeployment
1156 name: ControllerAllNodesValidationDeployment
1157 config: {get_resource: AllNodesValidationConfig}
1158 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1160 ComputeAllNodesValidationDeployment:
1161 type: OS::Heat::StructuredDeployments
1162 depends_on: ComputeAllNodesDeployment
1164 name: ComputeAllNodesValidationDeployment
1165 config: {get_resource: AllNodesValidationConfig}
1166 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1168 BlockStorageAllNodesValidationDeployment:
1169 type: OS::Heat::StructuredDeployments
1170 depends_on: BlockStorageAllNodesDeployment
1172 name: BlockStorageAllNodesValidationDeployment
1173 config: {get_resource: AllNodesValidationConfig}
1174 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1176 ObjectStorageAllNodesValidationDeployment:
1177 type: OS::Heat::StructuredDeployments
1178 depends_on: ObjectStorageAllNodesDeployment
1180 name: ObjectStorageAllNodesValidationDeployment
1181 config: {get_resource: AllNodesValidationConfig}
1182 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1184 CephStorageAllNodesValidationDeployment:
1185 type: OS::Heat::StructuredDeployments
1186 depends_on: CephStorageAllNodesDeployment
1188 name: CephStorageAllNodesValidationDeployment
1189 config: {get_resource: AllNodesValidationConfig}
1190 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1193 type: OS::TripleO::Tasks::UpdateWorkflow
1195 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1196 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1197 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1198 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1199 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1201 deploy_identifier: {get_param: DeployIdentifier}
1202 update_identifier: {get_param: UpdateIdentifier}
1204 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1205 # the nested template may configure each role differently (or not at all)
1206 AllNodesExtraConfig:
1207 type: OS::TripleO::AllNodesExtraConfig
1210 - ComputeAllNodesValidationDeployment
1211 - BlockStorageAllNodesValidationDeployment
1212 - ObjectStorageAllNodesValidationDeployment
1213 - CephStorageAllNodesValidationDeployment
1214 - ControllerAllNodesValidationDeployment
1216 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1217 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1218 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1219 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1220 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1222 # Nested stack deployment runs after all other controller deployments
1223 ControllerNodesPostDeployment:
1224 type: OS::TripleO::ControllerPostDeployment
1225 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
1227 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1228 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1230 ComputeNodesPostDeployment:
1231 type: OS::TripleO::ComputePostDeployment
1232 depends_on: [ComputeAllNodesDeployment]
1234 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1235 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1237 ObjectStorageNodesPostDeployment:
1238 type: OS::TripleO::ObjectStoragePostDeployment
1239 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1241 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1242 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1244 BlockStorageNodesPostDeployment:
1245 type: OS::TripleO::BlockStoragePostDeployment
1246 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1248 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1249 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1251 CephStorageNodesPostDeployment:
1252 type: OS::TripleO::CephStoragePostDeployment
1253 depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
1255 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1256 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1260 description: URL for the Overcloud Keystone service
1261 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1263 description: Keystone Admin VIP endpoint
1264 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1266 description: Controller VIP for public API endpoints
1267 value: {get_attr: [VipMap, net_ip_map, external]}
1269 description: VIP for Aodh API internal endpoint
1270 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1271 CeilometerInternalVip:
1272 description: VIP for Ceilometer API internal endpoint
1273 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1275 description: VIP for Cinder API internal endpoint
1276 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1278 description: VIP for Glance API internal endpoint
1279 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1281 description: VIP for Gnocchi API internal endpoint
1282 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1284 description: VIP for Heat API internal endpoint
1285 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1287 description: VIP for Ironic API internal endpoint
1288 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1289 KeystoneInternalVip:
1290 description: VIP for Keystone API internal endpoint
1291 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1293 description: VIP for Manila API internal endpoint
1294 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
1296 description: VIP for Neutron API internal endpoint
1297 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1299 description: VIP for Nova API internal endpoint
1300 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1302 description: VIP for Sahara API internal endpoint
1303 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1305 description: VIP for Swift Proxy internal endpoint
1306 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1309 Mapping of the resources with the needed info for their endpoints.
1310 This includes the protocol used, the IP, port and also a full
1311 representation of the URI.
1312 value: {get_attr: [EndpointMap, endpoint_map]}
1315 The content that should be appended to your /etc/hosts if you want to get
1316 hostname-based access to the deployed nodes (useful for testing without
1318 value: {get_attr: [allNodesConfig, hosts_entries]}