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::MySQL
385 - OS::TripleO::Services::NeutronDhcpAgent
386 - OS::TripleO::Services::NeutronL3Agent
387 - OS::TripleO::Services::NeutronMetadataAgent
388 - OS::TripleO::Services::NeutronServer
389 - OS::TripleO::Services::NeutronCorePlugin
390 - OS::TripleO::Services::NeutronOvsAgent
391 - OS::TripleO::Services::RabbitMQ
392 - OS::TripleO::Services::HAproxy
393 - OS::TripleO::Services::Keepalived
394 - OS::TripleO::Services::Memcached
395 - OS::TripleO::Services::Pacemaker
396 - OS::TripleO::Services::Redis
397 - OS::TripleO::Services::NovaConductor
398 - OS::TripleO::Services::MongoDb
399 - OS::TripleO::Services::NovaApi
400 - OS::TripleO::Services::NovaScheduler
401 - OS::TripleO::Services::NovaConsoleauth
402 - OS::TripleO::Services::NovaVncproxy
403 - OS::TripleO::Services::Ntp
404 - OS::TripleO::Services::SwiftProxy
405 - OS::TripleO::Services::SwiftStorage
406 - OS::TripleO::Services::Snmp
407 - OS::TripleO::Services::Timezone
408 - OS::TripleO::Services::CeilometerApi
409 - OS::TripleO::Services::CeilometerCollector
410 - OS::TripleO::Services::CeilometerExpirer
411 - OS::TripleO::Services::CeilometerAgentCentral
412 - OS::TripleO::Services::CeilometerAgentNotification
413 - OS::TripleO::Services::Horizon
414 - OS::TripleO::Services::GnocchiApi
415 - OS::TripleO::Services::GnocchiMetricd
416 - OS::TripleO::Services::GnocchiStatsd
418 description: A list of service resources (configured in the Heat
419 resource_registry) which represent nested stacks
420 for each service that should get installed on the Controllers.
421 type: comma_delimited_list
425 - OS::TripleO::Services::CephClient
426 - OS::TripleO::Services::CephExternal
427 - OS::TripleO::Services::Timezone
428 - OS::TripleO::Services::Ntp
429 - OS::TripleO::Services::Snmp
430 - OS::TripleO::Services::NovaCompute
431 - OS::TripleO::Services::NovaLibvirt
432 - OS::TripleO::Services::Kernel
433 - OS::TripleO::Services::ComputeNeutronCorePlugin
434 - OS::TripleO::Services::ComputeNeutronOvsAgent
435 - OS::TripleO::Services::ComputeCeilometerAgent
436 description: A list of service resources (configured in the Heat
437 resource_registry) which represent nested stacks
438 for each service that should get installed on the Compute Nodes.
439 type: comma_delimited_list
441 # Block storage specific parameters
446 default: overcloud-full
448 OvercloudBlockStorageFlavor:
449 description: Flavor for block storage nodes to request when deploying.
453 - custom_constraint: nova.flavor
454 BlockStorageExtraConfig:
457 BlockStorage specific configuration to inject into the cluster. Same
458 structure as ExtraConfig.
460 BlockStorageSchedulerHints:
462 description: Optional scheduler hints to pass to nova
464 BlockStorageServices:
466 - OS::TripleO::Services::CinderVolume
467 - OS::TripleO::Services::Kernel
468 - OS::TripleO::Services::Ntp
469 - OS::TripleO::Services::Timezone
470 - OS::TripleO::Services::Snmp
471 description: A list of service resources (configured in the Heat
472 resource_registry) which represent nested stacks
473 for each service that should get installed on the BlockStorage nodes.
474 type: comma_delimited_list
476 # Object storage specific parameters
480 OvercloudSwiftStorageFlavor:
481 description: Flavor for Swift storage nodes to request when deploying.
485 - custom_constraint: nova.flavor
487 default: overcloud-full
489 ObjectStorageExtraConfig:
492 ObjectStorage specific configuration to inject into the cluster. Same
493 structure as ExtraConfig.
495 ObjectStorageSchedulerHints:
497 description: Optional scheduler hints to pass to nova
499 ObjectStorageServices:
501 - OS::TripleO::Services::Kernel
502 - OS::TripleO::Services::Ntp
503 - OS::TripleO::Services::SwiftStorage
504 - OS::TripleO::Services::Snmp
505 - OS::TripleO::Services::Timezone
506 description: A list of service resources (configured in the Heat
507 resource_registry) which represent nested stacks
508 for each service that should get installed on the ObjectStorage nodes.
509 Note this role currently only supports steps 2, 3 and 4 configuration.
510 type: comma_delimited_list
513 # Ceph storage specific parameters
518 default: overcloud-full
520 OvercloudCephStorageFlavor:
522 description: Flavor for Ceph storage nodes to request when deploying.
525 - custom_constraint: nova.flavor
526 CephStorageExtraConfig:
529 CephStorage specific configuration to inject into the cluster. Same
530 structure as ExtraConfig.
532 CephStorageSchedulerHints:
534 description: Optional scheduler hints to pass to nova
538 - OS::TripleO::Services::CephOSD
539 - OS::TripleO::Services::Kernel
540 - OS::TripleO::Services::Ntp
541 - OS::TripleO::Services::Timezone
542 description: A list of service resources (configured in the Heat
543 resource_registry) which represent nested stacks
544 for each service that should get installed on the CephStorage nodes.
545 type: comma_delimited_list
547 # Hostname format for each role
548 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
549 # and %stackname% is replaced with OS::stack_name in the template below.
550 # If you want to use the heat generated names, pass '' (empty string).
551 ControllerHostnameFormat:
553 description: Format for Controller node hostnames
554 default: '%stackname%-controller-%index%'
555 ComputeHostnameFormat:
557 description: Format for Compute node hostnames
558 default: '%stackname%-novacompute-%index%'
559 BlockStorageHostnameFormat:
561 description: Format for BlockStorage node hostnames
562 default: '%stackname%-blockstorage-%index%'
563 ObjectStorageHostnameFormat:
565 description: Format for SwiftStorage node hostnames
566 default: '%stackname%-objectstorage-%index%'
567 CephStorageHostnameFormat:
569 description: Format for CephStorage node hostnames
570 default: '%stackname%-cephstorage-%index%'
572 # Identifiers to trigger tasks on nodes
577 Setting to a previously unused value during stack-update will trigger
578 package update on all nodes
583 Setting this to a unique value will re-run any deployment tasks which
584 perform configuration on a Heat stack-update.
586 # If you want to remove a specific node from a resource group, you can pass
587 # the node name or id as a <Group>RemovalPolicies parameter, for example:
588 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
589 ControllerRemovalPolicies:
593 List of resources to be removed from ControllerResourceGroup when
594 doing an update which requires removal of specific resources.
595 ComputeRemovalPolicies:
599 List of resources to be removed from ComputeResourceGroup when
600 doing an update which requires removal of specific resources.
601 BlockStorageRemovalPolicies:
605 List of resources to be removed from BlockStorageResourceGroup when
606 doing an update which requires removal of specific resources.
607 ObjectStorageRemovalPolicies:
611 List of resources to be removed from ObjectStorageResourceGroup when
612 doing an update which requires removal of specific resources.
613 CephStorageRemovalPolicies:
617 List of resources to be removed from CephStorageResourceGroup when
618 doing an update which requires removal of specific resources.
622 description: Do not use deprecated params, they will be removed.
624 - controllerExtraConfig
629 HeatAuthEncryptionKey:
630 type: OS::Heat::RandomString
633 type: OS::Heat::RandomString
638 type: OS::Heat::RandomString
643 type: OS::TripleO::EndpointMap
645 CloudName: {get_param: CloudName}
646 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
647 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
648 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
649 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
650 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
651 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
652 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
653 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
654 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
655 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
656 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
657 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
658 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
659 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
660 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
661 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
662 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
664 ControllerServiceChain:
665 type: OS::TripleO::Services
667 Services: {get_param: ControllerServices}
668 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
671 type: OS::Heat::ResourceGroup
674 count: {get_param: ControllerCount}
675 removal_policies: {get_param: ControllerRemovalPolicies}
677 type: OS::TripleO::Controller
679 AdminPassword: {get_param: AdminPassword}
680 AodhPassword: {get_param: AodhPassword}
681 CloudDomain: {get_param: CloudDomain}
682 ControlVirtualInterface: {get_param: ControlVirtualInterface}
683 controllerExtraConfig: {get_param: controllerExtraConfig}
684 CorosyncIPv6: {get_param: CorosyncIPv6}
685 Debug: {get_param: Debug}
686 EnableFencing: {get_param: EnableFencing}
687 ManageFirewall: {get_param: ManageFirewall}
688 PurgeFirewallRules: {get_param: PurgeFirewallRules}
689 EnableGalera: {get_param: EnableGalera}
690 ExtraConfig: {get_param: ExtraConfig}
691 FencingConfig: {get_param: FencingConfig}
692 Flavor: {get_param: OvercloudControlFlavor}
693 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
694 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
695 HorizonSecret: {get_resource: HorizonSecret}
696 Image: {get_param: controllerImage}
697 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
698 InstanceNameTemplate: {get_param: InstanceNameTemplate}
699 KeyName: {get_param: KeyName}
700 MemcachedIPv6: {get_param: MemcachedIPv6}
701 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
702 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
703 MysqlMaxConnections: {get_param: MysqlMaxConnections}
704 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
705 NeutronPublicInterface: {get_param: NeutronPublicInterface}
706 NeutronPassword: {get_param: NeutronPassword}
707 NovaIPv6: {get_param: NovaIPv6}
708 NovaPassword: {get_param: NovaPassword}
709 PcsdPassword: {get_resource: PcsdPassword}
710 PublicVirtualInterface: {get_param: PublicVirtualInterface}
711 RabbitPassword: {get_param: RabbitPassword}
712 RabbitUserName: {get_param: RabbitUserName}
713 RabbitCookie: {get_attr: [RabbitCookie, value]}
714 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
715 RabbitClientPort: {get_param: RabbitClientPort}
716 RedisPassword: {get_param: RedisPassword}
717 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
718 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
719 SwiftHashSuffix: {get_param: SwiftHashSuffix}
720 SwiftMinPartHours: {get_param: SwiftMinPartHours}
721 SwiftPartPower: {get_param: SwiftPartPower}
722 SwiftReplicas: { get_param: SwiftReplicas}
723 ServiceNetMap: {get_param: ServiceNetMap}
724 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
725 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
726 UpdateIdentifier: {get_param: UpdateIdentifier}
729 template: {get_param: ControllerHostnameFormat}
731 '%stackname%': {get_param: 'OS::stack_name'}
733 ServerMetadata: {get_param: ServerMetadata}
734 SchedulerHints: {get_param: ControllerSchedulerHints}
735 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
739 type: OS::TripleO::Services
741 Services: {get_param: ComputeServices}
742 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
745 type: OS::Heat::ResourceGroup
748 count: {get_param: ComputeCount}
749 removal_policies: {get_param: ComputeRemovalPolicies}
751 type: OS::TripleO::Compute
753 AdminPassword: {get_param: AdminPassword}
754 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
755 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
756 Debug: {get_param: Debug}
757 ExtraConfig: {get_param: ExtraConfig}
758 Flavor: {get_param: OvercloudComputeFlavor}
759 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
760 Image: {get_param: NovaImage}
761 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
762 KeyName: {get_param: KeyName}
763 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
764 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
765 NeutronPassword: {get_param: NeutronPassword}
766 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
767 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
768 # L3 HA and Failover is not relevant for Computes, should be removed
769 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
770 NovaComputeDriver: {get_param: NovaComputeDriver}
771 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
772 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
773 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
774 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
775 NovaIPv6: {get_param: NovaIPv6}
776 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
777 NovaPassword: {get_param: NovaPassword}
778 NovaOVSBridge: {get_param: NovaOVSBridge}
779 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
780 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
781 RabbitPassword: {get_param: RabbitPassword}
782 RabbitUserName: {get_param: RabbitUserName}
783 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
784 RabbitClientPort: {get_param: RabbitClientPort}
785 ServiceNetMap: {get_param: ServiceNetMap}
786 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
787 UpdateIdentifier: {get_param: UpdateIdentifier}
790 template: {get_param: ComputeHostnameFormat}
792 '%stackname%': {get_param: 'OS::stack_name'}
793 CloudDomain: {get_param: CloudDomain}
794 ServerMetadata: {get_param: ServerMetadata}
795 SchedulerHints: {get_param: NovaComputeSchedulerHints}
797 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
799 BlockStorageServiceChain:
800 type: OS::TripleO::Services
802 Services: {get_param: BlockStorageServices}
803 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
806 type: OS::Heat::ResourceGroup
809 count: {get_param: BlockStorageCount}
810 removal_policies: {get_param: BlockStorageRemovalPolicies}
812 type: OS::TripleO::BlockStorage
814 Image: {get_param: BlockStorageImage}
815 KeyName: {get_param: KeyName}
816 Flavor: {get_param: OvercloudBlockStorageFlavor}
817 UpdateIdentifier: {get_param: UpdateIdentifier}
820 template: {get_param: BlockStorageHostnameFormat}
822 '%stackname%': {get_param: 'OS::stack_name'}
823 ServiceNetMap: {get_param: ServiceNetMap}
824 ExtraConfig: {get_param: ExtraConfig}
825 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
826 CloudDomain: {get_param: CloudDomain}
827 ServerMetadata: {get_param: ServerMetadata}
828 SchedulerHints: {get_param: BlockStorageSchedulerHints}
830 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
832 ObjectStorageServiceChain:
833 type: OS::TripleO::Services
835 Services: {get_param: ObjectStorageServices}
836 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
839 type: OS::Heat::ResourceGroup
842 count: {get_param: ObjectStorageCount}
843 removal_policies: {get_param: ObjectStorageRemovalPolicies}
845 type: OS::TripleO::ObjectStorage
847 KeyName: {get_param: KeyName}
848 Flavor: {get_param: OvercloudSwiftStorageFlavor}
849 HashSuffix: {get_param: SwiftHashSuffix}
850 MinPartHours: {get_param: SwiftMinPartHours}
851 PartPower: {get_param: SwiftPartPower}
852 Image: {get_param: SwiftStorageImage}
853 Replicas: { get_param: SwiftReplicas}
854 UpdateIdentifier: {get_param: UpdateIdentifier}
855 ServiceNetMap: {get_param: ServiceNetMap}
858 template: {get_param: ObjectStorageHostnameFormat}
860 '%stackname%': {get_param: 'OS::stack_name'}
861 ExtraConfig: {get_param: ExtraConfig}
862 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
863 CloudDomain: {get_param: CloudDomain}
864 ServerMetadata: {get_param: ServerMetadata}
865 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
867 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
869 CephStorageServiceChain:
870 type: OS::TripleO::Services
872 Services: {get_param: CephStorageServices}
873 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
876 type: OS::Heat::ResourceGroup
879 count: {get_param: CephStorageCount}
880 removal_policies: {get_param: CephStorageRemovalPolicies}
882 type: OS::TripleO::CephStorage
884 Image: {get_param: CephStorageImage}
885 KeyName: {get_param: KeyName}
886 Flavor: {get_param: OvercloudCephStorageFlavor}
887 ServiceNetMap: {get_param: ServiceNetMap}
888 UpdateIdentifier: {get_param: UpdateIdentifier}
891 template: {get_param: CephStorageHostnameFormat}
893 '%stackname%': {get_param: 'OS::stack_name'}
894 ExtraConfig: {get_param: ExtraConfig}
895 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
896 CloudDomain: {get_param: CloudDomain}
897 ServerMetadata: {get_param: ServerMetadata}
898 SchedulerHints: {get_param: CephStorageSchedulerHints}
900 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
903 type: OS::TripleO::Network::Ports::NetIpListMap
905 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
906 ExternalIpList: {get_attr: [Controller, external_ip_address]}
907 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
908 StorageIpList: {get_attr: [Controller, storage_ip_address]}
909 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
910 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
911 ManagementIpList: {get_attr: [Controller, management_ip_address]}
914 type: OS::TripleO::AllNodes::SoftwareConfig
916 compute_hosts: {get_attr: [Compute, hosts_entry]}
917 controller_hosts: {get_attr: [Controller, hosts_entry]}
918 controller_ips: {get_attr: [Controller, ip_address]}
919 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
920 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
921 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
922 controller_names: {get_attr: [Controller, hostname]}
923 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
924 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
925 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
926 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
927 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
928 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
929 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
930 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
931 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
932 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
933 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
934 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
935 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
936 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
937 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
938 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
939 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
940 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
941 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
942 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
943 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
944 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
945 ceph_mon_node_names: {get_attr: [Controller, hostname]}
946 DeployIdentifier: {get_param: DeployIdentifier}
947 UpdateIdentifier: {get_param: UpdateIdentifier}
950 type: OS::Heat::RandomString
954 MysqlClusterUniquePart:
955 type: OS::Heat::RandomString
960 type: OS::Heat::RandomString
963 salt: {get_param: RabbitCookieSalt}
965 # creates the network architecture
967 type: OS::TripleO::Network
970 type: OS::Neutron::Port
973 name: control_virtual_ip
974 network: {get_param: NeutronControlPlaneID}
975 fixed_ips: {get_param: ControlFixedIPs}
976 replacement_policy: AUTO
980 type: OS::TripleO::Network::Ports::RedisVipPort
982 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
983 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
984 PortName: redis_virtual_ip
985 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
988 # The public VIP is on the External net, falls back to ctlplane
991 type: OS::TripleO::Network::Ports::ExternalVipPort
993 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
994 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
995 PortName: public_virtual_ip
996 FixedIPs: {get_param: PublicVirtualFixedIPs}
998 InternalApiVirtualIP:
1000 type: OS::TripleO::Network::Ports::InternalApiVipPort
1002 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1003 PortName: internal_api_virtual_ip
1004 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1007 depends_on: Networks
1008 type: OS::TripleO::Network::Ports::StorageVipPort
1010 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1011 PortName: storage_virtual_ip
1012 FixedIPs: {get_param: StorageVirtualFixedIPs}
1014 StorageMgmtVirtualIP:
1015 depends_on: Networks
1016 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1018 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1019 PortName: storage_management_virtual_ip
1020 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1023 type: OS::TripleO::Network::Ports::NetVipMap
1025 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1026 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1027 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1028 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1029 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1030 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1031 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1032 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1033 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1034 # No tenant or management VIP required
1037 type: OS::TripleO::VipConfig
1040 type: OS::Heat::StructuredDeployments
1043 config: {get_resource: VipConfig}
1044 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1046 # service VIP mappings
1047 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1048 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1049 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1050 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1051 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1052 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1053 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1054 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1055 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1056 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1057 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1058 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1059 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1060 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1061 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1062 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1063 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1064 # direct configuration of Virtual IPs for each network
1065 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1066 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1067 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1068 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1069 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1070 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1071 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1073 ControllerSwiftDeployment:
1074 type: OS::Heat::StructuredDeployments
1076 name: ControllerSwiftDeployment
1077 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1078 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1080 ObjectStorageSwiftDeployment:
1081 type: OS::Heat::StructuredDeployments
1083 name: ObjectStorageSwiftDeployment
1084 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1085 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1087 SwiftDevicesAndProxyConfig:
1088 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1090 controller_swift_devices: {get_attr: [Controller, swift_device]}
1091 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1092 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1094 ComputeCephDeployment:
1095 type: OS::Heat::StructuredDeployments
1097 name: ComputeCephDeployment
1098 config: {get_attr: [CephClusterConfig, config_id]}
1099 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1101 ControllerCephDeployment:
1102 type: OS::Heat::StructuredDeployments
1104 name: ControllerCephDeployment
1105 config: {get_attr: [CephClusterConfig, config_id]}
1106 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1108 CephStorageCephDeployment:
1109 type: OS::Heat::StructuredDeployments
1111 name: CephStorageCephDeployment
1112 config: {get_attr: [CephClusterConfig, config_id]}
1113 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1116 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1118 ControllerAllNodesDeployment:
1119 type: OS::Heat::StructuredDeployments
1121 name: ControllerAllNodesDeployment
1122 config: {get_attr: [allNodesConfig, config_id]}
1123 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1125 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1126 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1128 ComputeAllNodesDeployment:
1129 type: OS::Heat::StructuredDeployments
1131 name: ComputeAllNodesDeployment
1132 config: {get_attr: [allNodesConfig, config_id]}
1133 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1135 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1136 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1138 BlockStorageAllNodesDeployment:
1139 type: OS::Heat::StructuredDeployments
1141 name: BlockStorageAllNodesDeployment
1142 config: {get_attr: [allNodesConfig, config_id]}
1143 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1145 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1146 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1148 ObjectStorageAllNodesDeployment:
1149 type: OS::Heat::StructuredDeployments
1151 name: ObjectStorageAllNodesDeployment
1152 config: {get_attr: [allNodesConfig, config_id]}
1153 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1155 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1156 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1158 CephStorageAllNodesDeployment:
1159 type: OS::Heat::StructuredDeployments
1161 name: CephStorageAllNodesDeployment
1162 config: {get_attr: [allNodesConfig, config_id]}
1163 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1165 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1166 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1168 # All Nodes Validations
1169 AllNodesValidationConfig:
1170 type: OS::TripleO::AllNodes::Validation
1175 - - {get_attr: [Controller, resource.0.external_ip_address]}
1176 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1177 - {get_attr: [Controller, resource.0.storage_ip_address]}
1178 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1179 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1181 ControllerAllNodesValidationDeployment:
1182 type: OS::Heat::StructuredDeployments
1183 depends_on: ControllerAllNodesDeployment
1185 name: ControllerAllNodesValidationDeployment
1186 config: {get_resource: AllNodesValidationConfig}
1187 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1189 ComputeAllNodesValidationDeployment:
1190 type: OS::Heat::StructuredDeployments
1191 depends_on: ComputeAllNodesDeployment
1193 name: ComputeAllNodesValidationDeployment
1194 config: {get_resource: AllNodesValidationConfig}
1195 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1197 BlockStorageAllNodesValidationDeployment:
1198 type: OS::Heat::StructuredDeployments
1199 depends_on: BlockStorageAllNodesDeployment
1201 name: BlockStorageAllNodesValidationDeployment
1202 config: {get_resource: AllNodesValidationConfig}
1203 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1205 ObjectStorageAllNodesValidationDeployment:
1206 type: OS::Heat::StructuredDeployments
1207 depends_on: ObjectStorageAllNodesDeployment
1209 name: ObjectStorageAllNodesValidationDeployment
1210 config: {get_resource: AllNodesValidationConfig}
1211 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1213 CephStorageAllNodesValidationDeployment:
1214 type: OS::Heat::StructuredDeployments
1215 depends_on: CephStorageAllNodesDeployment
1217 name: CephStorageAllNodesValidationDeployment
1218 config: {get_resource: AllNodesValidationConfig}
1219 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1222 type: OS::TripleO::Tasks::UpdateWorkflow
1224 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1225 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1226 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1227 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1228 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1230 deploy_identifier: {get_param: DeployIdentifier}
1231 update_identifier: {get_param: UpdateIdentifier}
1233 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1234 # the nested template may configure each role differently (or not at all)
1235 AllNodesExtraConfig:
1236 type: OS::TripleO::AllNodesExtraConfig
1239 - ComputeAllNodesValidationDeployment
1240 - BlockStorageAllNodesValidationDeployment
1241 - ObjectStorageAllNodesValidationDeployment
1242 - CephStorageAllNodesValidationDeployment
1243 - ControllerAllNodesValidationDeployment
1245 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1246 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1247 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1248 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1249 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1251 # Nested stack deployment runs after all other controller deployments
1252 ControllerNodesPostDeployment:
1253 type: OS::TripleO::ControllerPostDeployment
1254 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1256 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1257 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1259 ComputeNodesPostDeployment:
1260 type: OS::TripleO::ComputePostDeployment
1261 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1263 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1264 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1266 ObjectStorageNodesPostDeployment:
1267 type: OS::TripleO::ObjectStoragePostDeployment
1268 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1270 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1271 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1273 BlockStorageNodesPostDeployment:
1274 type: OS::TripleO::BlockStoragePostDeployment
1275 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1277 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1278 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1280 CephStorageNodesPostDeployment:
1281 type: OS::TripleO::CephStoragePostDeployment
1282 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1284 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1285 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1289 description: URL for the Overcloud Keystone service
1290 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1292 description: Keystone Admin VIP endpoint
1293 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1295 description: Controller VIP for public API endpoints
1296 value: {get_attr: [VipMap, net_ip_map, external]}
1298 description: VIP for Aodh API internal endpoint
1299 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1300 CeilometerInternalVip:
1301 description: VIP for Ceilometer API internal endpoint
1302 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1304 description: VIP for Cinder API internal endpoint
1305 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1307 description: VIP for Glance API internal endpoint
1308 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1310 description: VIP for Gnocchi API internal endpoint
1311 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1313 description: VIP for Heat API internal endpoint
1314 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1316 description: VIP for Ironic API internal endpoint
1317 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1318 KeystoneInternalVip:
1319 description: VIP for Keystone API internal endpoint
1320 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1322 description: VIP for Neutron API internal endpoint
1323 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1325 description: VIP for Nova API internal endpoint
1326 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1328 description: VIP for Sahara API internal endpoint
1329 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1331 description: VIP for Swift Proxy internal endpoint
1332 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1335 Mapping of the resources with the needed info for their endpoints.
1336 This includes the protocol used, the IP, port and also a full
1337 representation of the URI.
1338 value: {get_attr: [EndpointMap, endpoint_map]}
1341 The content that should be appended to your /etc/hosts if you want to get
1342 hostname-based access to the deployed nodes (useful for testing without
1344 value: {get_attr: [allNodesConfig, hosts_entries]}