1 heat_template_version: 2014-10-16
4 Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
5 server,Dedicated RabbitMQ Server,Group of Nova Computes
8 # TODO(shadower): we should probably use the parameter groups to put
12 # Common parameters (not specific to a role)
15 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
18 CeilometerMeteringSecret:
20 description: Secret shared by the ceilometer services.
25 description: The password for the ceilometer service account.
28 # This has to be an UUID so for now we generate it outside the template
32 description: The Ceph cluster FSID.
35 description: The Ceph monitors key.
39 description: The Ceph admin client key.
43 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
47 description: Should be used for arbitrary ips.
51 description: Set to True to enable debugging on all services.
53 DefaultSignalTransport:
55 description: Transport to use for software-config signals.
58 - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
61 description: Glance port.
65 description: Protocol to use when connecting to glance, set to https for SSL.
68 default: 'REBUILD_PRESERVE_EPHEMERAL'
69 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
73 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
76 - custom_constraint: nova.keypair
77 NeutronBridgeMappings:
79 The OVS logical->physical bridge mappings to use. See the Neutron
80 documentation for details. Defaults to mapping br-ex - the external
81 bridge on hosts - to a physical name 'datacentre' which can be used
82 to create provider networks (and we use this for the default floating
83 network) - if changing this either use different post-install network
84 scripts or be sure to keep 'datacentre' as a mapping network name.
86 default: "datacentre:br-ex"
87 NeutronControlPlaneID:
90 description: Neutron ID for ctlplane network.
91 NeutronEnableTunnelling:
98 If set, flat networks to configure in neutron plugins. Defaults to
99 'datacentre' to permit external network creation.
102 description: The tenant network type for Neutron, either gre or vxlan.
106 description: The password for the neutron service account, used by neutron agents.
109 NeutronPublicInterface:
111 description: What interface to bridge onto br-ex for network nodes.
113 NeutronPublicInterfaceTag:
116 VLAN tag for creating a public VLAN. The tag will be used to
117 create an access port on the exterior bridge for each control plane node,
118 and that port will be given the IP address returned by neutron from the
119 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
120 overcloud.yaml to include the deployment of VLAN ports to the control
123 NeutronComputeAgentMode:
125 description: Agent mode for the neutron-l3-agent on the compute hosts
129 description: Agent mode for the neutron-l3-agent on the controller hosts
133 description: Whether to configure Neutron Distributed Virtual Routers
135 NeutronMetadataProxySharedSecret:
137 description: Shared secret to prevent spoofing
142 The tunnel types for the Neutron tenant network. To specify multiple
143 values, use a comma separated string, like so: 'gre,vxlan'
145 NeutronMechanismDrivers:
146 default: 'openvswitch'
148 The mechanism drivers for the Neutron tenant network. To specify multiple
149 values, use a comma separated string, like so: 'openvswitch,l2_population'
151 NeutronAllowL3AgentFailover:
153 description: Allow automatic l3-agent failover
157 description: Whether to enable l3-agent HA
161 description: The password for the nova service account, used by nova-api.
167 PublicVirtualFixedIPs:
170 Control the IP allocation for the PublicVirtualInterface port. E.g.
171 [{'ip_address':'1.2.3.4'}]
173 PublicVirtualNetwork:
177 Neutron network to allocate public virtual IP port on.
181 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
184 description: The username for RabbitMQ
188 description: The password for RabbitMQ
194 Rabbit client subscriber parameter to specify
195 an SSL connection to the RabbitMQ host.
199 description: Set rabbit subscriber port, change this if using SSL
201 SnmpdReadonlyUserName:
202 default: ro_snmp_user
203 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
205 SnmpdReadonlyUserPassword:
207 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
211 # Controller-specific params
214 description: The keystone auth secret.
217 CinderLVMLoopDeviceSize:
219 description: The size of the loopback file used by the cinder LVM driver.
223 description: The password for the cinder service account, used by cinder-api.
228 description: The iSCSI helper to use with cinder.
233 controllerExtraConfig:
236 Controller specific configuration to inject into the cluster. Same
237 structure as ExtraConfig.
241 default: overcloud-control
243 - custom_constraint: glance.image
244 OvercloudControlFlavor:
245 description: Flavor for control nodes to request when deploying.
248 - custom_constraint: nova.flavor
249 ControlVirtualInterface:
251 description: Interface where virtual ip will be assigned.
256 Additional configuration to inject into the cluster. The JSON should have
257 the following structure:
260 [{"section": "SECTIONNAME",
262 [{"option": "OPTIONNAME",
273 [{"section": "default",
275 [{"option": "force_config_drive",
282 [{"option": "driver",
283 "value": "nova.cells.rpc_driver.CellsRPCDriver"
292 description: The filepath of the file to use for logging messages from Glance.
295 GlanceNotifierStrategy:
296 description: Strategy to use for Glance notification queue
301 description: The password for the glance service account, used by the glance services.
306 description: The password for the Heat service account, used by the Heat services.
309 HeatStackDomainAdminPassword:
310 description: Password for heat_domain_admin user.
314 KeystoneCACertificate:
316 description: Keystone self-signed certificate authority certificate.
318 KeystoneSigningCertificate:
320 description: Keystone certificate for verifying token validity.
324 description: Keystone key for signing tokens.
327 KeystoneSSLCertificate:
329 description: Keystone certificate for verifying token validity.
331 KeystoneSSLCertificateKey:
333 description: Keystone key for signing tokens.
336 MysqlInnodbBufferPoolSize:
338 Specifies the size of the buffer pool in megabytes. Setting to
339 zero should be interpreted as "no value" and will defer to the
343 NeutronDnsmasqOptions:
344 default: 'dhcp-option-force=26,1400'
345 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
347 NeutronPublicInterfaceDefaultRoute:
349 description: A custom default route for the NeutronPublicInterface.
351 NeutronPublicInterfaceIP:
353 description: A custom IP address to put onto the NeutronPublicInterface.
355 NeutronPublicInterfaceRawDevice:
357 description: If set, the public interface is a vlan with this device as the raw device.
359 PublicVirtualInterface:
362 Specifies the interface where the public-facing virtual ip will be assigned.
363 This should be int_public when a VLAN is being used.
367 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
372 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
377 description: If set, the contents of an SSL certificate authority file.
381 description: A random string to be used as a salt when hashing to determine mappings in the ring.
386 description: The password for the swift service account, used by the swift proxy services.
391 description: Value of mount_check in Swift account/container/object -server.conf
396 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
399 description: Partition Power to use when building Swift rings
404 description: How many replicas to use in the swift rings.
406 # Compute-specific params
407 CeilometerComputeAgent:
408 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
412 - allowed_values: ['', Present]
416 HypervisorNeutronPhysicalBridge:
419 An OVS bridge to create on each hypervisor. This defaults to br-ex the
420 same as the control plane nodes, as we have a uniform configuration of
421 the openvswitch agent. Typically should not need to be changed.
423 HypervisorNeutronPublicInterface:
425 description: What interface to add to the HypervisorNeutronPhysicalBridge.
427 NeutronNetworkVLANRanges:
428 default: 'datacentre'
430 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
431 Neutron documentation for permitted values. Defaults to permitting any
432 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
436 default: libvirt.LibvirtDriver
437 NovaComputeExtraConfig:
440 NovaCompute specific configuration to inject into the cluster. Same
441 structure as ExtraConfig.
443 NovaComputeLibvirtType:
448 default: overcloud-compute
450 - custom_constraint: glance.image
451 OvercloudComputeFlavor:
452 description: Use this flavor
455 - custom_constraint: nova.flavor
457 # Block storage specific parameters
462 default: overcloud-cinder-volume
464 OvercloudBlockStorageFlavor:
465 description: Flavor for block storage nodes to request when deploying.
468 - custom_constraint: nova.flavor
470 # Object storage specific parameters
474 OvercloudSwiftStorageFlavor:
475 description: Flavor for Swift storage nodes to request when deploying.
478 - custom_constraint: nova.flavor
480 default: overcloud-swift-storage
483 # Ceph storage specific parameters
488 default: overcloud-ceph-storage
490 OvercloudCephStorageFlavor:
492 description: Flavor for Ceph storage nodes to request when deploying.
495 - custom_constraint: nova.flavor
499 HeatAuthEncryptionKey:
500 type: OS::Heat::RandomString
503 type: OS::Heat::ResourceGroup
505 count: {get_param: ControllerCount}
507 type: OS::TripleO::Controller
509 AdminPassword: {get_param: AdminPassword}
510 AdminToken: {get_param: AdminToken}
511 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
512 CeilometerPassword: {get_param: CeilometerPassword}
513 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
514 CinderPassword: {get_param: CinderPassword}
515 CinderISCSIHelper: {get_param: CinderISCSIHelper}
516 CloudName: {get_param: CloudName}
517 ControlVirtualInterface: {get_param: ControlVirtualInterface}
518 ControllerExtraConfig: {get_param: controllerExtraConfig}
519 ExtraConfig: {get_param: ExtraConfig}
520 Flavor: {get_param: OvercloudControlFlavor}
521 GlancePort: {get_param: GlancePort}
522 GlanceProtocol: {get_param: GlanceProtocol}
523 GlancePassword: {get_param: GlancePassword}
524 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
525 GlanceLogFile: {get_param: GlanceLogFile}
526 HeatPassword: {get_param: HeatPassword}
527 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
528 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
529 Image: {get_param: controllerImage}
530 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
531 KeyName: {get_param: KeyName}
532 KeystoneCACertificate: {get_param: KeystoneCACertificate}
533 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
534 KeystoneSigningKey: {get_param: KeystoneSigningKey}
535 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
536 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
537 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
538 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
539 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
540 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
541 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
542 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
543 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
544 NeutronPublicInterface: {get_param: NeutronPublicInterface}
545 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
546 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
547 NeutronPassword: {get_param: NeutronPassword}
548 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
549 NeutronDVR: {get_param: NeutronDVR}
550 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
551 NeutronAgentMode: {get_param: NeutronAgentMode}
552 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
553 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
554 NeutronL3HA: {get_param: NeutronL3HA}
555 NeutronNetworkType: {get_param: NeutronNetworkType}
556 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
557 NovaPassword: {get_param: NovaPassword}
558 NtpServer: {get_param: NtpServer}
559 PublicVirtualInterface: {get_param: PublicVirtualInterface}
560 RabbitUserName: {get_param: RabbitUserName}
561 RabbitPassword: {get_param: RabbitPassword}
562 RabbitCookie: {get_attr: [RabbitCookie, value]}
563 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
564 RabbitClientPort: {get_param: RabbitClientPort}
565 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
566 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
567 SSLCertificate: {get_param: SSLCertificate}
568 SSLKey: {get_param: SSLKey}
569 SSLCACertificate: {get_param: SSLCACertificate}
570 SwiftHashSuffix: {get_param: SwiftHashSuffix}
571 SwiftMountCheck: {get_param: SwiftMountCheck}
572 SwiftMinPartHours: {get_param: SwiftMinPartHours}
573 SwiftPartPower: {get_param: SwiftPartPower}
574 SwiftPassword: {get_param: SwiftPassword}
575 SwiftReplicas: { get_param: SwiftReplicas}
576 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
577 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
580 type: OS::Heat::ResourceGroup
582 count: {get_param: ComputeCount}
584 type: OS::TripleO::Compute
586 AdminPassword: {get_param: AdminPassword}
587 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
588 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
589 CeilometerPassword: {get_param: CeilometerPassword}
590 ExtraConfig: {get_param: ExtraConfig}
591 Flavor: {get_param: OvercloudComputeFlavor}
592 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
593 GlancePort: {get_param: GlancePort}
594 GlanceProtocol: {get_param: GlanceProtocol}
595 Image: {get_param: NovaImage}
596 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
597 KeyName: {get_param: KeyName}
598 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
599 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
600 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
601 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
602 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
603 NeutronNetworkType: {get_param: NeutronNetworkType}
604 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
605 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
606 NeutronPassword: {get_param: NeutronPassword}
607 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
608 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
609 NeutronDVR: {get_param: NeutronDVR}
610 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
611 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
612 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
613 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
614 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
615 NeutronL3HA: {get_param: NeutronL3HA}
616 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
617 NovaComputeDriver: {get_param: NovaComputeDriver}
618 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
619 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
620 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
621 NovaPassword: {get_param: NovaPassword}
622 NtpServer: {get_param: NtpServer}
623 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
624 RabbitPassword: {get_param: RabbitPassword}
625 RabbitUserName: {get_param: RabbitUserName}
626 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
627 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
630 type: OS::Heat::ResourceGroup
632 count: {get_param: BlockStorageCount}
634 type: OS::TripleO::BlockStorage
636 Image: {get_param: BlockStorageImage}
637 CinderISCSIHelper: {get_param: CinderISCSIHelper}
638 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
639 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
640 KeyName: {get_param: KeyName}
641 Flavor: {get_param: OvercloudBlockStorageFlavor}
642 RabbitPassword: {get_param: RabbitPassword}
643 RabbitUserName: {get_param: RabbitUserName}
644 NtpServer: {get_param: NtpServer}
647 type: OS::Heat::ResourceGroup
649 count: {get_param: ObjectStorageCount}
651 type: OS::TripleO::ObjectStorage
653 KeyName: {get_param: KeyName}
654 Flavor: {get_param: OvercloudSwiftStorageFlavor}
655 HashSuffix: {get_param: SwiftHashSuffix}
656 MountCheck: {get_param: SwiftMountCheck}
657 MinPartHours: {get_param: SwiftMinPartHours}
658 PartPower: {get_param: SwiftPartPower}
659 Image: {get_param: SwiftStorageImage}
660 Replicas: { get_param: SwiftReplicas}
661 NtpServer: {get_param: NtpServer}
664 type: OS::Heat::ResourceGroup
666 count: {get_param: CephStorageCount}
668 type: OS::TripleO::CephStorage
670 Image: {get_param: CephStorageImage}
671 KeyName: {get_param: KeyName}
672 Flavor: {get_param: OvercloudCephStorageFlavor}
673 NtpServer: {get_param: NtpServer}
676 type: OS::TripleO::AllNodes::SoftwareConfig
678 compute_hosts: {get_attr: [Compute, hosts_entry]}
679 controller_hosts: {get_attr: [Controller, hosts_entry]}
680 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
681 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
682 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
683 controller_names: {get_attr: [Controller, hostname]}
686 type: OS::Heat::RandomString
690 MysqlClusterUniquePart:
691 type: OS::Heat::RandomString
696 type: OS::Heat::RandomString
699 salt: {get_param: RabbitCookieSalt}
702 type: OS::Neutron::Port
704 name: control_virtual_ip
705 network_id: {get_param: NeutronControlPlaneID}
706 fixed_ips: {get_param: ControlFixedIPs}
707 replacement_policy: AUTO
710 type: OS::Neutron::Port
712 name: public_virtual_ip
713 network: {get_param: PublicVirtualNetwork}
714 fixed_ips: {get_param: PublicVirtualFixedIPs}
715 replacement_policy: AUTO
717 ControllerBootstrapNodeConfig:
718 type: OS::TripleO::BootstrapNode::SoftwareConfig
720 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
722 ControllerBootstrapNodeDeployment:
723 type: OS::Heat::StructuredDeployments
725 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
726 servers: {get_attr: [Controller, attributes, nova_server_resource]}
727 signal_transport: NO_SIGNAL
729 ControllerSwiftDeployment:
730 type: OS::Heat::StructuredDeployments
732 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
733 servers: {get_attr: [Controller, attributes, nova_server_resource]}
734 signal_transport: NO_SIGNAL
736 ObjectStorageSwiftDeployment:
737 type: OS::Heat::StructuredDeployments
739 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
740 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
741 signal_transport: NO_SIGNAL
743 SwiftDevicesAndProxyConfig:
744 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
746 controller_swift_devices: {get_attr: [Controller, swift_device]}
747 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
748 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
750 ControllerCephDeployment:
751 type: OS::Heat::StructuredDeployments
753 config: {get_attr: [CephClusterConfig, config_id]}
754 servers: {get_attr: [Controller, attributes, nova_server_resource]}
756 CephStorageCephDeployment:
757 type: OS::Heat::StructuredDeployments
759 config: {get_attr: [CephClusterConfig, config_id]}
760 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
763 type: OS::TripleO::CephClusterConfig::SoftwareConfig
765 ceph_fsid: {get_param: CephClusterFSID}
766 ceph_mon_key: {get_param: CephMonKey}
767 ceph_admin_key: {get_param: CephAdminKey}
768 ceph_mon_names: {get_attr: [Controller, hostname]}
769 ceph_mon_ips: {get_attr: [Controller, ip_address]}
771 ControllerClusterConfig:
772 type: OS::Heat::StructuredConfig
776 nodes: {get_attr: [Controller, corosync_node]}
780 nodes: {get_attr: [Controller, hostname]}
782 nodes: {get_attr: [Controller, corosync_node]}
784 nodes: {get_attr: [Controller, corosync_node]}
786 ControllerClusterDeployment:
787 type: OS::Heat::StructuredDeployments
789 config: {get_resource: ControllerClusterConfig}
790 servers: {get_attr: [Controller, attributes, nova_server_resource]}
791 signal_transport: NO_SIGNAL
793 ControllerAllNodesDeployment:
794 type: OS::Heat::StructuredDeployments
796 config: {get_attr: [allNodesConfig, config_id]}
797 servers: {get_attr: [Controller, attributes, nova_server_resource]}
799 ComputeAllNodesDeployment:
800 type: OS::Heat::StructuredDeployments
802 config: {get_attr: [allNodesConfig, config_id]}
803 servers: {get_attr: [Compute, attributes, nova_server_resource]}
805 BlockStorageAllNodesDeployment:
806 type: OS::Heat::StructuredDeployments
808 config: {get_attr: [allNodesConfig, config_id]}
809 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
811 ObjectStorageAllNodesDeployment:
812 type: OS::Heat::StructuredDeployments
814 config: {get_attr: [allNodesConfig, config_id]}
815 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
817 CephStorageAllNodesDeployment:
818 type: OS::Heat::StructuredDeployments
820 config: {get_attr: [allNodesConfig, config_id]}
821 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
823 # Nested stack deployment runs after all other controller deployments
824 ControllerNodesPostDeployment:
825 type: OS::TripleO::ControllerPostDeployment
826 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
828 servers: {get_attr: [Controller, attributes, nova_server_resource]}
830 ComputeNodesPostDeployment:
831 type: OS::TripleO::ComputePostDeployment
832 depends_on: ComputeAllNodesDeployment
834 servers: {get_attr: [Compute, attributes, nova_server_resource]}
836 ObjectStorageNodesPostDeployment:
837 type: OS::TripleO::ObjectStoragePostDeployment
838 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
840 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
842 BlockStorageNodesPostDeployment:
843 type: OS::TripleO::BlockStoragePostDeployment
844 depends_on: BlockStorageAllNodesDeployment
846 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
848 CephStorageNodesPostDeployment:
849 type: OS::TripleO::CephStoragePostDeployment
850 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
852 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
856 description: URL for the Overcloud Keystone service
861 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}