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
154 controllerExtraConfig:
157 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
161 default: overcloud-full
163 - custom_constraint: glance.image
164 OvercloudControlFlavor:
165 description: Flavor for control nodes to request when deploying.
169 - custom_constraint: nova.flavor
170 ControlVirtualInterface:
172 description: Interface where virtual ip will be assigned.
176 description: Whether to enable fencing in Pacemaker or not.
180 description: Whether to use Galera instead of regular MariaDB.
182 ControllerSchedulerHints:
184 description: Optional scheduler hints to pass to nova
189 Additional configuration to inject into the cluster. The format required
190 may be implementation specific, e.g puppet hieradata. Any role specific
191 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
196 Pacemaker fencing configuration. The JSON should have
197 the following structure:
201 "agent": "AGENT_NAME",
202 "host_mac": "HOST_MAC_ADDRESS",
203 "params": {"PARAM_NAME": "PARAM_VALUE"}
211 "agent": "fence_xvm",
212 "host_mac": "52:54:00:aa:bb:cc",
214 "multicast_address": "225.0.0.12",
215 "port": "baremetal_0",
217 "manage_key_file": true,
218 "key_file": "/etc/fence_xvm.key",
219 "key_file_password": "abcdef"
227 InstanceNameTemplate:
228 default: 'instance-%08x'
229 description: Template string to be used to generate instance names
233 description: Whether to manage IPtables rules.
237 description: Whether IPtables rules should be purged before setting up the ones.
239 MysqlInnodbBufferPoolSize:
241 Specifies the size of the buffer pool in megabytes. Setting to
242 zero should be interpreted as "no value" and will defer to the
247 description: Configures MySQL max_connections config setting
250 PublicVirtualInterface:
253 Specifies the interface where the public-facing virtual ip will be assigned.
254 This should be int_public when a VLAN is being used.
257 description: A random string to be used as a salt when hashing to determine mappings in the ring.
263 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
266 description: Partition Power to use when building Swift rings
271 description: How many replicas to use in the swift rings.
273 # Compute-specific params
277 HypervisorNeutronPhysicalBridge:
280 An OVS bridge to create on each hypervisor. This defaults to br-ex the
281 same as the control plane nodes, as we have a uniform configuration of
282 the openvswitch agent. Typically should not need to be changed.
284 HypervisorNeutronPublicInterface:
286 description: What interface to add to the HypervisorNeutronPhysicalBridge.
290 default: libvirt.LibvirtDriver
291 NovaComputeExtraConfig:
294 NovaCompute specific configuration to inject into the cluster. Same
295 structure as ExtraConfig.
297 NovaComputeLibvirtType:
300 NovaComputeLibvirtVifDriver:
302 description: Libvirt VIF driver configuration for the network
304 NovaComputeSchedulerHints:
306 description: Optional scheduler hints to pass to nova
308 NovaEnableRbdBackend:
310 description: Whether to enable or not the Rbd backend for Nova
314 default: overcloud-full
316 - custom_constraint: glance.image
319 description: Name of integration bridge used by Open vSwitch
321 NovaSecurityGroupAPI:
323 description: The full class name of the security API class
325 OvercloudComputeFlavor:
326 description: Use this flavor
330 - custom_constraint: nova.flavor
333 NeutronTenantNetwork: tenant
334 CeilometerApiNetwork: internal_api
335 AodhApiNetwork: internal_api
336 GnocchiApiNetwork: internal_api
337 MongoDbNetwork: internal_api
338 CinderApiNetwork: internal_api
339 CinderIscsiNetwork: storage
340 GlanceApiNetwork: storage
341 GlanceRegistryNetwork: internal_api
342 IronicApiNetwork: internal_api
343 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
344 KeystonePublicApiNetwork: internal_api
345 NeutronApiNetwork: internal_api
346 HeatApiNetwork: internal_api
347 NovaApiNetwork: internal_api
348 NovaMetadataNetwork: internal_api
349 NovaVncProxyNetwork: internal_api
350 SwiftMgmtNetwork: storage_mgmt
351 SwiftProxyNetwork: storage
352 SaharaApiNetwork: internal_api
353 HorizonNetwork: internal_api
354 MemcachedNetwork: internal_api
355 RabbitMqNetwork: internal_api
356 RedisNetwork: internal_api
357 MysqlNetwork: internal_api
358 CephClusterNetwork: storage_mgmt
359 CephPublicNetwork: storage
360 ControllerHostnameResolveNetwork: internal_api
361 ComputeHostnameResolveNetwork: internal_api
362 BlockStorageHostnameResolveNetwork: internal_api
363 ObjectStorageHostnameResolveNetwork: internal_api
364 CephStorageHostnameResolveNetwork: storage
365 description: Mapping of service_name -> network name. Typically set
366 via parameter_defaults in the resource registry.
371 - OS::TripleO::Services::CephMon
372 - OS::TripleO::Services::CephExternal
373 - OS::TripleO::Services::CinderApi
374 - OS::TripleO::Services::CinderScheduler
375 - OS::TripleO::Services::CinderVolume
376 - OS::TripleO::Services::Kernel
377 - OS::TripleO::Services::Keystone
378 - OS::TripleO::Services::GlanceApi
379 - OS::TripleO::Services::GlanceRegistry
380 - OS::TripleO::Services::HeatApi
381 - OS::TripleO::Services::HeatApiCfn
382 - OS::TripleO::Services::HeatApiCloudwatch
383 - OS::TripleO::Services::HeatEngine
384 - OS::TripleO::Services::NeutronDhcpAgent
385 - OS::TripleO::Services::NeutronL3Agent
386 - OS::TripleO::Services::NeutronMetadataAgent
387 - OS::TripleO::Services::NeutronServer
388 - OS::TripleO::Services::NeutronCorePlugin
389 - OS::TripleO::Services::NeutronOvsAgent
390 - OS::TripleO::Services::RabbitMQ
391 - OS::TripleO::Services::HAproxy
392 - OS::TripleO::Services::Keepalived
393 - OS::TripleO::Services::Memcached
394 - OS::TripleO::Services::Pacemaker
395 - OS::TripleO::Services::Redis
396 - OS::TripleO::Services::NovaConductor
397 - OS::TripleO::Services::MongoDb
398 - OS::TripleO::Services::NovaApi
399 - OS::TripleO::Services::NovaScheduler
400 - OS::TripleO::Services::NovaConsoleauth
401 - OS::TripleO::Services::NovaVncproxy
402 - OS::TripleO::Services::Ntp
403 - OS::TripleO::Services::SwiftProxy
404 - OS::TripleO::Services::SwiftStorage
405 - OS::TripleO::Services::Snmp
406 - OS::TripleO::Services::Timezone
407 - OS::TripleO::Services::CeilometerApi
408 - OS::TripleO::Services::CeilometerCollector
409 - OS::TripleO::Services::CeilometerExpirer
410 - OS::TripleO::Services::CeilometerAgentCentral
411 - OS::TripleO::Services::CeilometerAgentNotification
412 - OS::TripleO::Services::Horizon
413 - OS::TripleO::Services::GnocchiApi
414 - OS::TripleO::Services::GnocchiMetricd
415 - OS::TripleO::Services::GnocchiStatsd
417 description: A list of service resources (configured in the Heat
418 resource_registry) which represent nested stacks
419 for each service that should get installed on the Controllers.
420 type: comma_delimited_list
424 - OS::TripleO::Services::CephClient
425 - OS::TripleO::Services::CephExternal
426 - OS::TripleO::Services::Timezone
427 - OS::TripleO::Services::Ntp
428 - OS::TripleO::Services::Snmp
429 - OS::TripleO::Services::NovaCompute
430 - OS::TripleO::Services::NovaLibvirt
431 - OS::TripleO::Services::Kernel
432 - OS::TripleO::Services::ComputeNeutronCorePlugin
433 - OS::TripleO::Services::ComputeNeutronOvsAgent
434 - OS::TripleO::Services::ComputeCeilometerAgent
435 description: A list of service resources (configured in the Heat
436 resource_registry) which represent nested stacks
437 for each service that should get installed on the Compute Nodes.
438 type: comma_delimited_list
440 # Block storage specific parameters
445 default: overcloud-full
447 OvercloudBlockStorageFlavor:
448 description: Flavor for block storage nodes to request when deploying.
452 - custom_constraint: nova.flavor
453 BlockStorageExtraConfig:
456 BlockStorage specific configuration to inject into the cluster. Same
457 structure as ExtraConfig.
459 BlockStorageSchedulerHints:
461 description: Optional scheduler hints to pass to nova
463 BlockStorageServices:
465 - OS::TripleO::Services::CinderVolume
466 - OS::TripleO::Services::Kernel
467 - OS::TripleO::Services::Ntp
468 - OS::TripleO::Services::Timezone
469 - OS::TripleO::Services::Snmp
470 description: A list of service resources (configured in the Heat
471 resource_registry) which represent nested stacks
472 for each service that should get installed on the BlockStorage nodes.
473 type: comma_delimited_list
475 # Object storage specific parameters
479 OvercloudSwiftStorageFlavor:
480 description: Flavor for Swift storage nodes to request when deploying.
484 - custom_constraint: nova.flavor
486 default: overcloud-full
488 ObjectStorageExtraConfig:
491 ObjectStorage specific configuration to inject into the cluster. Same
492 structure as ExtraConfig.
494 ObjectStorageSchedulerHints:
496 description: Optional scheduler hints to pass to nova
498 ObjectStorageServices:
500 - OS::TripleO::Services::Kernel
501 - OS::TripleO::Services::Ntp
502 - OS::TripleO::Services::SwiftStorage
503 - OS::TripleO::Services::Snmp
504 - OS::TripleO::Services::Timezone
505 description: A list of service resources (configured in the Heat
506 resource_registry) which represent nested stacks
507 for each service that should get installed on the ObjectStorage nodes.
508 Note this role currently only supports steps 2, 3 and 4 configuration.
509 type: comma_delimited_list
512 # Ceph storage specific parameters
517 default: overcloud-full
519 OvercloudCephStorageFlavor:
521 description: Flavor for Ceph storage nodes to request when deploying.
524 - custom_constraint: nova.flavor
525 CephStorageExtraConfig:
528 CephStorage specific configuration to inject into the cluster. Same
529 structure as ExtraConfig.
531 CephStorageSchedulerHints:
533 description: Optional scheduler hints to pass to nova
537 - OS::TripleO::Services::CephOSD
538 - OS::TripleO::Services::Kernel
539 - OS::TripleO::Services::Ntp
540 - OS::TripleO::Services::Timezone
541 description: A list of service resources (configured in the Heat
542 resource_registry) which represent nested stacks
543 for each service that should get installed on the CephStorage nodes.
544 type: comma_delimited_list
546 # Hostname format for each role
547 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
548 # and %stackname% is replaced with OS::stack_name in the template below.
549 # If you want to use the heat generated names, pass '' (empty string).
550 ControllerHostnameFormat:
552 description: Format for Controller node hostnames
553 default: '%stackname%-controller-%index%'
554 ComputeHostnameFormat:
556 description: Format for Compute node hostnames
557 default: '%stackname%-novacompute-%index%'
558 BlockStorageHostnameFormat:
560 description: Format for BlockStorage node hostnames
561 default: '%stackname%-blockstorage-%index%'
562 ObjectStorageHostnameFormat:
564 description: Format for SwiftStorage node hostnames
565 default: '%stackname%-objectstorage-%index%'
566 CephStorageHostnameFormat:
568 description: Format for CephStorage node hostnames
569 default: '%stackname%-cephstorage-%index%'
571 # Identifiers to trigger tasks on nodes
576 Setting to a previously unused value during stack-update will trigger
577 package update on all nodes
582 Setting this to a unique value will re-run any deployment tasks which
583 perform configuration on a Heat stack-update.
585 # If you want to remove a specific node from a resource group, you can pass
586 # the node name or id as a <Group>RemovalPolicies parameter, for example:
587 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
588 ControllerRemovalPolicies:
592 List of resources to be removed from ControllerResourceGroup when
593 doing an update which requires removal of specific resources.
594 ComputeRemovalPolicies:
598 List of resources to be removed from ComputeResourceGroup when
599 doing an update which requires removal of specific resources.
600 BlockStorageRemovalPolicies:
604 List of resources to be removed from BlockStorageResourceGroup when
605 doing an update which requires removal of specific resources.
606 ObjectStorageRemovalPolicies:
610 List of resources to be removed from ObjectStorageResourceGroup when
611 doing an update which requires removal of specific resources.
612 CephStorageRemovalPolicies:
616 List of resources to be removed from CephStorageResourceGroup when
617 doing an update which requires removal of specific resources.
621 description: Do not use deprecated params, they will be removed.
623 - controllerExtraConfig
628 HeatAuthEncryptionKey:
629 type: OS::Heat::RandomString
632 type: OS::Heat::RandomString
637 type: OS::Heat::RandomString
642 type: OS::TripleO::EndpointMap
644 CloudName: {get_param: CloudName}
645 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
646 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
647 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
648 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
649 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
650 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
651 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
652 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
653 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
654 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
655 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
656 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
657 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
658 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
659 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
660 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
661 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
663 ControllerServiceChain:
664 type: OS::TripleO::Services
666 Services: {get_param: ControllerServices}
667 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
670 type: OS::Heat::ResourceGroup
673 count: {get_param: ControllerCount}
674 removal_policies: {get_param: ControllerRemovalPolicies}
676 type: OS::TripleO::Controller
678 AdminPassword: {get_param: AdminPassword}
679 AodhPassword: {get_param: AodhPassword}
680 CloudDomain: {get_param: CloudDomain}
681 ControlVirtualInterface: {get_param: ControlVirtualInterface}
682 controllerExtraConfig: {get_param: controllerExtraConfig}
683 CorosyncIPv6: {get_param: CorosyncIPv6}
684 Debug: {get_param: Debug}
685 EnableFencing: {get_param: EnableFencing}
686 ManageFirewall: {get_param: ManageFirewall}
687 PurgeFirewallRules: {get_param: PurgeFirewallRules}
688 EnableGalera: {get_param: EnableGalera}
689 ExtraConfig: {get_param: ExtraConfig}
690 FencingConfig: {get_param: FencingConfig}
691 Flavor: {get_param: OvercloudControlFlavor}
692 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
693 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
694 HorizonSecret: {get_resource: HorizonSecret}
695 Image: {get_param: controllerImage}
696 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
697 InstanceNameTemplate: {get_param: InstanceNameTemplate}
698 KeyName: {get_param: KeyName}
699 MemcachedIPv6: {get_param: MemcachedIPv6}
700 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
701 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
702 MysqlMaxConnections: {get_param: MysqlMaxConnections}
703 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
704 NeutronPublicInterface: {get_param: NeutronPublicInterface}
705 NeutronPassword: {get_param: NeutronPassword}
706 NovaIPv6: {get_param: NovaIPv6}
707 NovaPassword: {get_param: NovaPassword}
708 PcsdPassword: {get_resource: PcsdPassword}
709 PublicVirtualInterface: {get_param: PublicVirtualInterface}
710 RabbitPassword: {get_param: RabbitPassword}
711 RabbitUserName: {get_param: RabbitUserName}
712 RabbitCookie: {get_attr: [RabbitCookie, value]}
713 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
714 RabbitClientPort: {get_param: RabbitClientPort}
715 RedisPassword: {get_param: RedisPassword}
716 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
717 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
718 SwiftHashSuffix: {get_param: SwiftHashSuffix}
719 SwiftMinPartHours: {get_param: SwiftMinPartHours}
720 SwiftPartPower: {get_param: SwiftPartPower}
721 SwiftReplicas: { get_param: SwiftReplicas}
722 ServiceNetMap: {get_param: ServiceNetMap}
723 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
724 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
725 UpdateIdentifier: {get_param: UpdateIdentifier}
728 template: {get_param: ControllerHostnameFormat}
730 '%stackname%': {get_param: 'OS::stack_name'}
732 ServerMetadata: {get_param: ServerMetadata}
733 SchedulerHints: {get_param: ControllerSchedulerHints}
734 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
738 type: OS::TripleO::Services
740 Services: {get_param: ComputeServices}
741 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
744 type: OS::Heat::ResourceGroup
747 count: {get_param: ComputeCount}
748 removal_policies: {get_param: ComputeRemovalPolicies}
750 type: OS::TripleO::Compute
752 AdminPassword: {get_param: AdminPassword}
753 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
754 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
755 Debug: {get_param: Debug}
756 ExtraConfig: {get_param: ExtraConfig}
757 Flavor: {get_param: OvercloudComputeFlavor}
758 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
759 Image: {get_param: NovaImage}
760 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
761 KeyName: {get_param: KeyName}
762 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
763 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
764 NeutronPassword: {get_param: NeutronPassword}
765 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
766 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
767 # L3 HA and Failover is not relevant for Computes, should be removed
768 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
769 NovaComputeDriver: {get_param: NovaComputeDriver}
770 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
771 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
772 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
773 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
774 NovaIPv6: {get_param: NovaIPv6}
775 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
776 NovaPassword: {get_param: NovaPassword}
777 NovaOVSBridge: {get_param: NovaOVSBridge}
778 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
779 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
780 RabbitPassword: {get_param: RabbitPassword}
781 RabbitUserName: {get_param: RabbitUserName}
782 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
783 RabbitClientPort: {get_param: RabbitClientPort}
784 ServiceNetMap: {get_param: ServiceNetMap}
785 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
786 UpdateIdentifier: {get_param: UpdateIdentifier}
789 template: {get_param: ComputeHostnameFormat}
791 '%stackname%': {get_param: 'OS::stack_name'}
792 CloudDomain: {get_param: CloudDomain}
793 ServerMetadata: {get_param: ServerMetadata}
794 SchedulerHints: {get_param: NovaComputeSchedulerHints}
796 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
798 BlockStorageServiceChain:
799 type: OS::TripleO::Services
801 Services: {get_param: BlockStorageServices}
802 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
805 type: OS::Heat::ResourceGroup
808 count: {get_param: BlockStorageCount}
809 removal_policies: {get_param: BlockStorageRemovalPolicies}
811 type: OS::TripleO::BlockStorage
813 Image: {get_param: BlockStorageImage}
814 KeyName: {get_param: KeyName}
815 Flavor: {get_param: OvercloudBlockStorageFlavor}
816 UpdateIdentifier: {get_param: UpdateIdentifier}
819 template: {get_param: BlockStorageHostnameFormat}
821 '%stackname%': {get_param: 'OS::stack_name'}
822 ServiceNetMap: {get_param: ServiceNetMap}
823 ExtraConfig: {get_param: ExtraConfig}
824 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
825 CloudDomain: {get_param: CloudDomain}
826 ServerMetadata: {get_param: ServerMetadata}
827 SchedulerHints: {get_param: BlockStorageSchedulerHints}
829 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
831 ObjectStorageServiceChain:
832 type: OS::TripleO::Services
834 Services: {get_param: ObjectStorageServices}
835 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
838 type: OS::Heat::ResourceGroup
841 count: {get_param: ObjectStorageCount}
842 removal_policies: {get_param: ObjectStorageRemovalPolicies}
844 type: OS::TripleO::ObjectStorage
846 KeyName: {get_param: KeyName}
847 Flavor: {get_param: OvercloudSwiftStorageFlavor}
848 HashSuffix: {get_param: SwiftHashSuffix}
849 MinPartHours: {get_param: SwiftMinPartHours}
850 PartPower: {get_param: SwiftPartPower}
851 Image: {get_param: SwiftStorageImage}
852 Replicas: { get_param: SwiftReplicas}
853 UpdateIdentifier: {get_param: UpdateIdentifier}
854 ServiceNetMap: {get_param: ServiceNetMap}
857 template: {get_param: ObjectStorageHostnameFormat}
859 '%stackname%': {get_param: 'OS::stack_name'}
860 ExtraConfig: {get_param: ExtraConfig}
861 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
862 CloudDomain: {get_param: CloudDomain}
863 ServerMetadata: {get_param: ServerMetadata}
864 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
866 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
868 CephStorageServiceChain:
869 type: OS::TripleO::Services
871 Services: {get_param: CephStorageServices}
872 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
875 type: OS::Heat::ResourceGroup
878 count: {get_param: CephStorageCount}
879 removal_policies: {get_param: CephStorageRemovalPolicies}
881 type: OS::TripleO::CephStorage
883 Image: {get_param: CephStorageImage}
884 KeyName: {get_param: KeyName}
885 Flavor: {get_param: OvercloudCephStorageFlavor}
886 ServiceNetMap: {get_param: ServiceNetMap}
887 UpdateIdentifier: {get_param: UpdateIdentifier}
890 template: {get_param: CephStorageHostnameFormat}
892 '%stackname%': {get_param: 'OS::stack_name'}
893 ExtraConfig: {get_param: ExtraConfig}
894 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
895 CloudDomain: {get_param: CloudDomain}
896 ServerMetadata: {get_param: ServerMetadata}
897 SchedulerHints: {get_param: CephStorageSchedulerHints}
899 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
902 type: OS::TripleO::Network::Ports::NetIpListMap
904 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
905 ExternalIpList: {get_attr: [Controller, external_ip_address]}
906 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
907 StorageIpList: {get_attr: [Controller, storage_ip_address]}
908 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
909 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
910 ManagementIpList: {get_attr: [Controller, management_ip_address]}
913 type: OS::TripleO::AllNodes::SoftwareConfig
915 compute_hosts: {get_attr: [Compute, hosts_entry]}
916 controller_hosts: {get_attr: [Controller, hosts_entry]}
917 controller_ips: {get_attr: [Controller, ip_address]}
918 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
919 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
920 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
921 controller_names: {get_attr: [Controller, hostname]}
922 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
923 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
924 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
925 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
926 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
927 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
928 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
929 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
930 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
931 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
932 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
933 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
934 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
935 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
936 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
937 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
938 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
939 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
940 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
941 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
942 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
943 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
944 ceph_mon_node_names: {get_attr: [Controller, hostname]}
945 DeployIdentifier: {get_param: DeployIdentifier}
946 UpdateIdentifier: {get_param: UpdateIdentifier}
949 type: OS::Heat::RandomString
953 MysqlClusterUniquePart:
954 type: OS::Heat::RandomString
959 type: OS::Heat::RandomString
962 salt: {get_param: RabbitCookieSalt}
964 # creates the network architecture
966 type: OS::TripleO::Network
969 type: OS::Neutron::Port
972 name: control_virtual_ip
973 network: {get_param: NeutronControlPlaneID}
974 fixed_ips: {get_param: ControlFixedIPs}
975 replacement_policy: AUTO
979 type: OS::TripleO::Network::Ports::RedisVipPort
981 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
982 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
983 PortName: redis_virtual_ip
984 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
987 # The public VIP is on the External net, falls back to ctlplane
990 type: OS::TripleO::Network::Ports::ExternalVipPort
992 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
993 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
994 PortName: public_virtual_ip
995 FixedIPs: {get_param: PublicVirtualFixedIPs}
997 InternalApiVirtualIP:
999 type: OS::TripleO::Network::Ports::InternalApiVipPort
1001 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1002 PortName: internal_api_virtual_ip
1003 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1006 depends_on: Networks
1007 type: OS::TripleO::Network::Ports::StorageVipPort
1009 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1010 PortName: storage_virtual_ip
1011 FixedIPs: {get_param: StorageVirtualFixedIPs}
1013 StorageMgmtVirtualIP:
1014 depends_on: Networks
1015 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1017 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1018 PortName: storage_management_virtual_ip
1019 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1022 type: OS::TripleO::Network::Ports::NetVipMap
1024 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1025 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1026 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1027 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1028 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1029 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1030 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1031 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1032 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1033 # No tenant or management VIP required
1036 type: OS::TripleO::VipConfig
1039 type: OS::Heat::StructuredDeployments
1042 config: {get_resource: VipConfig}
1043 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1045 # service VIP mappings
1046 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1047 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1048 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1049 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1050 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1051 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1052 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1053 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1054 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1055 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1056 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1057 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1058 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1059 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1060 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1061 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1062 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1063 # direct configuration of Virtual IPs for each network
1064 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1065 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1066 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1067 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1068 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1069 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1070 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1072 ControllerSwiftDeployment:
1073 type: OS::Heat::StructuredDeployments
1075 name: ControllerSwiftDeployment
1076 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1077 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1079 ObjectStorageSwiftDeployment:
1080 type: OS::Heat::StructuredDeployments
1082 name: ObjectStorageSwiftDeployment
1083 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1084 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1086 SwiftDevicesAndProxyConfig:
1087 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1089 controller_swift_devices: {get_attr: [Controller, swift_device]}
1090 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1091 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1093 ComputeCephDeployment:
1094 type: OS::Heat::StructuredDeployments
1096 name: ComputeCephDeployment
1097 config: {get_attr: [CephClusterConfig, config_id]}
1098 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1100 ControllerCephDeployment:
1101 type: OS::Heat::StructuredDeployments
1103 name: ControllerCephDeployment
1104 config: {get_attr: [CephClusterConfig, config_id]}
1105 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1107 CephStorageCephDeployment:
1108 type: OS::Heat::StructuredDeployments
1110 name: CephStorageCephDeployment
1111 config: {get_attr: [CephClusterConfig, config_id]}
1112 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1115 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1117 ControllerAllNodesDeployment:
1118 type: OS::Heat::StructuredDeployments
1120 name: ControllerAllNodesDeployment
1121 config: {get_attr: [allNodesConfig, config_id]}
1122 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1124 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1125 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1127 ComputeAllNodesDeployment:
1128 type: OS::Heat::StructuredDeployments
1130 name: ComputeAllNodesDeployment
1131 config: {get_attr: [allNodesConfig, config_id]}
1132 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1134 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1135 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1137 BlockStorageAllNodesDeployment:
1138 type: OS::Heat::StructuredDeployments
1140 name: BlockStorageAllNodesDeployment
1141 config: {get_attr: [allNodesConfig, config_id]}
1142 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1144 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1145 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1147 ObjectStorageAllNodesDeployment:
1148 type: OS::Heat::StructuredDeployments
1150 name: ObjectStorageAllNodesDeployment
1151 config: {get_attr: [allNodesConfig, config_id]}
1152 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1154 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1155 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1157 CephStorageAllNodesDeployment:
1158 type: OS::Heat::StructuredDeployments
1160 name: CephStorageAllNodesDeployment
1161 config: {get_attr: [allNodesConfig, config_id]}
1162 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1164 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1165 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1167 # All Nodes Validations
1168 AllNodesValidationConfig:
1169 type: OS::TripleO::AllNodes::Validation
1174 - - {get_attr: [Controller, resource.0.external_ip_address]}
1175 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1176 - {get_attr: [Controller, resource.0.storage_ip_address]}
1177 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1178 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1180 ControllerAllNodesValidationDeployment:
1181 type: OS::Heat::StructuredDeployments
1182 depends_on: ControllerAllNodesDeployment
1184 name: ControllerAllNodesValidationDeployment
1185 config: {get_resource: AllNodesValidationConfig}
1186 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1188 ComputeAllNodesValidationDeployment:
1189 type: OS::Heat::StructuredDeployments
1190 depends_on: ComputeAllNodesDeployment
1192 name: ComputeAllNodesValidationDeployment
1193 config: {get_resource: AllNodesValidationConfig}
1194 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1196 BlockStorageAllNodesValidationDeployment:
1197 type: OS::Heat::StructuredDeployments
1198 depends_on: BlockStorageAllNodesDeployment
1200 name: BlockStorageAllNodesValidationDeployment
1201 config: {get_resource: AllNodesValidationConfig}
1202 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1204 ObjectStorageAllNodesValidationDeployment:
1205 type: OS::Heat::StructuredDeployments
1206 depends_on: ObjectStorageAllNodesDeployment
1208 name: ObjectStorageAllNodesValidationDeployment
1209 config: {get_resource: AllNodesValidationConfig}
1210 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1212 CephStorageAllNodesValidationDeployment:
1213 type: OS::Heat::StructuredDeployments
1214 depends_on: CephStorageAllNodesDeployment
1216 name: CephStorageAllNodesValidationDeployment
1217 config: {get_resource: AllNodesValidationConfig}
1218 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1221 type: OS::TripleO::Tasks::UpdateWorkflow
1223 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1224 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1225 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1226 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1227 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1229 deploy_identifier: {get_param: DeployIdentifier}
1230 update_identifier: {get_param: UpdateIdentifier}
1232 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1233 # the nested template may configure each role differently (or not at all)
1234 AllNodesExtraConfig:
1235 type: OS::TripleO::AllNodesExtraConfig
1238 - ComputeAllNodesValidationDeployment
1239 - BlockStorageAllNodesValidationDeployment
1240 - ObjectStorageAllNodesValidationDeployment
1241 - CephStorageAllNodesValidationDeployment
1242 - ControllerAllNodesValidationDeployment
1244 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1245 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1246 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1247 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1248 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1250 # Nested stack deployment runs after all other controller deployments
1251 ControllerNodesPostDeployment:
1252 type: OS::TripleO::ControllerPostDeployment
1253 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1255 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1256 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1258 ComputeNodesPostDeployment:
1259 type: OS::TripleO::ComputePostDeployment
1260 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1262 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1263 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1265 ObjectStorageNodesPostDeployment:
1266 type: OS::TripleO::ObjectStoragePostDeployment
1267 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1269 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1270 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1272 BlockStorageNodesPostDeployment:
1273 type: OS::TripleO::BlockStoragePostDeployment
1274 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1276 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1277 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1279 CephStorageNodesPostDeployment:
1280 type: OS::TripleO::CephStoragePostDeployment
1281 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1283 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1284 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1288 description: URL for the Overcloud Keystone service
1289 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1291 description: Keystone Admin VIP endpoint
1292 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1294 description: Controller VIP for public API endpoints
1295 value: {get_attr: [VipMap, net_ip_map, external]}
1297 description: VIP for Aodh API internal endpoint
1298 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1299 CeilometerInternalVip:
1300 description: VIP for Ceilometer API internal endpoint
1301 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1303 description: VIP for Cinder API internal endpoint
1304 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1306 description: VIP for Glance API internal endpoint
1307 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1309 description: VIP for Gnocchi API internal endpoint
1310 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1312 description: VIP for Heat API internal endpoint
1313 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1315 description: VIP for Ironic API internal endpoint
1316 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1317 KeystoneInternalVip:
1318 description: VIP for Keystone API internal endpoint
1319 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1321 description: VIP for Neutron API internal endpoint
1322 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1324 description: VIP for Nova API internal endpoint
1325 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1327 description: VIP for Sahara API internal endpoint
1328 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1330 description: VIP for Swift Proxy internal endpoint
1331 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1334 Mapping of the resources with the needed info for their endpoints.
1335 This includes the protocol used, the IP, port and also a full
1336 representation of the URI.
1337 value: {get_attr: [EndpointMap, endpoint_map]}
1340 The content that should be appended to your /etc/hosts if you want to get
1341 hostname-based access to the deployed nodes (useful for testing without
1343 value: {get_attr: [allNodesConfig, hosts_entries]}