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
503 HeatAuthEncryptionKey:
504 type: OS::Heat::RandomString
507 type: OS::Heat::ResourceGroup
509 count: {get_param: ControllerCount}
511 type: OS::TripleO::Controller
513 AdminPassword: {get_param: AdminPassword}
514 AdminToken: {get_param: AdminToken}
515 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
516 CeilometerPassword: {get_param: CeilometerPassword}
517 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
518 CinderPassword: {get_param: CinderPassword}
519 CinderISCSIHelper: {get_param: CinderISCSIHelper}
520 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
521 CloudName: {get_param: CloudName}
522 ControlVirtualInterface: {get_param: ControlVirtualInterface}
523 ControllerExtraConfig: {get_param: controllerExtraConfig}
524 ExtraConfig: {get_param: ExtraConfig}
525 Flavor: {get_param: OvercloudControlFlavor}
526 GlancePort: {get_param: GlancePort}
527 GlanceProtocol: {get_param: GlanceProtocol}
528 GlancePassword: {get_param: GlancePassword}
529 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
530 GlanceLogFile: {get_param: GlanceLogFile}
531 HeatPassword: {get_param: HeatPassword}
532 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
533 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
534 Image: {get_param: controllerImage}
535 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
536 KeyName: {get_param: KeyName}
537 KeystoneCACertificate: {get_param: KeystoneCACertificate}
538 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
539 KeystoneSigningKey: {get_param: KeystoneSigningKey}
540 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
541 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
542 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
543 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
544 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
545 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
546 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
547 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
548 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
549 NeutronPublicInterface: {get_param: NeutronPublicInterface}
550 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
551 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
552 NeutronPassword: {get_param: NeutronPassword}
553 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
554 NeutronDVR: {get_param: NeutronDVR}
555 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
556 NeutronAgentMode: {get_param: NeutronAgentMode}
557 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
558 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
559 NeutronL3HA: {get_param: NeutronL3HA}
560 NeutronNetworkType: {get_param: NeutronNetworkType}
561 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
562 NovaPassword: {get_param: NovaPassword}
563 NtpServer: {get_param: NtpServer}
564 PublicVirtualInterface: {get_param: PublicVirtualInterface}
565 RabbitUserName: {get_param: RabbitUserName}
566 RabbitPassword: {get_param: RabbitPassword}
567 RabbitCookie: {get_attr: [RabbitCookie, value]}
568 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
569 RabbitClientPort: {get_param: RabbitClientPort}
570 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
571 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
572 SSLCertificate: {get_param: SSLCertificate}
573 SSLKey: {get_param: SSLKey}
574 SSLCACertificate: {get_param: SSLCACertificate}
575 SwiftHashSuffix: {get_param: SwiftHashSuffix}
576 SwiftMountCheck: {get_param: SwiftMountCheck}
577 SwiftMinPartHours: {get_param: SwiftMinPartHours}
578 SwiftPartPower: {get_param: SwiftPartPower}
579 SwiftPassword: {get_param: SwiftPassword}
580 SwiftReplicas: { get_param: SwiftReplicas}
581 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
582 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
585 type: OS::Heat::ResourceGroup
587 count: {get_param: ComputeCount}
589 type: OS::TripleO::Compute
591 AdminPassword: {get_param: AdminPassword}
592 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
593 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
594 CeilometerPassword: {get_param: CeilometerPassword}
595 ExtraConfig: {get_param: ExtraConfig}
596 Flavor: {get_param: OvercloudComputeFlavor}
597 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
598 GlancePort: {get_param: GlancePort}
599 GlanceProtocol: {get_param: GlanceProtocol}
600 Image: {get_param: NovaImage}
601 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
602 KeyName: {get_param: KeyName}
603 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
604 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
605 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
606 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
607 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
608 NeutronNetworkType: {get_param: NeutronNetworkType}
609 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
610 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
611 NeutronPassword: {get_param: NeutronPassword}
612 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
613 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
614 NeutronDVR: {get_param: NeutronDVR}
615 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
616 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
617 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
618 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
619 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
620 NeutronL3HA: {get_param: NeutronL3HA}
621 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
622 NovaComputeDriver: {get_param: NovaComputeDriver}
623 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
624 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
625 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
626 NovaPassword: {get_param: NovaPassword}
627 NtpServer: {get_param: NtpServer}
628 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
629 RabbitPassword: {get_param: RabbitPassword}
630 RabbitUserName: {get_param: RabbitUserName}
631 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
632 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
635 type: OS::Heat::ResourceGroup
637 count: {get_param: BlockStorageCount}
639 type: OS::TripleO::BlockStorage
641 Image: {get_param: BlockStorageImage}
642 CinderISCSIHelper: {get_param: CinderISCSIHelper}
643 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
644 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
645 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
646 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
647 KeyName: {get_param: KeyName}
648 Flavor: {get_param: OvercloudBlockStorageFlavor}
649 RabbitPassword: {get_param: RabbitPassword}
650 RabbitUserName: {get_param: RabbitUserName}
651 NtpServer: {get_param: NtpServer}
654 type: OS::Heat::ResourceGroup
656 count: {get_param: ObjectStorageCount}
658 type: OS::TripleO::ObjectStorage
660 KeyName: {get_param: KeyName}
661 Flavor: {get_param: OvercloudSwiftStorageFlavor}
662 HashSuffix: {get_param: SwiftHashSuffix}
663 MountCheck: {get_param: SwiftMountCheck}
664 MinPartHours: {get_param: SwiftMinPartHours}
665 PartPower: {get_param: SwiftPartPower}
666 Image: {get_param: SwiftStorageImage}
667 Replicas: { get_param: SwiftReplicas}
668 NtpServer: {get_param: NtpServer}
671 type: OS::Heat::ResourceGroup
673 count: {get_param: CephStorageCount}
675 type: OS::TripleO::CephStorage
677 Image: {get_param: CephStorageImage}
678 KeyName: {get_param: KeyName}
679 Flavor: {get_param: OvercloudCephStorageFlavor}
680 NtpServer: {get_param: NtpServer}
683 type: OS::TripleO::AllNodes::SoftwareConfig
685 compute_hosts: {get_attr: [Compute, hosts_entry]}
686 controller_hosts: {get_attr: [Controller, hosts_entry]}
687 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
688 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
689 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
690 controller_names: {get_attr: [Controller, hostname]}
693 type: OS::Heat::RandomString
697 MysqlClusterUniquePart:
698 type: OS::Heat::RandomString
703 type: OS::Heat::RandomString
706 salt: {get_param: RabbitCookieSalt}
709 type: OS::Neutron::Port
711 name: control_virtual_ip
712 network_id: {get_param: NeutronControlPlaneID}
713 fixed_ips: {get_param: ControlFixedIPs}
714 replacement_policy: AUTO
717 type: OS::Neutron::Port
719 name: public_virtual_ip
720 network: {get_param: PublicVirtualNetwork}
721 fixed_ips: {get_param: PublicVirtualFixedIPs}
722 replacement_policy: AUTO
724 ControllerBootstrapNodeConfig:
725 type: OS::TripleO::BootstrapNode::SoftwareConfig
727 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
729 ControllerBootstrapNodeDeployment:
730 type: OS::Heat::StructuredDeployments
732 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
733 servers: {get_attr: [Controller, attributes, nova_server_resource]}
734 signal_transport: NO_SIGNAL
736 ControllerSwiftDeployment:
737 type: OS::Heat::StructuredDeployments
739 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
740 servers: {get_attr: [Controller, attributes, nova_server_resource]}
741 signal_transport: NO_SIGNAL
743 ObjectStorageSwiftDeployment:
744 type: OS::Heat::StructuredDeployments
746 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
747 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
748 signal_transport: NO_SIGNAL
750 SwiftDevicesAndProxyConfig:
751 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
753 controller_swift_devices: {get_attr: [Controller, swift_device]}
754 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
755 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
757 ControllerCephDeployment:
758 type: OS::Heat::StructuredDeployments
760 config: {get_attr: [CephClusterConfig, config_id]}
761 servers: {get_attr: [Controller, attributes, nova_server_resource]}
763 CephStorageCephDeployment:
764 type: OS::Heat::StructuredDeployments
766 config: {get_attr: [CephClusterConfig, config_id]}
767 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
770 type: OS::TripleO::CephClusterConfig::SoftwareConfig
772 ceph_fsid: {get_param: CephClusterFSID}
773 ceph_mon_key: {get_param: CephMonKey}
774 ceph_admin_key: {get_param: CephAdminKey}
775 ceph_mon_names: {get_attr: [Controller, hostname]}
776 ceph_mon_ips: {get_attr: [Controller, ip_address]}
778 ControllerClusterConfig:
779 type: OS::Heat::StructuredConfig
783 nodes: {get_attr: [Controller, corosync_node]}
787 nodes: {get_attr: [Controller, hostname]}
789 nodes: {get_attr: [Controller, corosync_node]}
791 nodes: {get_attr: [Controller, corosync_node]}
793 ControllerClusterDeployment:
794 type: OS::Heat::StructuredDeployments
796 config: {get_resource: ControllerClusterConfig}
797 servers: {get_attr: [Controller, attributes, nova_server_resource]}
798 signal_transport: NO_SIGNAL
800 ControllerAllNodesDeployment:
801 type: OS::Heat::StructuredDeployments
803 config: {get_attr: [allNodesConfig, config_id]}
804 servers: {get_attr: [Controller, attributes, nova_server_resource]}
806 ComputeAllNodesDeployment:
807 type: OS::Heat::StructuredDeployments
809 config: {get_attr: [allNodesConfig, config_id]}
810 servers: {get_attr: [Compute, attributes, nova_server_resource]}
812 BlockStorageAllNodesDeployment:
813 type: OS::Heat::StructuredDeployments
815 config: {get_attr: [allNodesConfig, config_id]}
816 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
818 ObjectStorageAllNodesDeployment:
819 type: OS::Heat::StructuredDeployments
821 config: {get_attr: [allNodesConfig, config_id]}
822 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
824 CephStorageAllNodesDeployment:
825 type: OS::Heat::StructuredDeployments
827 config: {get_attr: [allNodesConfig, config_id]}
828 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
830 # Nested stack deployment runs after all other controller deployments
831 ControllerNodesPostDeployment:
832 type: OS::TripleO::ControllerPostDeployment
833 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
835 servers: {get_attr: [Controller, attributes, nova_server_resource]}
837 ComputeNodesPostDeployment:
838 type: OS::TripleO::ComputePostDeployment
839 depends_on: ComputeAllNodesDeployment
841 servers: {get_attr: [Compute, attributes, nova_server_resource]}
843 ObjectStorageNodesPostDeployment:
844 type: OS::TripleO::ObjectStoragePostDeployment
845 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
847 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
849 BlockStorageNodesPostDeployment:
850 type: OS::TripleO::BlockStoragePostDeployment
851 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
853 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
855 CephStorageNodesPostDeployment:
856 type: OS::TripleO::CephStoragePostDeployment
857 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
859 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
863 description: URL for the Overcloud Keystone service
868 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}