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.
41 CinderEnableIscsiBackend:
43 description: Whether to enable or not the Iscsi backend for Cinder
47 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
51 description: Should be used for arbitrary ips.
55 description: Set to True to enable debugging on all services.
57 DefaultSignalTransport:
59 description: Transport to use for software-config signals.
62 - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
65 description: Glance port.
69 description: Protocol to use when connecting to glance, set to https for SSL.
72 default: 'REBUILD_PRESERVE_EPHEMERAL'
73 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
77 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
80 - custom_constraint: nova.keypair
81 NeutronBridgeMappings:
83 The OVS logical->physical bridge mappings to use. See the Neutron
84 documentation for details. Defaults to mapping br-ex - the external
85 bridge on hosts - to a physical name 'datacentre' which can be used
86 to create provider networks (and we use this for the default floating
87 network) - if changing this either use different post-install network
88 scripts or be sure to keep 'datacentre' as a mapping network name.
90 default: "datacentre:br-ex"
91 NeutronControlPlaneID:
94 description: Neutron ID for ctlplane network.
95 NeutronEnableTunnelling:
100 default: 'datacentre'
102 If set, flat networks to configure in neutron plugins. Defaults to
103 'datacentre' to permit external network creation.
106 description: The tenant network type for Neutron, either gre or vxlan.
110 description: The password for the neutron service account, used by neutron agents.
113 NeutronPublicInterface:
115 description: What interface to bridge onto br-ex for network nodes.
117 NeutronPublicInterfaceTag:
120 VLAN tag for creating a public VLAN. The tag will be used to
121 create an access port on the exterior bridge for each control plane node,
122 and that port will be given the IP address returned by neutron from the
123 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
124 overcloud.yaml to include the deployment of VLAN ports to the control
127 NeutronComputeAgentMode:
129 description: Agent mode for the neutron-l3-agent on the compute hosts
133 description: Agent mode for the neutron-l3-agent on the controller hosts
137 description: Whether to configure Neutron Distributed Virtual Routers
139 NeutronMetadataProxySharedSecret:
141 description: Shared secret to prevent spoofing
146 The tunnel types for the Neutron tenant network. To specify multiple
147 values, use a comma separated string, like so: 'gre,vxlan'
149 NeutronMechanismDrivers:
150 default: 'openvswitch'
152 The mechanism drivers for the Neutron tenant network. To specify multiple
153 values, use a comma separated string, like so: 'openvswitch,l2_population'
155 NeutronAllowL3AgentFailover:
157 description: Allow automatic l3-agent failover
161 description: Whether to enable l3-agent HA
165 description: The password for the nova service account, used by nova-api.
171 PublicVirtualFixedIPs:
174 Control the IP allocation for the PublicVirtualInterface port. E.g.
175 [{'ip_address':'1.2.3.4'}]
177 PublicVirtualNetwork:
181 Neutron network to allocate public virtual IP port on.
185 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
188 description: The username for RabbitMQ
192 description: The password for RabbitMQ
198 Rabbit client subscriber parameter to specify
199 an SSL connection to the RabbitMQ host.
203 description: Set rabbit subscriber port, change this if using SSL
205 SnmpdReadonlyUserName:
206 default: ro_snmp_user
207 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
209 SnmpdReadonlyUserPassword:
211 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
215 # Controller-specific params
218 description: The keystone auth secret.
221 CinderLVMLoopDeviceSize:
223 description: The size of the loopback file used by the cinder LVM driver.
227 description: The password for the cinder service account, used by cinder-api.
232 description: The iSCSI helper to use with cinder.
237 controllerExtraConfig:
240 Controller specific configuration to inject into the cluster. Same
241 structure as ExtraConfig.
245 default: overcloud-control
247 - custom_constraint: glance.image
248 OvercloudControlFlavor:
249 description: Flavor for control nodes to request when deploying.
252 - custom_constraint: nova.flavor
253 ControlVirtualInterface:
255 description: Interface where virtual ip will be assigned.
260 Additional configuration to inject into the cluster. The JSON should have
261 the following structure:
264 [{"section": "SECTIONNAME",
266 [{"option": "OPTIONNAME",
277 [{"section": "default",
279 [{"option": "force_config_drive",
286 [{"option": "driver",
287 "value": "nova.cells.rpc_driver.CellsRPCDriver"
296 description: The filepath of the file to use for logging messages from Glance.
299 GlanceNotifierStrategy:
300 description: Strategy to use for Glance notification queue
305 description: The password for the glance service account, used by the glance services.
310 description: The password for the Heat service account, used by the Heat services.
313 HeatStackDomainAdminPassword:
314 description: Password for heat_domain_admin user.
318 KeystoneCACertificate:
320 description: Keystone self-signed certificate authority certificate.
322 KeystoneSigningCertificate:
324 description: Keystone certificate for verifying token validity.
328 description: Keystone key for signing tokens.
331 KeystoneSSLCertificate:
333 description: Keystone certificate for verifying token validity.
335 KeystoneSSLCertificateKey:
337 description: Keystone key for signing tokens.
340 MysqlInnodbBufferPoolSize:
342 Specifies the size of the buffer pool in megabytes. Setting to
343 zero should be interpreted as "no value" and will defer to the
347 NeutronDnsmasqOptions:
348 default: 'dhcp-option-force=26,1400'
349 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
351 NeutronPublicInterfaceDefaultRoute:
353 description: A custom default route for the NeutronPublicInterface.
355 NeutronPublicInterfaceIP:
357 description: A custom IP address to put onto the NeutronPublicInterface.
359 NeutronPublicInterfaceRawDevice:
361 description: If set, the public interface is a vlan with this device as the raw device.
363 PublicVirtualInterface:
366 Specifies the interface where the public-facing virtual ip will be assigned.
367 This should be int_public when a VLAN is being used.
371 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
376 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
381 description: If set, the contents of an SSL certificate authority file.
385 description: A random string to be used as a salt when hashing to determine mappings in the ring.
390 description: The password for the swift service account, used by the swift proxy services.
395 description: Value of mount_check in Swift account/container/object -server.conf
400 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
403 description: Partition Power to use when building Swift rings
408 description: How many replicas to use in the swift rings.
410 # Compute-specific params
411 CeilometerComputeAgent:
412 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
416 - allowed_values: ['', Present]
420 HypervisorNeutronPhysicalBridge:
423 An OVS bridge to create on each hypervisor. This defaults to br-ex the
424 same as the control plane nodes, as we have a uniform configuration of
425 the openvswitch agent. Typically should not need to be changed.
427 HypervisorNeutronPublicInterface:
429 description: What interface to add to the HypervisorNeutronPhysicalBridge.
431 NeutronNetworkVLANRanges:
432 default: 'datacentre'
434 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
435 Neutron documentation for permitted values. Defaults to permitting any
436 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
440 default: libvirt.LibvirtDriver
441 NovaComputeExtraConfig:
444 NovaCompute specific configuration to inject into the cluster. Same
445 structure as ExtraConfig.
447 NovaComputeLibvirtType:
452 default: overcloud-compute
454 - custom_constraint: glance.image
455 OvercloudComputeFlavor:
456 description: Use this flavor
459 - custom_constraint: nova.flavor
461 # Block storage specific parameters
466 default: overcloud-cinder-volume
468 OvercloudBlockStorageFlavor:
469 description: Flavor for block storage nodes to request when deploying.
472 - custom_constraint: nova.flavor
474 # Object storage specific parameters
478 OvercloudSwiftStorageFlavor:
479 description: Flavor for Swift storage nodes to request when deploying.
482 - custom_constraint: nova.flavor
484 default: overcloud-swift-storage
487 # Ceph storage specific parameters
492 default: overcloud-ceph-storage
494 OvercloudCephStorageFlavor:
496 description: Flavor for Ceph storage nodes to request when deploying.
499 - custom_constraint: nova.flavor
504 type: OS::Heat::ResourceGroup
506 count: {get_param: ControllerCount}
508 type: OS::TripleO::Controller
510 AdminPassword: {get_param: AdminPassword}
511 AdminToken: {get_param: AdminToken}
512 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
513 CeilometerPassword: {get_param: CeilometerPassword}
514 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
515 CinderPassword: {get_param: CinderPassword}
516 CinderISCSIHelper: {get_param: CinderISCSIHelper}
517 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
518 CloudName: {get_param: CloudName}
519 ControlVirtualInterface: {get_param: ControlVirtualInterface}
520 ControllerExtraConfig: {get_param: controllerExtraConfig}
521 ExtraConfig: {get_param: ExtraConfig}
522 Flavor: {get_param: OvercloudControlFlavor}
523 GlancePort: {get_param: GlancePort}
524 GlanceProtocol: {get_param: GlanceProtocol}
525 GlancePassword: {get_param: GlancePassword}
526 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
527 GlanceLogFile: {get_param: GlanceLogFile}
528 HeatPassword: {get_param: HeatPassword}
529 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
530 Image: {get_param: controllerImage}
531 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
532 KeyName: {get_param: KeyName}
533 KeystoneCACertificate: {get_param: KeystoneCACertificate}
534 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
535 KeystoneSigningKey: {get_param: KeystoneSigningKey}
536 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
537 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
538 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
539 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
540 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
541 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
542 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
543 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
544 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
545 NeutronPublicInterface: {get_param: NeutronPublicInterface}
546 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
547 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
548 NeutronPassword: {get_param: NeutronPassword}
549 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
550 NeutronDVR: {get_param: NeutronDVR}
551 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
552 NeutronAgentMode: {get_param: NeutronAgentMode}
553 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
554 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
555 NeutronL3HA: {get_param: NeutronL3HA}
556 NeutronNetworkType: {get_param: NeutronNetworkType}
557 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
558 NovaPassword: {get_param: NovaPassword}
559 NtpServer: {get_param: NtpServer}
560 PublicVirtualInterface: {get_param: PublicVirtualInterface}
561 RabbitUserName: {get_param: RabbitUserName}
562 RabbitPassword: {get_param: RabbitPassword}
563 RabbitCookie: {get_attr: [RabbitCookie, value]}
564 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
565 RabbitClientPort: {get_param: RabbitClientPort}
566 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
567 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
568 SSLCertificate: {get_param: SSLCertificate}
569 SSLKey: {get_param: SSLKey}
570 SSLCACertificate: {get_param: SSLCACertificate}
571 SwiftHashSuffix: {get_param: SwiftHashSuffix}
572 SwiftMountCheck: {get_param: SwiftMountCheck}
573 SwiftMinPartHours: {get_param: SwiftMinPartHours}
574 SwiftPartPower: {get_param: SwiftPartPower}
575 SwiftPassword: {get_param: SwiftPassword}
576 SwiftReplicas: { get_param: SwiftReplicas}
577 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
578 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
581 type: OS::Heat::ResourceGroup
583 count: {get_param: ComputeCount}
585 type: OS::TripleO::Compute
587 AdminPassword: {get_param: AdminPassword}
588 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
589 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
590 CeilometerPassword: {get_param: CeilometerPassword}
591 ExtraConfig: {get_param: ExtraConfig}
592 Flavor: {get_param: OvercloudComputeFlavor}
593 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
594 GlancePort: {get_param: GlancePort}
595 GlanceProtocol: {get_param: GlanceProtocol}
596 Image: {get_param: NovaImage}
597 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
598 KeyName: {get_param: KeyName}
599 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
600 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
601 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
602 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
603 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
604 NeutronNetworkType: {get_param: NeutronNetworkType}
605 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
606 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
607 NeutronPassword: {get_param: NeutronPassword}
608 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
609 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
610 NeutronDVR: {get_param: NeutronDVR}
611 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
612 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
613 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
614 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
615 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
616 NeutronL3HA: {get_param: NeutronL3HA}
617 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
618 NovaComputeDriver: {get_param: NovaComputeDriver}
619 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
620 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
621 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
622 NovaPassword: {get_param: NovaPassword}
623 NtpServer: {get_param: NtpServer}
624 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
625 RabbitPassword: {get_param: RabbitPassword}
626 RabbitUserName: {get_param: RabbitUserName}
627 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
628 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
631 type: OS::Heat::ResourceGroup
633 count: {get_param: BlockStorageCount}
635 type: OS::TripleO::BlockStorage
637 Image: {get_param: BlockStorageImage}
638 CinderISCSIHelper: {get_param: CinderISCSIHelper}
639 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
640 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
641 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
642 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
643 KeyName: {get_param: KeyName}
644 Flavor: {get_param: OvercloudBlockStorageFlavor}
645 RabbitPassword: {get_param: RabbitPassword}
646 RabbitUserName: {get_param: RabbitUserName}
647 NtpServer: {get_param: NtpServer}
650 type: OS::Heat::ResourceGroup
652 count: {get_param: ObjectStorageCount}
654 type: OS::TripleO::ObjectStorage
656 KeyName: {get_param: KeyName}
657 Flavor: {get_param: OvercloudSwiftStorageFlavor}
658 HashSuffix: {get_param: SwiftHashSuffix}
659 MountCheck: {get_param: SwiftMountCheck}
660 MinPartHours: {get_param: SwiftMinPartHours}
661 PartPower: {get_param: SwiftPartPower}
662 Image: {get_param: SwiftStorageImage}
663 Replicas: { get_param: SwiftReplicas}
664 NtpServer: {get_param: NtpServer}
667 type: OS::Heat::ResourceGroup
669 count: {get_param: CephStorageCount}
671 type: OS::TripleO::CephStorage
673 Image: {get_param: CephStorageImage}
674 KeyName: {get_param: KeyName}
675 Flavor: {get_param: OvercloudCephStorageFlavor}
676 NtpServer: {get_param: NtpServer}
679 type: OS::TripleO::AllNodes::SoftwareConfig
681 compute_hosts: {get_attr: [Compute, hosts_entry]}
682 controller_hosts: {get_attr: [Controller, hosts_entry]}
683 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
684 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
685 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
686 controller_names: {get_attr: [Controller, hostname]}
689 type: OS::Heat::RandomString
693 MysqlClusterUniquePart:
694 type: OS::Heat::RandomString
699 type: OS::Heat::RandomString
702 salt: {get_param: RabbitCookieSalt}
705 type: OS::Neutron::Port
707 name: control_virtual_ip
708 network_id: {get_param: NeutronControlPlaneID}
709 fixed_ips: {get_param: ControlFixedIPs}
710 replacement_policy: AUTO
713 type: OS::Neutron::Port
715 name: public_virtual_ip
716 network: {get_param: PublicVirtualNetwork}
717 fixed_ips: {get_param: PublicVirtualFixedIPs}
718 replacement_policy: AUTO
720 ControllerBootstrapNodeConfig:
721 type: OS::TripleO::BootstrapNode::SoftwareConfig
723 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
725 ControllerBootstrapNodeDeployment:
726 type: OS::Heat::StructuredDeployments
728 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
729 servers: {get_attr: [Controller, attributes, nova_server_resource]}
730 signal_transport: NO_SIGNAL
732 ControllerSwiftDeployment:
733 type: OS::Heat::StructuredDeployments
735 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
736 servers: {get_attr: [Controller, attributes, nova_server_resource]}
737 signal_transport: NO_SIGNAL
739 ObjectStorageSwiftDeployment:
740 type: OS::Heat::StructuredDeployments
742 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
743 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
744 signal_transport: NO_SIGNAL
746 SwiftDevicesAndProxyConfig:
747 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
749 controller_swift_devices: {get_attr: [Controller, swift_device]}
750 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
751 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
753 ControllerCephDeployment:
754 type: OS::Heat::StructuredDeployments
756 config: {get_attr: [CephClusterConfig, config_id]}
757 servers: {get_attr: [Controller, attributes, nova_server_resource]}
759 CephStorageCephDeployment:
760 type: OS::Heat::StructuredDeployments
762 config: {get_attr: [CephClusterConfig, config_id]}
763 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
766 type: OS::TripleO::CephClusterConfig::SoftwareConfig
768 ceph_fsid: {get_param: CephClusterFSID}
769 ceph_mon_key: {get_param: CephMonKey}
770 ceph_admin_key: {get_param: CephAdminKey}
771 ceph_mon_names: {get_attr: [Controller, hostname]}
772 ceph_mon_ips: {get_attr: [Controller, ip_address]}
774 ControllerClusterConfig:
775 type: OS::Heat::StructuredConfig
779 nodes: {get_attr: [Controller, corosync_node]}
783 nodes: {get_attr: [Controller, hostname]}
785 nodes: {get_attr: [Controller, corosync_node]}
787 nodes: {get_attr: [Controller, corosync_node]}
789 ControllerClusterDeployment:
790 type: OS::Heat::StructuredDeployments
792 config: {get_resource: ControllerClusterConfig}
793 servers: {get_attr: [Controller, attributes, nova_server_resource]}
794 signal_transport: NO_SIGNAL
796 ControllerAllNodesDeployment:
797 type: OS::Heat::StructuredDeployments
799 config: {get_attr: [allNodesConfig, config_id]}
800 servers: {get_attr: [Controller, attributes, nova_server_resource]}
802 ComputeAllNodesDeployment:
803 type: OS::Heat::StructuredDeployments
805 config: {get_attr: [allNodesConfig, config_id]}
806 servers: {get_attr: [Compute, attributes, nova_server_resource]}
808 BlockStorageAllNodesDeployment:
809 type: OS::Heat::StructuredDeployments
811 config: {get_attr: [allNodesConfig, config_id]}
812 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
814 ObjectStorageAllNodesDeployment:
815 type: OS::Heat::StructuredDeployments
817 config: {get_attr: [allNodesConfig, config_id]}
818 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
820 CephStorageAllNodesDeployment:
821 type: OS::Heat::StructuredDeployments
823 config: {get_attr: [allNodesConfig, config_id]}
824 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
826 # Nested stack deployment runs after all other controller deployments
827 ControllerNodesPostDeployment:
828 type: OS::TripleO::ControllerPostDeployment
829 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
831 servers: {get_attr: [Controller, attributes, nova_server_resource]}
833 ComputeNodesPostDeployment:
834 type: OS::TripleO::ComputePostDeployment
835 depends_on: ComputeAllNodesDeployment
837 servers: {get_attr: [Compute, attributes, nova_server_resource]}
839 ObjectStorageNodesPostDeployment:
840 type: OS::TripleO::ObjectStoragePostDeployment
841 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
843 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
845 BlockStorageNodesPostDeployment:
846 type: OS::TripleO::BlockStoragePostDeployment
847 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
849 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
851 CephStorageNodesPostDeployment:
852 type: OS::TripleO::CephStoragePostDeployment
853 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
855 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
859 description: URL for the Overcloud Keystone service
864 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}