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.
261 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
264 description: Partition Power to use when building Swift rings
269 description: How many replicas to use in the swift rings.
271 # Compute-specific params
275 HypervisorNeutronPhysicalBridge:
278 An OVS bridge to create on each hypervisor. This defaults to br-ex the
279 same as the control plane nodes, as we have a uniform configuration of
280 the openvswitch agent. Typically should not need to be changed.
282 HypervisorNeutronPublicInterface:
284 description: What interface to add to the HypervisorNeutronPhysicalBridge.
288 default: libvirt.LibvirtDriver
289 NovaComputeExtraConfig:
292 NovaCompute specific configuration to inject into the cluster. Same
293 structure as ExtraConfig.
295 NovaComputeLibvirtType:
298 NovaComputeLibvirtVifDriver:
300 description: Libvirt VIF driver configuration for the network
302 NovaComputeSchedulerHints:
304 description: Optional scheduler hints to pass to nova
306 NovaEnableRbdBackend:
308 description: Whether to enable or not the Rbd backend for Nova
312 default: overcloud-full
314 - custom_constraint: glance.image
317 description: Name of integration bridge used by Open vSwitch
319 NovaSecurityGroupAPI:
321 description: The full class name of the security API class
323 OvercloudComputeFlavor:
324 description: Use this flavor
328 - custom_constraint: nova.flavor
331 NeutronTenantNetwork: tenant
332 CeilometerApiNetwork: internal_api
333 AodhApiNetwork: internal_api
334 GnocchiApiNetwork: internal_api
335 MongoDbNetwork: internal_api
336 CinderApiNetwork: internal_api
337 CinderIscsiNetwork: storage
338 GlanceApiNetwork: storage
339 GlanceRegistryNetwork: internal_api
340 IronicApiNetwork: internal_api
341 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
342 KeystonePublicApiNetwork: internal_api
343 NeutronApiNetwork: internal_api
344 HeatApiNetwork: internal_api
345 NovaApiNetwork: internal_api
346 NovaMetadataNetwork: internal_api
347 NovaVncProxyNetwork: internal_api
348 SwiftMgmtNetwork: storage_mgmt
349 SwiftProxyNetwork: storage
350 SaharaApiNetwork: internal_api
351 HorizonNetwork: internal_api
352 MemcachedNetwork: internal_api
353 RabbitMqNetwork: internal_api
354 RedisNetwork: internal_api
355 MysqlNetwork: internal_api
356 CephClusterNetwork: storage_mgmt
357 CephPublicNetwork: storage
358 ControllerHostnameResolveNetwork: internal_api
359 ComputeHostnameResolveNetwork: internal_api
360 BlockStorageHostnameResolveNetwork: internal_api
361 ObjectStorageHostnameResolveNetwork: internal_api
362 CephStorageHostnameResolveNetwork: storage
363 description: Mapping of service_name -> network name. Typically set
364 via parameter_defaults in the resource registry.
369 - OS::TripleO::Services::CephMon
370 - OS::TripleO::Services::CephExternal
371 - OS::TripleO::Services::CinderApi
372 - OS::TripleO::Services::CinderScheduler
373 - OS::TripleO::Services::CinderVolume
374 - OS::TripleO::Services::Kernel
375 - OS::TripleO::Services::Keystone
376 - OS::TripleO::Services::GlanceApi
377 - OS::TripleO::Services::GlanceRegistry
378 - OS::TripleO::Services::HeatApi
379 - OS::TripleO::Services::HeatApiCfn
380 - OS::TripleO::Services::HeatApiCloudwatch
381 - OS::TripleO::Services::HeatEngine
382 - OS::TripleO::Services::MySQL
383 - OS::TripleO::Services::NeutronDhcpAgent
384 - OS::TripleO::Services::NeutronL3Agent
385 - OS::TripleO::Services::NeutronMetadataAgent
386 - OS::TripleO::Services::NeutronServer
387 - OS::TripleO::Services::NeutronCorePlugin
388 - OS::TripleO::Services::NeutronOvsAgent
389 - OS::TripleO::Services::RabbitMQ
390 - OS::TripleO::Services::HAproxy
391 - OS::TripleO::Services::Keepalived
392 - OS::TripleO::Services::Memcached
393 - OS::TripleO::Services::Pacemaker
394 - OS::TripleO::Services::Redis
395 - OS::TripleO::Services::NovaConductor
396 - OS::TripleO::Services::MongoDb
397 - OS::TripleO::Services::NovaApi
398 - OS::TripleO::Services::NovaScheduler
399 - OS::TripleO::Services::NovaConsoleauth
400 - OS::TripleO::Services::NovaVncproxy
401 - OS::TripleO::Services::Ntp
402 - OS::TripleO::Services::SwiftProxy
403 - OS::TripleO::Services::SwiftStorage
404 - OS::TripleO::Services::Snmp
405 - OS::TripleO::Services::Timezone
406 - OS::TripleO::Services::CeilometerApi
407 - OS::TripleO::Services::CeilometerCollector
408 - OS::TripleO::Services::CeilometerExpirer
409 - OS::TripleO::Services::CeilometerAgentCentral
410 - OS::TripleO::Services::CeilometerAgentNotification
411 - OS::TripleO::Services::Horizon
412 - OS::TripleO::Services::GnocchiApi
413 - OS::TripleO::Services::GnocchiMetricd
414 - OS::TripleO::Services::GnocchiStatsd
416 description: A list of service resources (configured in the Heat
417 resource_registry) which represent nested stacks
418 for each service that should get installed on the Controllers.
419 type: comma_delimited_list
423 - OS::TripleO::Services::CephClient
424 - OS::TripleO::Services::CephExternal
425 - OS::TripleO::Services::Timezone
426 - OS::TripleO::Services::Ntp
427 - OS::TripleO::Services::Snmp
428 - OS::TripleO::Services::NovaCompute
429 - OS::TripleO::Services::NovaLibvirt
430 - OS::TripleO::Services::Kernel
431 - OS::TripleO::Services::ComputeNeutronCorePlugin
432 - OS::TripleO::Services::ComputeNeutronOvsAgent
433 - OS::TripleO::Services::ComputeCeilometerAgent
434 description: A list of service resources (configured in the Heat
435 resource_registry) which represent nested stacks
436 for each service that should get installed on the Compute Nodes.
437 type: comma_delimited_list
439 # Block storage specific parameters
444 default: overcloud-full
446 OvercloudBlockStorageFlavor:
447 description: Flavor for block storage nodes to request when deploying.
451 - custom_constraint: nova.flavor
452 BlockStorageExtraConfig:
455 BlockStorage specific configuration to inject into the cluster. Same
456 structure as ExtraConfig.
458 BlockStorageSchedulerHints:
460 description: Optional scheduler hints to pass to nova
462 BlockStorageServices:
464 - OS::TripleO::Services::CinderVolume
465 - OS::TripleO::Services::Kernel
466 - OS::TripleO::Services::Ntp
467 - OS::TripleO::Services::Timezone
468 - OS::TripleO::Services::Snmp
469 description: A list of service resources (configured in the Heat
470 resource_registry) which represent nested stacks
471 for each service that should get installed on the BlockStorage nodes.
472 type: comma_delimited_list
474 # Object storage specific parameters
478 OvercloudSwiftStorageFlavor:
479 description: Flavor for Swift storage nodes to request when deploying.
483 - custom_constraint: nova.flavor
485 default: overcloud-full
487 ObjectStorageExtraConfig:
490 ObjectStorage specific configuration to inject into the cluster. Same
491 structure as ExtraConfig.
493 ObjectStorageSchedulerHints:
495 description: Optional scheduler hints to pass to nova
497 ObjectStorageServices:
499 - OS::TripleO::Services::Kernel
500 - OS::TripleO::Services::Ntp
501 - OS::TripleO::Services::SwiftStorage
502 - OS::TripleO::Services::Snmp
503 - OS::TripleO::Services::Timezone
504 description: A list of service resources (configured in the Heat
505 resource_registry) which represent nested stacks
506 for each service that should get installed on the ObjectStorage nodes.
507 Note this role currently only supports steps 2, 3 and 4 configuration.
508 type: comma_delimited_list
511 # Ceph storage specific parameters
516 default: overcloud-full
518 OvercloudCephStorageFlavor:
520 description: Flavor for Ceph storage nodes to request when deploying.
523 - custom_constraint: nova.flavor
524 CephStorageExtraConfig:
527 CephStorage specific configuration to inject into the cluster. Same
528 structure as ExtraConfig.
530 CephStorageSchedulerHints:
532 description: Optional scheduler hints to pass to nova
536 - OS::TripleO::Services::CephOSD
537 - OS::TripleO::Services::Kernel
538 - OS::TripleO::Services::Ntp
539 - OS::TripleO::Services::Timezone
540 description: A list of service resources (configured in the Heat
541 resource_registry) which represent nested stacks
542 for each service that should get installed on the CephStorage nodes.
543 type: comma_delimited_list
545 # Hostname format for each role
546 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
547 # and %stackname% is replaced with OS::stack_name in the template below.
548 # If you want to use the heat generated names, pass '' (empty string).
549 ControllerHostnameFormat:
551 description: Format for Controller node hostnames
552 default: '%stackname%-controller-%index%'
553 ComputeHostnameFormat:
555 description: Format for Compute node hostnames
556 default: '%stackname%-novacompute-%index%'
557 BlockStorageHostnameFormat:
559 description: Format for BlockStorage node hostnames
560 default: '%stackname%-blockstorage-%index%'
561 ObjectStorageHostnameFormat:
563 description: Format for SwiftStorage node hostnames
564 default: '%stackname%-objectstorage-%index%'
565 CephStorageHostnameFormat:
567 description: Format for CephStorage node hostnames
568 default: '%stackname%-cephstorage-%index%'
570 # Identifiers to trigger tasks on nodes
575 Setting to a previously unused value during stack-update will trigger
576 package update on all nodes
581 Setting this to a unique value will re-run any deployment tasks which
582 perform configuration on a Heat stack-update.
584 # If you want to remove a specific node from a resource group, you can pass
585 # the node name or id as a <Group>RemovalPolicies parameter, for example:
586 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
587 ControllerRemovalPolicies:
591 List of resources to be removed from ControllerResourceGroup when
592 doing an update which requires removal of specific resources.
593 ComputeRemovalPolicies:
597 List of resources to be removed from ComputeResourceGroup when
598 doing an update which requires removal of specific resources.
599 BlockStorageRemovalPolicies:
603 List of resources to be removed from BlockStorageResourceGroup when
604 doing an update which requires removal of specific resources.
605 ObjectStorageRemovalPolicies:
609 List of resources to be removed from ObjectStorageResourceGroup when
610 doing an update which requires removal of specific resources.
611 CephStorageRemovalPolicies:
615 List of resources to be removed from CephStorageResourceGroup when
616 doing an update which requires removal of specific resources.
620 description: Do not use deprecated params, they will be removed.
622 - controllerExtraConfig
627 HeatAuthEncryptionKey:
628 type: OS::Heat::RandomString
631 type: OS::Heat::RandomString
636 type: OS::Heat::RandomString
641 type: OS::TripleO::EndpointMap
643 CloudName: {get_param: CloudName}
644 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
645 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
646 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
647 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
648 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
649 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
650 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
651 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
652 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
653 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
654 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
655 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
656 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
657 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
658 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
659 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
660 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
662 ControllerServiceChain:
663 type: OS::TripleO::Services
665 Services: {get_param: ControllerServices}
666 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
669 type: OS::Heat::ResourceGroup
672 count: {get_param: ControllerCount}
673 removal_policies: {get_param: ControllerRemovalPolicies}
675 type: OS::TripleO::Controller
677 AdminPassword: {get_param: AdminPassword}
678 AodhPassword: {get_param: AodhPassword}
679 CloudDomain: {get_param: CloudDomain}
680 ControlVirtualInterface: {get_param: ControlVirtualInterface}
681 controllerExtraConfig: {get_param: controllerExtraConfig}
682 CorosyncIPv6: {get_param: CorosyncIPv6}
683 Debug: {get_param: Debug}
684 EnableFencing: {get_param: EnableFencing}
685 ManageFirewall: {get_param: ManageFirewall}
686 PurgeFirewallRules: {get_param: PurgeFirewallRules}
687 EnableGalera: {get_param: EnableGalera}
688 ExtraConfig: {get_param: ExtraConfig}
689 FencingConfig: {get_param: FencingConfig}
690 Flavor: {get_param: OvercloudControlFlavor}
691 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
692 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
693 HorizonSecret: {get_resource: HorizonSecret}
694 Image: {get_param: controllerImage}
695 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
696 InstanceNameTemplate: {get_param: InstanceNameTemplate}
697 KeyName: {get_param: KeyName}
698 MemcachedIPv6: {get_param: MemcachedIPv6}
699 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
700 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
701 MysqlMaxConnections: {get_param: MysqlMaxConnections}
702 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
703 NeutronPublicInterface: {get_param: NeutronPublicInterface}
704 NeutronPassword: {get_param: NeutronPassword}
705 NovaIPv6: {get_param: NovaIPv6}
706 NovaPassword: {get_param: NovaPassword}
707 PcsdPassword: {get_resource: PcsdPassword}
708 PublicVirtualInterface: {get_param: PublicVirtualInterface}
709 RabbitPassword: {get_param: RabbitPassword}
710 RabbitUserName: {get_param: RabbitUserName}
711 RabbitCookie: {get_attr: [RabbitCookie, value]}
712 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
713 RabbitClientPort: {get_param: RabbitClientPort}
714 RedisPassword: {get_param: RedisPassword}
715 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
716 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
717 SwiftHashSuffix: {get_param: SwiftHashSuffix}
718 SwiftMinPartHours: {get_param: SwiftMinPartHours}
719 SwiftPartPower: {get_param: SwiftPartPower}
720 SwiftReplicas: { get_param: SwiftReplicas}
721 ServiceNetMap: {get_param: ServiceNetMap}
722 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
723 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
724 UpdateIdentifier: {get_param: UpdateIdentifier}
727 template: {get_param: ControllerHostnameFormat}
729 '%stackname%': {get_param: 'OS::stack_name'}
731 ServerMetadata: {get_param: ServerMetadata}
732 SchedulerHints: {get_param: ControllerSchedulerHints}
733 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
737 type: OS::TripleO::Services
739 Services: {get_param: ComputeServices}
740 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
743 type: OS::Heat::ResourceGroup
746 count: {get_param: ComputeCount}
747 removal_policies: {get_param: ComputeRemovalPolicies}
749 type: OS::TripleO::Compute
751 AdminPassword: {get_param: AdminPassword}
752 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
753 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
754 Debug: {get_param: Debug}
755 ExtraConfig: {get_param: ExtraConfig}
756 Flavor: {get_param: OvercloudComputeFlavor}
757 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
758 Image: {get_param: NovaImage}
759 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
760 KeyName: {get_param: KeyName}
761 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
762 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
763 NeutronPassword: {get_param: NeutronPassword}
764 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
765 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
766 # L3 HA and Failover is not relevant for Computes, should be removed
767 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
768 NovaComputeDriver: {get_param: NovaComputeDriver}
769 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
770 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
771 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
772 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
773 NovaIPv6: {get_param: NovaIPv6}
774 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
775 NovaPassword: {get_param: NovaPassword}
776 NovaOVSBridge: {get_param: NovaOVSBridge}
777 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
778 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
779 RabbitPassword: {get_param: RabbitPassword}
780 RabbitUserName: {get_param: RabbitUserName}
781 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
782 RabbitClientPort: {get_param: RabbitClientPort}
783 ServiceNetMap: {get_param: ServiceNetMap}
784 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
785 UpdateIdentifier: {get_param: UpdateIdentifier}
788 template: {get_param: ComputeHostnameFormat}
790 '%stackname%': {get_param: 'OS::stack_name'}
791 CloudDomain: {get_param: CloudDomain}
792 ServerMetadata: {get_param: ServerMetadata}
793 SchedulerHints: {get_param: NovaComputeSchedulerHints}
795 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
797 BlockStorageServiceChain:
798 type: OS::TripleO::Services
800 Services: {get_param: BlockStorageServices}
801 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
804 type: OS::Heat::ResourceGroup
807 count: {get_param: BlockStorageCount}
808 removal_policies: {get_param: BlockStorageRemovalPolicies}
810 type: OS::TripleO::BlockStorage
812 Image: {get_param: BlockStorageImage}
813 KeyName: {get_param: KeyName}
814 Flavor: {get_param: OvercloudBlockStorageFlavor}
815 UpdateIdentifier: {get_param: UpdateIdentifier}
818 template: {get_param: BlockStorageHostnameFormat}
820 '%stackname%': {get_param: 'OS::stack_name'}
821 ServiceNetMap: {get_param: ServiceNetMap}
822 ExtraConfig: {get_param: ExtraConfig}
823 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
824 CloudDomain: {get_param: CloudDomain}
825 ServerMetadata: {get_param: ServerMetadata}
826 SchedulerHints: {get_param: BlockStorageSchedulerHints}
828 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
830 ObjectStorageServiceChain:
831 type: OS::TripleO::Services
833 Services: {get_param: ObjectStorageServices}
834 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
837 type: OS::Heat::ResourceGroup
840 count: {get_param: ObjectStorageCount}
841 removal_policies: {get_param: ObjectStorageRemovalPolicies}
843 type: OS::TripleO::ObjectStorage
845 KeyName: {get_param: KeyName}
846 Flavor: {get_param: OvercloudSwiftStorageFlavor}
847 HashSuffix: {get_param: SwiftHashSuffix}
848 MinPartHours: {get_param: SwiftMinPartHours}
849 PartPower: {get_param: SwiftPartPower}
850 Image: {get_param: SwiftStorageImage}
851 Replicas: { get_param: SwiftReplicas}
852 UpdateIdentifier: {get_param: UpdateIdentifier}
853 ServiceNetMap: {get_param: ServiceNetMap}
856 template: {get_param: ObjectStorageHostnameFormat}
858 '%stackname%': {get_param: 'OS::stack_name'}
859 ExtraConfig: {get_param: ExtraConfig}
860 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
861 CloudDomain: {get_param: CloudDomain}
862 ServerMetadata: {get_param: ServerMetadata}
863 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
865 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
867 CephStorageServiceChain:
868 type: OS::TripleO::Services
870 Services: {get_param: CephStorageServices}
871 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
874 type: OS::Heat::ResourceGroup
877 count: {get_param: CephStorageCount}
878 removal_policies: {get_param: CephStorageRemovalPolicies}
880 type: OS::TripleO::CephStorage
882 Image: {get_param: CephStorageImage}
883 KeyName: {get_param: KeyName}
884 Flavor: {get_param: OvercloudCephStorageFlavor}
885 ServiceNetMap: {get_param: ServiceNetMap}
886 UpdateIdentifier: {get_param: UpdateIdentifier}
889 template: {get_param: CephStorageHostnameFormat}
891 '%stackname%': {get_param: 'OS::stack_name'}
892 ExtraConfig: {get_param: ExtraConfig}
893 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
894 CloudDomain: {get_param: CloudDomain}
895 ServerMetadata: {get_param: ServerMetadata}
896 SchedulerHints: {get_param: CephStorageSchedulerHints}
898 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
901 type: OS::TripleO::Network::Ports::NetIpListMap
903 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
904 ExternalIpList: {get_attr: [Controller, external_ip_address]}
905 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
906 StorageIpList: {get_attr: [Controller, storage_ip_address]}
907 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
908 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
909 ManagementIpList: {get_attr: [Controller, management_ip_address]}
912 type: OS::TripleO::AllNodes::SoftwareConfig
914 compute_hosts: {get_attr: [Compute, hosts_entry]}
915 controller_hosts: {get_attr: [Controller, hosts_entry]}
916 controller_ips: {get_attr: [Controller, ip_address]}
917 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
918 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
919 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
920 controller_names: {get_attr: [Controller, hostname]}
921 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
922 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
923 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
924 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
925 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
926 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
927 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
928 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
929 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
930 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
931 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
932 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
933 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
934 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
935 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
936 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
937 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
938 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
939 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
940 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
941 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
942 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
943 ceph_mon_node_names: {get_attr: [Controller, hostname]}
944 DeployIdentifier: {get_param: DeployIdentifier}
945 UpdateIdentifier: {get_param: UpdateIdentifier}
948 type: OS::Heat::RandomString
952 MysqlClusterUniquePart:
953 type: OS::Heat::RandomString
958 type: OS::Heat::RandomString
961 salt: {get_param: RabbitCookieSalt}
963 # creates the network architecture
965 type: OS::TripleO::Network
968 type: OS::Neutron::Port
971 name: control_virtual_ip
972 network: {get_param: NeutronControlPlaneID}
973 fixed_ips: {get_param: ControlFixedIPs}
974 replacement_policy: AUTO
978 type: OS::TripleO::Network::Ports::RedisVipPort
980 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
981 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
982 PortName: redis_virtual_ip
983 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
986 # The public VIP is on the External net, falls back to ctlplane
989 type: OS::TripleO::Network::Ports::ExternalVipPort
991 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
992 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
993 PortName: public_virtual_ip
994 FixedIPs: {get_param: PublicVirtualFixedIPs}
996 InternalApiVirtualIP:
998 type: OS::TripleO::Network::Ports::InternalApiVipPort
1000 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1001 PortName: internal_api_virtual_ip
1002 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1005 depends_on: Networks
1006 type: OS::TripleO::Network::Ports::StorageVipPort
1008 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1009 PortName: storage_virtual_ip
1010 FixedIPs: {get_param: StorageVirtualFixedIPs}
1012 StorageMgmtVirtualIP:
1013 depends_on: Networks
1014 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1016 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1017 PortName: storage_management_virtual_ip
1018 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1021 type: OS::TripleO::Network::Ports::NetVipMap
1023 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1024 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1025 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1026 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1027 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1028 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1029 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1030 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1031 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1032 # No tenant or management VIP required
1035 type: OS::TripleO::VipConfig
1038 type: OS::Heat::StructuredDeployments
1041 config: {get_resource: VipConfig}
1042 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1044 # service VIP mappings
1045 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1046 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1047 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1048 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1049 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1050 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1051 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1052 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1053 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1054 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1055 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1056 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1057 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1058 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1059 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1060 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1061 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1062 # direct configuration of Virtual IPs for each network
1063 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1064 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1065 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1066 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1067 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1068 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1069 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1071 ControllerSwiftDeployment:
1072 type: OS::Heat::StructuredDeployments
1074 name: ControllerSwiftDeployment
1075 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1076 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1078 ObjectStorageSwiftDeployment:
1079 type: OS::Heat::StructuredDeployments
1081 name: ObjectStorageSwiftDeployment
1082 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1083 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1085 SwiftDevicesAndProxyConfig:
1086 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1088 controller_swift_devices: {get_attr: [Controller, swift_device]}
1089 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1090 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1092 ComputeCephDeployment:
1093 type: OS::Heat::StructuredDeployments
1095 name: ComputeCephDeployment
1096 config: {get_attr: [CephClusterConfig, config_id]}
1097 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1099 ControllerCephDeployment:
1100 type: OS::Heat::StructuredDeployments
1102 name: ControllerCephDeployment
1103 config: {get_attr: [CephClusterConfig, config_id]}
1104 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1106 CephStorageCephDeployment:
1107 type: OS::Heat::StructuredDeployments
1109 name: CephStorageCephDeployment
1110 config: {get_attr: [CephClusterConfig, config_id]}
1111 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1114 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1116 ControllerAllNodesDeployment:
1117 type: OS::Heat::StructuredDeployments
1119 name: ControllerAllNodesDeployment
1120 config: {get_attr: [allNodesConfig, config_id]}
1121 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1123 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1124 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1126 ComputeAllNodesDeployment:
1127 type: OS::Heat::StructuredDeployments
1129 name: ComputeAllNodesDeployment
1130 config: {get_attr: [allNodesConfig, config_id]}
1131 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1133 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1134 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1136 BlockStorageAllNodesDeployment:
1137 type: OS::Heat::StructuredDeployments
1139 name: BlockStorageAllNodesDeployment
1140 config: {get_attr: [allNodesConfig, config_id]}
1141 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1143 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1144 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1146 ObjectStorageAllNodesDeployment:
1147 type: OS::Heat::StructuredDeployments
1149 name: ObjectStorageAllNodesDeployment
1150 config: {get_attr: [allNodesConfig, config_id]}
1151 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1153 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1154 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1156 CephStorageAllNodesDeployment:
1157 type: OS::Heat::StructuredDeployments
1159 name: CephStorageAllNodesDeployment
1160 config: {get_attr: [allNodesConfig, config_id]}
1161 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1163 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1164 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1166 # All Nodes Validations
1167 AllNodesValidationConfig:
1168 type: OS::TripleO::AllNodes::Validation
1173 - - {get_attr: [Controller, resource.0.external_ip_address]}
1174 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1175 - {get_attr: [Controller, resource.0.storage_ip_address]}
1176 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1177 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1179 ControllerAllNodesValidationDeployment:
1180 type: OS::Heat::StructuredDeployments
1181 depends_on: ControllerAllNodesDeployment
1183 name: ControllerAllNodesValidationDeployment
1184 config: {get_resource: AllNodesValidationConfig}
1185 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1187 ComputeAllNodesValidationDeployment:
1188 type: OS::Heat::StructuredDeployments
1189 depends_on: ComputeAllNodesDeployment
1191 name: ComputeAllNodesValidationDeployment
1192 config: {get_resource: AllNodesValidationConfig}
1193 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1195 BlockStorageAllNodesValidationDeployment:
1196 type: OS::Heat::StructuredDeployments
1197 depends_on: BlockStorageAllNodesDeployment
1199 name: BlockStorageAllNodesValidationDeployment
1200 config: {get_resource: AllNodesValidationConfig}
1201 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1203 ObjectStorageAllNodesValidationDeployment:
1204 type: OS::Heat::StructuredDeployments
1205 depends_on: ObjectStorageAllNodesDeployment
1207 name: ObjectStorageAllNodesValidationDeployment
1208 config: {get_resource: AllNodesValidationConfig}
1209 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1211 CephStorageAllNodesValidationDeployment:
1212 type: OS::Heat::StructuredDeployments
1213 depends_on: CephStorageAllNodesDeployment
1215 name: CephStorageAllNodesValidationDeployment
1216 config: {get_resource: AllNodesValidationConfig}
1217 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1220 type: OS::TripleO::Tasks::UpdateWorkflow
1222 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1223 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1224 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1225 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1226 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1228 deploy_identifier: {get_param: DeployIdentifier}
1229 update_identifier: {get_param: UpdateIdentifier}
1231 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1232 # the nested template may configure each role differently (or not at all)
1233 AllNodesExtraConfig:
1234 type: OS::TripleO::AllNodesExtraConfig
1237 - ComputeAllNodesValidationDeployment
1238 - BlockStorageAllNodesValidationDeployment
1239 - ObjectStorageAllNodesValidationDeployment
1240 - CephStorageAllNodesValidationDeployment
1241 - ControllerAllNodesValidationDeployment
1243 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1244 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1245 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1246 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1247 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1249 # Nested stack deployment runs after all other controller deployments
1250 ControllerNodesPostDeployment:
1251 type: OS::TripleO::ControllerPostDeployment
1252 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1254 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1255 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1257 ComputeNodesPostDeployment:
1258 type: OS::TripleO::ComputePostDeployment
1259 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1261 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1262 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1264 ObjectStorageNodesPostDeployment:
1265 type: OS::TripleO::ObjectStoragePostDeployment
1266 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1268 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1269 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1271 BlockStorageNodesPostDeployment:
1272 type: OS::TripleO::BlockStoragePostDeployment
1273 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1275 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1276 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1278 CephStorageNodesPostDeployment:
1279 type: OS::TripleO::CephStoragePostDeployment
1280 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1282 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1283 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1287 description: URL for the Overcloud Keystone service
1288 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1290 description: Keystone Admin VIP endpoint
1291 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1293 description: Controller VIP for public API endpoints
1294 value: {get_attr: [VipMap, net_ip_map, external]}
1296 description: VIP for Aodh API internal endpoint
1297 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1298 CeilometerInternalVip:
1299 description: VIP for Ceilometer API internal endpoint
1300 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1302 description: VIP for Cinder API internal endpoint
1303 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1305 description: VIP for Glance API internal endpoint
1306 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1308 description: VIP for Gnocchi API internal endpoint
1309 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1311 description: VIP for Heat API internal endpoint
1312 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1314 description: VIP for Ironic API internal endpoint
1315 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1316 KeystoneInternalVip:
1317 description: VIP for Keystone API internal endpoint
1318 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1320 description: VIP for Neutron API internal endpoint
1321 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1323 description: VIP for Nova API internal endpoint
1324 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1326 description: VIP for Sahara API internal endpoint
1327 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1329 description: VIP for Swift Proxy internal endpoint
1330 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1333 Mapping of the resources with the needed info for their endpoints.
1334 This includes the protocol used, the IP, port and also a full
1335 representation of the URI.
1336 value: {get_attr: [EndpointMap, endpoint_map]}
1339 The content that should be appended to your /etc/hosts if you want to get
1340 hostname-based access to the deployed nodes (useful for testing without
1342 value: {get_attr: [allNodesConfig, hosts_entries]}