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
274 CeilometerComputeAgent:
275 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
279 - allowed_values: ['', Present]
283 HypervisorNeutronPhysicalBridge:
286 An OVS bridge to create on each hypervisor. This defaults to br-ex the
287 same as the control plane nodes, as we have a uniform configuration of
288 the openvswitch agent. Typically should not need to be changed.
290 HypervisorNeutronPublicInterface:
292 description: What interface to add to the HypervisorNeutronPhysicalBridge.
296 default: libvirt.LibvirtDriver
297 NovaComputeExtraConfig:
300 NovaCompute specific configuration to inject into the cluster. Same
301 structure as ExtraConfig.
303 NovaComputeLibvirtType:
306 NovaComputeLibvirtVifDriver:
308 description: Libvirt VIF driver configuration for the network
310 NovaComputeSchedulerHints:
312 description: Optional scheduler hints to pass to nova
314 NovaEnableRbdBackend:
316 description: Whether to enable or not the Rbd backend for Nova
320 default: overcloud-full
322 - custom_constraint: glance.image
325 description: Name of integration bridge used by Open vSwitch
327 NovaSecurityGroupAPI:
329 description: The full class name of the security API class
331 OvercloudComputeFlavor:
332 description: Use this flavor
336 - custom_constraint: nova.flavor
339 NeutronTenantNetwork: tenant
340 CeilometerApiNetwork: internal_api
341 AodhApiNetwork: internal_api
342 GnocchiApiNetwork: internal_api
343 MongoDbNetwork: internal_api
344 CinderApiNetwork: internal_api
345 CinderIscsiNetwork: storage
346 GlanceApiNetwork: storage
347 GlanceRegistryNetwork: internal_api
348 IronicApiNetwork: internal_api
349 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
350 KeystonePublicApiNetwork: internal_api
351 NeutronApiNetwork: internal_api
352 HeatApiNetwork: internal_api
353 NovaApiNetwork: internal_api
354 NovaMetadataNetwork: internal_api
355 NovaVncProxyNetwork: internal_api
356 SwiftMgmtNetwork: storage_mgmt
357 SwiftProxyNetwork: storage
358 SaharaApiNetwork: internal_api
359 HorizonNetwork: internal_api
360 MemcachedNetwork: internal_api
361 RabbitMqNetwork: internal_api
362 RedisNetwork: internal_api
363 MysqlNetwork: internal_api
364 CephClusterNetwork: storage_mgmt
365 CephPublicNetwork: storage
366 ControllerHostnameResolveNetwork: internal_api
367 ComputeHostnameResolveNetwork: internal_api
368 BlockStorageHostnameResolveNetwork: internal_api
369 ObjectStorageHostnameResolveNetwork: internal_api
370 CephStorageHostnameResolveNetwork: storage
371 description: Mapping of service_name -> network name. Typically set
372 via parameter_defaults in the resource registry.
377 - OS::TripleO::Services::CephMon
378 - OS::TripleO::Services::CephExternal
379 - OS::TripleO::Services::CinderApi
380 - OS::TripleO::Services::CinderScheduler
381 - OS::TripleO::Services::CinderVolume
382 - OS::TripleO::Services::Kernel
383 - OS::TripleO::Services::Keystone
384 - OS::TripleO::Services::GlanceApi
385 - OS::TripleO::Services::GlanceRegistry
386 - OS::TripleO::Services::HeatApi
387 - OS::TripleO::Services::HeatApiCfn
388 - OS::TripleO::Services::HeatApiCloudwatch
389 - OS::TripleO::Services::HeatEngine
390 - OS::TripleO::Services::NeutronDhcpAgent
391 - OS::TripleO::Services::NeutronL3Agent
392 - OS::TripleO::Services::NeutronMetadataAgent
393 - OS::TripleO::Services::NeutronServer
394 - OS::TripleO::Services::NeutronCorePlugin
395 - OS::TripleO::Services::NeutronOvsAgent
396 - OS::TripleO::Services::RabbitMQ
397 - OS::TripleO::Services::HAproxy
398 - OS::TripleO::Services::Keepalived
399 - OS::TripleO::Services::Memcached
400 - OS::TripleO::Services::Redis
401 - OS::TripleO::Services::NovaConductor
402 - OS::TripleO::Services::MongoDb
403 - OS::TripleO::Services::NovaApi
404 - OS::TripleO::Services::NovaScheduler
405 - OS::TripleO::Services::NovaConsoleauth
406 - OS::TripleO::Services::NovaVncproxy
407 - OS::TripleO::Services::Ntp
408 - OS::TripleO::Services::SwiftProxy
409 - OS::TripleO::Services::SwiftStorage
410 - OS::TripleO::Services::Snmp
411 - OS::TripleO::Services::Timezone
412 - OS::TripleO::Services::CeilometerApi
413 - OS::TripleO::Services::CeilometerCollector
414 - OS::TripleO::Services::CeilometerExpirer
415 - OS::TripleO::Services::CeilometerAgentCentral
416 - OS::TripleO::Services::CeilometerAgentNotification
417 - OS::TripleO::Services::Horizon
418 - OS::TripleO::Services::GnocchiApi
419 - OS::TripleO::Services::GnocchiMetricd
420 - OS::TripleO::Services::GnocchiStatsd
422 description: A list of service resources (configured in the Heat
423 resource_registry) which represent nested stacks
424 for each service that should get installed on the Controllers.
425 type: comma_delimited_list
429 - OS::TripleO::Services::CephClient
430 - OS::TripleO::Services::CephExternal
431 - OS::TripleO::Services::Timezone
432 - OS::TripleO::Services::Ntp
433 - OS::TripleO::Services::Snmp
434 - OS::TripleO::Services::NovaCompute
435 - OS::TripleO::Services::NovaLibvirt
436 - OS::TripleO::Services::Kernel
437 - OS::TripleO::Services::ComputeNeutronCorePlugin
438 - OS::TripleO::Services::ComputeNeutronOvsAgent
439 description: A list of service resources (configured in the Heat
440 resource_registry) which represent nested stacks
441 for each service that should get installed on the Compute Nodes.
442 type: comma_delimited_list
444 # Block storage specific parameters
449 default: overcloud-full
451 OvercloudBlockStorageFlavor:
452 description: Flavor for block storage nodes to request when deploying.
456 - custom_constraint: nova.flavor
457 BlockStorageExtraConfig:
460 BlockStorage specific configuration to inject into the cluster. Same
461 structure as ExtraConfig.
463 BlockStorageSchedulerHints:
465 description: Optional scheduler hints to pass to nova
467 BlockStorageServices:
469 - OS::TripleO::Services::CinderVolume
470 - OS::TripleO::Services::Kernel
471 - OS::TripleO::Services::Ntp
472 - OS::TripleO::Services::Timezone
473 - OS::TripleO::Services::Snmp
474 description: A list of service resources (configured in the Heat
475 resource_registry) which represent nested stacks
476 for each service that should get installed on the BlockStorage nodes.
477 type: comma_delimited_list
479 # Object storage specific parameters
483 OvercloudSwiftStorageFlavor:
484 description: Flavor for Swift storage nodes to request when deploying.
488 - custom_constraint: nova.flavor
490 default: overcloud-full
492 ObjectStorageExtraConfig:
495 ObjectStorage specific configuration to inject into the cluster. Same
496 structure as ExtraConfig.
498 ObjectStorageSchedulerHints:
500 description: Optional scheduler hints to pass to nova
502 ObjectStorageServices:
504 - OS::TripleO::Services::Kernel
505 - OS::TripleO::Services::Ntp
506 - OS::TripleO::Services::SwiftStorage
507 - OS::TripleO::Services::Snmp
508 - OS::TripleO::Services::Timezone
509 description: A list of service resources (configured in the Heat
510 resource_registry) which represent nested stacks
511 for each service that should get installed on the ObjectStorage nodes.
512 Note this role currently only supports steps 2, 3 and 4 configuration.
513 type: comma_delimited_list
516 # Ceph storage specific parameters
521 default: overcloud-full
523 OvercloudCephStorageFlavor:
525 description: Flavor for Ceph storage nodes to request when deploying.
528 - custom_constraint: nova.flavor
529 CephStorageExtraConfig:
532 CephStorage specific configuration to inject into the cluster. Same
533 structure as ExtraConfig.
535 CephStorageSchedulerHints:
537 description: Optional scheduler hints to pass to nova
541 - OS::TripleO::Services::CephOSD
542 - OS::TripleO::Services::Kernel
543 - OS::TripleO::Services::Ntp
544 - OS::TripleO::Services::Timezone
545 description: A list of service resources (configured in the Heat
546 resource_registry) which represent nested stacks
547 for each service that should get installed on the CephStorage nodes.
548 type: comma_delimited_list
550 # Hostname format for each role
551 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
552 # and %stackname% is replaced with OS::stack_name in the template below.
553 # If you want to use the heat generated names, pass '' (empty string).
554 ControllerHostnameFormat:
556 description: Format for Controller node hostnames
557 default: '%stackname%-controller-%index%'
558 ComputeHostnameFormat:
560 description: Format for Compute node hostnames
561 default: '%stackname%-novacompute-%index%'
562 BlockStorageHostnameFormat:
564 description: Format for BlockStorage node hostnames
565 default: '%stackname%-blockstorage-%index%'
566 ObjectStorageHostnameFormat:
568 description: Format for SwiftStorage node hostnames
569 default: '%stackname%-objectstorage-%index%'
570 CephStorageHostnameFormat:
572 description: Format for CephStorage node hostnames
573 default: '%stackname%-cephstorage-%index%'
575 # Identifiers to trigger tasks on nodes
580 Setting to a previously unused value during stack-update will trigger
581 package update on all nodes
586 Setting this to a unique value will re-run any deployment tasks which
587 perform configuration on a Heat stack-update.
589 # If you want to remove a specific node from a resource group, you can pass
590 # the node name or id as a <Group>RemovalPolicies parameter, for example:
591 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
592 ControllerRemovalPolicies:
596 List of resources to be removed from ControllerResourceGroup when
597 doing an update which requires removal of specific resources.
598 ComputeRemovalPolicies:
602 List of resources to be removed from ComputeResourceGroup when
603 doing an update which requires removal of specific resources.
604 BlockStorageRemovalPolicies:
608 List of resources to be removed from BlockStorageResourceGroup when
609 doing an update which requires removal of specific resources.
610 ObjectStorageRemovalPolicies:
614 List of resources to be removed from ObjectStorageResourceGroup when
615 doing an update which requires removal of specific resources.
616 CephStorageRemovalPolicies:
620 List of resources to be removed from CephStorageResourceGroup when
621 doing an update which requires removal of specific resources.
625 description: Do not use deprecated params, they will be removed.
627 - controllerExtraConfig
632 HeatAuthEncryptionKey:
633 type: OS::Heat::RandomString
636 type: OS::Heat::RandomString
641 type: OS::Heat::RandomString
646 type: OS::TripleO::EndpointMap
648 CloudName: {get_param: CloudName}
649 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
650 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
651 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
652 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
653 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
654 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
655 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
656 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
657 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
658 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
659 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
660 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
661 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
662 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
663 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
664 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
665 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
667 ControllerServiceChain:
668 type: OS::TripleO::Services
670 Services: {get_param: ControllerServices}
671 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
674 type: OS::Heat::ResourceGroup
677 count: {get_param: ControllerCount}
678 removal_policies: {get_param: ControllerRemovalPolicies}
680 type: OS::TripleO::Controller
682 AdminPassword: {get_param: AdminPassword}
683 AodhPassword: {get_param: AodhPassword}
684 CloudDomain: {get_param: CloudDomain}
685 ControlVirtualInterface: {get_param: ControlVirtualInterface}
686 controllerExtraConfig: {get_param: controllerExtraConfig}
687 CorosyncIPv6: {get_param: CorosyncIPv6}
688 Debug: {get_param: Debug}
689 EnableFencing: {get_param: EnableFencing}
690 ManageFirewall: {get_param: ManageFirewall}
691 PurgeFirewallRules: {get_param: PurgeFirewallRules}
692 EnableGalera: {get_param: EnableGalera}
693 ExtraConfig: {get_param: ExtraConfig}
694 FencingConfig: {get_param: FencingConfig}
695 Flavor: {get_param: OvercloudControlFlavor}
696 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
697 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
698 HorizonSecret: {get_resource: HorizonSecret}
699 Image: {get_param: controllerImage}
700 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
701 InstanceNameTemplate: {get_param: InstanceNameTemplate}
702 KeyName: {get_param: KeyName}
703 MemcachedIPv6: {get_param: MemcachedIPv6}
704 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
705 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
706 MysqlMaxConnections: {get_param: MysqlMaxConnections}
707 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
708 NeutronPublicInterface: {get_param: NeutronPublicInterface}
709 NeutronPassword: {get_param: NeutronPassword}
710 NovaIPv6: {get_param: NovaIPv6}
711 NovaPassword: {get_param: NovaPassword}
712 PcsdPassword: {get_resource: PcsdPassword}
713 PublicVirtualInterface: {get_param: PublicVirtualInterface}
714 RabbitPassword: {get_param: RabbitPassword}
715 RabbitUserName: {get_param: RabbitUserName}
716 RabbitCookie: {get_attr: [RabbitCookie, value]}
717 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
718 RabbitClientPort: {get_param: RabbitClientPort}
719 RedisPassword: {get_param: RedisPassword}
720 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
721 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
722 SwiftHashSuffix: {get_param: SwiftHashSuffix}
723 SwiftMinPartHours: {get_param: SwiftMinPartHours}
724 SwiftPartPower: {get_param: SwiftPartPower}
725 SwiftReplicas: { get_param: SwiftReplicas}
726 ServiceNetMap: {get_param: ServiceNetMap}
727 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
728 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
729 UpdateIdentifier: {get_param: UpdateIdentifier}
732 template: {get_param: ControllerHostnameFormat}
734 '%stackname%': {get_param: 'OS::stack_name'}
736 ServerMetadata: {get_param: ServerMetadata}
737 SchedulerHints: {get_param: ControllerSchedulerHints}
738 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
742 type: OS::TripleO::Services
744 Services: {get_param: ComputeServices}
745 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
748 type: OS::Heat::ResourceGroup
751 count: {get_param: ComputeCount}
752 removal_policies: {get_param: ComputeRemovalPolicies}
754 type: OS::TripleO::Compute
756 AdminPassword: {get_param: AdminPassword}
757 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
758 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
759 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
760 Debug: {get_param: Debug}
761 ExtraConfig: {get_param: ExtraConfig}
762 Flavor: {get_param: OvercloudComputeFlavor}
763 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
764 Image: {get_param: NovaImage}
765 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
766 KeyName: {get_param: KeyName}
767 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
768 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
769 NeutronPassword: {get_param: NeutronPassword}
770 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
771 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
772 # L3 HA and Failover is not relevant for Computes, should be removed
773 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
774 NovaComputeDriver: {get_param: NovaComputeDriver}
775 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
776 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
777 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
778 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
779 NovaIPv6: {get_param: NovaIPv6}
780 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
781 NovaPassword: {get_param: NovaPassword}
782 NovaOVSBridge: {get_param: NovaOVSBridge}
783 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
784 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
785 RabbitPassword: {get_param: RabbitPassword}
786 RabbitUserName: {get_param: RabbitUserName}
787 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
788 RabbitClientPort: {get_param: RabbitClientPort}
789 ServiceNetMap: {get_param: ServiceNetMap}
790 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
791 UpdateIdentifier: {get_param: UpdateIdentifier}
794 template: {get_param: ComputeHostnameFormat}
796 '%stackname%': {get_param: 'OS::stack_name'}
797 CloudDomain: {get_param: CloudDomain}
798 ServerMetadata: {get_param: ServerMetadata}
799 SchedulerHints: {get_param: NovaComputeSchedulerHints}
801 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
803 BlockStorageServiceChain:
804 type: OS::TripleO::Services
806 Services: {get_param: BlockStorageServices}
807 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
810 type: OS::Heat::ResourceGroup
813 count: {get_param: BlockStorageCount}
814 removal_policies: {get_param: BlockStorageRemovalPolicies}
816 type: OS::TripleO::BlockStorage
818 Image: {get_param: BlockStorageImage}
819 KeyName: {get_param: KeyName}
820 Flavor: {get_param: OvercloudBlockStorageFlavor}
821 UpdateIdentifier: {get_param: UpdateIdentifier}
824 template: {get_param: BlockStorageHostnameFormat}
826 '%stackname%': {get_param: 'OS::stack_name'}
827 ServiceNetMap: {get_param: ServiceNetMap}
828 ExtraConfig: {get_param: ExtraConfig}
829 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
830 CloudDomain: {get_param: CloudDomain}
831 ServerMetadata: {get_param: ServerMetadata}
832 SchedulerHints: {get_param: BlockStorageSchedulerHints}
834 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
836 ObjectStorageServiceChain:
837 type: OS::TripleO::Services
839 Services: {get_param: ObjectStorageServices}
840 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
843 type: OS::Heat::ResourceGroup
846 count: {get_param: ObjectStorageCount}
847 removal_policies: {get_param: ObjectStorageRemovalPolicies}
849 type: OS::TripleO::ObjectStorage
851 KeyName: {get_param: KeyName}
852 Flavor: {get_param: OvercloudSwiftStorageFlavor}
853 HashSuffix: {get_param: SwiftHashSuffix}
854 MinPartHours: {get_param: SwiftMinPartHours}
855 PartPower: {get_param: SwiftPartPower}
856 Image: {get_param: SwiftStorageImage}
857 Replicas: { get_param: SwiftReplicas}
858 UpdateIdentifier: {get_param: UpdateIdentifier}
859 ServiceNetMap: {get_param: ServiceNetMap}
862 template: {get_param: ObjectStorageHostnameFormat}
864 '%stackname%': {get_param: 'OS::stack_name'}
865 ExtraConfig: {get_param: ExtraConfig}
866 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
867 CloudDomain: {get_param: CloudDomain}
868 ServerMetadata: {get_param: ServerMetadata}
869 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
871 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
873 CephStorageServiceChain:
874 type: OS::TripleO::Services
876 Services: {get_param: CephStorageServices}
877 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
880 type: OS::Heat::ResourceGroup
883 count: {get_param: CephStorageCount}
884 removal_policies: {get_param: CephStorageRemovalPolicies}
886 type: OS::TripleO::CephStorage
888 Image: {get_param: CephStorageImage}
889 KeyName: {get_param: KeyName}
890 Flavor: {get_param: OvercloudCephStorageFlavor}
891 ServiceNetMap: {get_param: ServiceNetMap}
892 UpdateIdentifier: {get_param: UpdateIdentifier}
895 template: {get_param: CephStorageHostnameFormat}
897 '%stackname%': {get_param: 'OS::stack_name'}
898 ExtraConfig: {get_param: ExtraConfig}
899 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
900 CloudDomain: {get_param: CloudDomain}
901 ServerMetadata: {get_param: ServerMetadata}
902 SchedulerHints: {get_param: CephStorageSchedulerHints}
904 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
907 type: OS::TripleO::Network::Ports::NetIpListMap
909 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
910 ExternalIpList: {get_attr: [Controller, external_ip_address]}
911 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
912 StorageIpList: {get_attr: [Controller, storage_ip_address]}
913 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
914 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
915 ManagementIpList: {get_attr: [Controller, management_ip_address]}
918 type: OS::TripleO::AllNodes::SoftwareConfig
920 compute_hosts: {get_attr: [Compute, hosts_entry]}
921 controller_hosts: {get_attr: [Controller, hosts_entry]}
922 controller_ips: {get_attr: [Controller, ip_address]}
923 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
924 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
925 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
926 controller_names: {get_attr: [Controller, hostname]}
927 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
928 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
929 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
930 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
931 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
932 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
933 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
934 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
935 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
936 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
937 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
938 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
939 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
940 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
941 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
942 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
943 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
944 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
945 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
946 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
947 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
948 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
949 ceph_mon_node_names: {get_attr: [Controller, hostname]}
950 DeployIdentifier: {get_param: DeployIdentifier}
951 UpdateIdentifier: {get_param: UpdateIdentifier}
954 type: OS::Heat::RandomString
958 MysqlClusterUniquePart:
959 type: OS::Heat::RandomString
964 type: OS::Heat::RandomString
967 salt: {get_param: RabbitCookieSalt}
969 # creates the network architecture
971 type: OS::TripleO::Network
974 type: OS::Neutron::Port
977 name: control_virtual_ip
978 network: {get_param: NeutronControlPlaneID}
979 fixed_ips: {get_param: ControlFixedIPs}
980 replacement_policy: AUTO
984 type: OS::TripleO::Network::Ports::RedisVipPort
986 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
987 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
988 PortName: redis_virtual_ip
989 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
992 # The public VIP is on the External net, falls back to ctlplane
995 type: OS::TripleO::Network::Ports::ExternalVipPort
997 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
998 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
999 PortName: public_virtual_ip
1000 FixedIPs: {get_param: PublicVirtualFixedIPs}
1002 InternalApiVirtualIP:
1003 depends_on: Networks
1004 type: OS::TripleO::Network::Ports::InternalApiVipPort
1006 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1007 PortName: internal_api_virtual_ip
1008 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1011 depends_on: Networks
1012 type: OS::TripleO::Network::Ports::StorageVipPort
1014 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1015 PortName: storage_virtual_ip
1016 FixedIPs: {get_param: StorageVirtualFixedIPs}
1018 StorageMgmtVirtualIP:
1019 depends_on: Networks
1020 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1022 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1023 PortName: storage_management_virtual_ip
1024 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1027 type: OS::TripleO::Network::Ports::NetVipMap
1029 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1030 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1031 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1032 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1033 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1034 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1035 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1036 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1037 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1038 # No tenant or management VIP required
1041 type: OS::TripleO::VipConfig
1044 type: OS::Heat::StructuredDeployments
1047 config: {get_resource: VipConfig}
1048 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1050 # service VIP mappings
1051 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1052 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1053 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1054 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1055 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1056 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1057 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1058 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1059 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1060 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1061 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1062 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1063 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1064 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1065 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1066 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1067 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1068 # direct configuration of Virtual IPs for each network
1069 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1070 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1071 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1072 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1073 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1074 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1075 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1077 ControllerSwiftDeployment:
1078 type: OS::Heat::StructuredDeployments
1080 name: ControllerSwiftDeployment
1081 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1082 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1084 ObjectStorageSwiftDeployment:
1085 type: OS::Heat::StructuredDeployments
1087 name: ObjectStorageSwiftDeployment
1088 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1089 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1091 SwiftDevicesAndProxyConfig:
1092 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1094 controller_swift_devices: {get_attr: [Controller, swift_device]}
1095 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1096 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1098 ComputeCephDeployment:
1099 type: OS::Heat::StructuredDeployments
1101 name: ComputeCephDeployment
1102 config: {get_attr: [CephClusterConfig, config_id]}
1103 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1105 ControllerCephDeployment:
1106 type: OS::Heat::StructuredDeployments
1108 name: ControllerCephDeployment
1109 config: {get_attr: [CephClusterConfig, config_id]}
1110 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1112 CephStorageCephDeployment:
1113 type: OS::Heat::StructuredDeployments
1115 name: CephStorageCephDeployment
1116 config: {get_attr: [CephClusterConfig, config_id]}
1117 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1120 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1122 ControllerAllNodesDeployment:
1123 type: OS::Heat::StructuredDeployments
1125 name: ControllerAllNodesDeployment
1126 config: {get_attr: [allNodesConfig, config_id]}
1127 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1129 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1130 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1132 ComputeAllNodesDeployment:
1133 type: OS::Heat::StructuredDeployments
1135 name: ComputeAllNodesDeployment
1136 config: {get_attr: [allNodesConfig, config_id]}
1137 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1139 bootstrap_nodeid: {get_attr: [Compute, resource.0.hostname]}
1140 bootstrap_nodeid_ip: {get_attr: [Compute, resource.0.ip_address]}
1142 BlockStorageAllNodesDeployment:
1143 type: OS::Heat::StructuredDeployments
1145 name: BlockStorageAllNodesDeployment
1146 config: {get_attr: [allNodesConfig, config_id]}
1147 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1149 bootstrap_nodeid: {get_attr: [BlockStorage, resource.0.hostname]}
1150 bootstrap_nodeid_ip: {get_attr: [BlockStorage, resource.0.ip_address]}
1152 ObjectStorageAllNodesDeployment:
1153 type: OS::Heat::StructuredDeployments
1155 name: ObjectStorageAllNodesDeployment
1156 config: {get_attr: [allNodesConfig, config_id]}
1157 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1159 bootstrap_nodeid: {get_attr: [ObjectStorage, resource.0.hostname]}
1160 bootstrap_nodeid_ip: {get_attr: [ObjectStorage, resource.0.ip_address]}
1162 CephStorageAllNodesDeployment:
1163 type: OS::Heat::StructuredDeployments
1165 name: CephStorageAllNodesDeployment
1166 config: {get_attr: [allNodesConfig, config_id]}
1167 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1169 bootstrap_nodeid: {get_attr: [CephStorage, resource.0.hostname]}
1170 bootstrap_nodeid_ip: {get_attr: [CephStorage, resource.0.ip_address]}
1172 # All Nodes Validations
1173 AllNodesValidationConfig:
1174 type: OS::TripleO::AllNodes::Validation
1179 - - {get_attr: [Controller, resource.0.external_ip_address]}
1180 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1181 - {get_attr: [Controller, resource.0.storage_ip_address]}
1182 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1183 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1185 ControllerAllNodesValidationDeployment:
1186 type: OS::Heat::StructuredDeployments
1187 depends_on: ControllerAllNodesDeployment
1189 name: ControllerAllNodesValidationDeployment
1190 config: {get_resource: AllNodesValidationConfig}
1191 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1193 ComputeAllNodesValidationDeployment:
1194 type: OS::Heat::StructuredDeployments
1195 depends_on: ComputeAllNodesDeployment
1197 name: ComputeAllNodesValidationDeployment
1198 config: {get_resource: AllNodesValidationConfig}
1199 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1201 BlockStorageAllNodesValidationDeployment:
1202 type: OS::Heat::StructuredDeployments
1203 depends_on: BlockStorageAllNodesDeployment
1205 name: BlockStorageAllNodesValidationDeployment
1206 config: {get_resource: AllNodesValidationConfig}
1207 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1209 ObjectStorageAllNodesValidationDeployment:
1210 type: OS::Heat::StructuredDeployments
1211 depends_on: ObjectStorageAllNodesDeployment
1213 name: ObjectStorageAllNodesValidationDeployment
1214 config: {get_resource: AllNodesValidationConfig}
1215 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1217 CephStorageAllNodesValidationDeployment:
1218 type: OS::Heat::StructuredDeployments
1219 depends_on: CephStorageAllNodesDeployment
1221 name: CephStorageAllNodesValidationDeployment
1222 config: {get_resource: AllNodesValidationConfig}
1223 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1226 type: OS::TripleO::Tasks::UpdateWorkflow
1228 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1229 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1230 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1231 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1232 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1234 deploy_identifier: {get_param: DeployIdentifier}
1235 update_identifier: {get_param: UpdateIdentifier}
1237 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1238 # the nested template may configure each role differently (or not at all)
1239 AllNodesExtraConfig:
1240 type: OS::TripleO::AllNodesExtraConfig
1243 - ComputeAllNodesValidationDeployment
1244 - BlockStorageAllNodesValidationDeployment
1245 - ObjectStorageAllNodesValidationDeployment
1246 - CephStorageAllNodesValidationDeployment
1247 - ControllerAllNodesValidationDeployment
1249 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1250 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1251 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1252 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1253 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1255 # Nested stack deployment runs after all other controller deployments
1256 ControllerNodesPostDeployment:
1257 type: OS::TripleO::ControllerPostDeployment
1258 depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1260 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1261 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1263 ComputeNodesPostDeployment:
1264 type: OS::TripleO::ComputePostDeployment
1265 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1267 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1268 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1270 ObjectStorageNodesPostDeployment:
1271 type: OS::TripleO::ObjectStoragePostDeployment
1272 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1274 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1275 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1277 BlockStorageNodesPostDeployment:
1278 type: OS::TripleO::BlockStoragePostDeployment
1279 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1281 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1282 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1284 CephStorageNodesPostDeployment:
1285 type: OS::TripleO::CephStoragePostDeployment
1286 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1288 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1289 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1293 description: URL for the Overcloud Keystone service
1294 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1296 description: Keystone Admin VIP endpoint
1297 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1299 description: Controller VIP for public API endpoints
1300 value: {get_attr: [VipMap, net_ip_map, external]}
1302 description: VIP for Aodh API internal endpoint
1303 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1304 CeilometerInternalVip:
1305 description: VIP for Ceilometer API internal endpoint
1306 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1308 description: VIP for Cinder API internal endpoint
1309 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1311 description: VIP for Glance API internal endpoint
1312 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1314 description: VIP for Gnocchi API internal endpoint
1315 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1317 description: VIP for Heat API internal endpoint
1318 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1320 description: VIP for Ironic API internal endpoint
1321 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1322 KeystoneInternalVip:
1323 description: VIP for Keystone API internal endpoint
1324 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1326 description: VIP for Neutron API internal endpoint
1327 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1329 description: VIP for Nova API internal endpoint
1330 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1332 description: VIP for Sahara API internal endpoint
1333 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1335 description: VIP for Swift Proxy internal endpoint
1336 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1339 Mapping of the resources with the needed info for their endpoints.
1340 This includes the protocol used, the IP, port and also a full
1341 representation of the URI.
1342 value: {get_attr: [EndpointMap, endpoint_map]}
1345 The content that should be appended to your /etc/hosts if you want to get
1346 hostname-based access to the deployed nodes (useful for testing without
1348 value: {get_attr: [allNodesConfig, hosts_entries]}