1 heat_template_version: 2015-04-30
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.
20 description: The ceilometer backend type.
22 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
29 description: The password for the ceilometer service account.
32 # This has to be an UUID so for now we generate it outside the template
36 description: The Ceph cluster FSID. Must be a UUID.
39 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
45 CinderEnableIscsiBackend:
47 description: Whether to enable or not the Iscsi backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Set to True to enable debugging on all services.
63 description: Glance port.
67 description: Protocol to use when connecting to glance, set to https for SSL.
70 default: 'REBUILD_PRESERVE_EPHEMERAL'
71 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
75 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
78 - custom_constraint: nova.keypair
79 NeutronBridgeMappings:
81 The OVS logical->physical bridge mappings to use. See the Neutron
82 documentation for details. Defaults to mapping br-ex - the external
83 bridge on hosts - to a physical name 'datacentre' which can be used
84 to create provider networks (and we use this for the default floating
85 network) - if changing this either use different post-install network
86 scripts or be sure to keep 'datacentre' as a mapping network name.
88 default: "datacentre:br-ex"
89 NeutronControlPlaneID:
92 description: Neutron ID for ctlplane network.
93 NeutronEnableTunnelling:
100 If set, flat networks to configure in neutron plugins. Defaults to
101 'datacentre' to permit external network creation.
104 description: The tenant network type for Neutron, either gre or vxlan.
108 description: The password for the neutron service account, used by neutron agents.
111 NeutronPublicInterface:
113 description: What interface to bridge onto br-ex for network nodes.
115 NeutronPublicInterfaceTag:
118 VLAN tag for creating a public VLAN. The tag will be used to
119 create an access port on the exterior bridge for each control plane node,
120 and that port will be given the IP address returned by neutron from the
121 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
122 overcloud.yaml to include the deployment of VLAN ports to the control
125 NeutronComputeAgentMode:
127 description: Agent mode for the neutron-l3-agent on the compute hosts
131 description: Agent mode for the neutron-l3-agent on the controller hosts
135 description: Whether to configure Neutron Distributed Virtual Routers
137 NeutronMetadataProxySharedSecret:
139 description: Shared secret to prevent spoofing
144 The tunnel types for the Neutron tenant network. To specify multiple
145 values, use a comma separated string, like so: 'gre,vxlan'
147 NeutronMechanismDrivers:
148 default: 'openvswitch'
150 The mechanism drivers for the Neutron tenant network. To specify multiple
151 values, use a comma separated string, like so: 'openvswitch,l2_population'
153 NeutronAllowL3AgentFailover:
155 description: Allow automatic l3-agent failover
159 description: Whether to enable l3-agent HA
163 description: The password for the nova service account, used by nova-api.
169 PublicVirtualFixedIPs:
172 Control the IP allocation for the PublicVirtualInterface port. E.g.
173 [{'ip_address':'1.2.3.4'}]
175 PublicVirtualNetwork:
179 Neutron network to allocate public virtual IP port on.
183 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
184 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
187 description: The username for RabbitMQ
191 description: The password for RabbitMQ
197 Rabbit client subscriber parameter to specify
198 an SSL connection to the RabbitMQ host.
202 description: Set rabbit subscriber port, change this if using SSL
204 SnmpdReadonlyUserName:
205 default: ro_snmp_user
206 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
208 SnmpdReadonlyUserPassword:
210 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
214 # Controller-specific params
217 description: The keystone auth secret.
220 CinderEnableRbdBackend:
222 description: Whether to enable or not the Rbd backend for Cinder
224 CinderLVMLoopDeviceSize:
226 description: The size of the loopback file used by the cinder LVM driver.
230 description: The password for the cinder service account, used by cinder-api.
235 description: The iSCSI helper to use with cinder.
240 controllerExtraConfig:
243 Controller specific configuration to inject into the cluster. Same
244 structure as ExtraConfig.
248 default: overcloud-control
250 - custom_constraint: glance.image
251 OvercloudControlFlavor:
252 description: Flavor for control nodes to request when deploying.
255 - custom_constraint: nova.flavor
256 ControlVirtualInterface:
258 description: Interface where virtual ip will be assigned.
262 description: Whether to use Galera instead of regular MariaDB.
266 description: If enabled services will be monitored by Pacemaker; it
267 will manage VIPs as well, in place of Keepalived.
269 ControllerEnableCephStorage:
271 description: Whether to deploy Ceph Storage (OSD) on the Controller
273 ControllerEnableSwiftStorage:
275 description: Whether to enable Swift Storage on the Controller
280 Additional configuration to inject into the cluster. The JSON should have
281 the following structure:
284 [{"section": "SECTIONNAME",
286 [{"option": "OPTIONNAME",
297 [{"section": "default",
299 [{"option": "force_config_drive",
306 [{"option": "driver",
307 "value": "nova.cells.rpc_driver.CellsRPCDriver"
316 description: The filepath of the file to use for logging messages from Glance.
319 GlanceNotifierStrategy:
320 description: Strategy to use for Glance notification queue
325 description: The password for the glance service account, used by the glance services.
330 description: The short name of the Glance backend to use. Should be one
331 of swift, rbd or file
334 - allowed_values: ['swift', 'file', 'rbd']
337 description: The password for the Heat service account, used by the Heat services.
340 HeatStackDomainAdminPassword:
341 description: Password for heat_domain_admin user.
345 KeystoneCACertificate:
347 description: Keystone self-signed certificate authority certificate.
349 KeystoneSigningCertificate:
351 description: Keystone certificate for verifying token validity.
355 description: Keystone key for signing tokens.
358 KeystoneSSLCertificate:
360 description: Keystone certificate for verifying token validity.
362 KeystoneSSLCertificateKey:
364 description: Keystone key for signing tokens.
367 MysqlInnodbBufferPoolSize:
369 Specifies the size of the buffer pool in megabytes. Setting to
370 zero should be interpreted as "no value" and will defer to the
374 NeutronDnsmasqOptions:
375 default: 'dhcp-option-force=26,1400'
376 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
378 NeutronPublicInterfaceDefaultRoute:
380 description: A custom default route for the NeutronPublicInterface.
382 NeutronPublicInterfaceIP:
384 description: A custom IP address to put onto the NeutronPublicInterface.
386 NeutronPublicInterfaceRawDevice:
388 description: If set, the public interface is a vlan with this device as the raw device.
390 PublicVirtualInterface:
393 Specifies the interface where the public-facing virtual ip will be assigned.
394 This should be int_public when a VLAN is being used.
398 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
403 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
408 description: If set, the contents of an SSL certificate authority file.
412 description: A random string to be used as a salt when hashing to determine mappings in the ring.
417 description: The password for the swift service account, used by the swift proxy services.
422 description: Value of mount_check in Swift account/container/object -server.conf
427 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
430 description: Partition Power to use when building Swift rings
435 description: How many replicas to use in the swift rings.
437 # Compute-specific params
438 CeilometerComputeAgent:
439 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
443 - allowed_values: ['', Present]
447 HypervisorNeutronPhysicalBridge:
450 An OVS bridge to create on each hypervisor. This defaults to br-ex the
451 same as the control plane nodes, as we have a uniform configuration of
452 the openvswitch agent. Typically should not need to be changed.
454 HypervisorNeutronPublicInterface:
456 description: What interface to add to the HypervisorNeutronPhysicalBridge.
458 NeutronNetworkVLANRanges:
459 default: 'datacentre'
461 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
462 Neutron documentation for permitted values. Defaults to permitting any
463 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
467 default: libvirt.LibvirtDriver
468 NovaComputeExtraConfig:
471 NovaCompute specific configuration to inject into the cluster. Same
472 structure as ExtraConfig.
474 NovaComputeLibvirtType:
477 NovaEnableRbdBackend:
479 description: Whether to enable or not the Rbd backend for Nova
483 default: overcloud-compute
485 - custom_constraint: glance.image
486 OvercloudComputeFlavor:
487 description: Use this flavor
490 - custom_constraint: nova.flavor
492 # Block storage specific parameters
497 default: overcloud-cinder-volume
499 OvercloudBlockStorageFlavor:
500 description: Flavor for block storage nodes to request when deploying.
503 - custom_constraint: nova.flavor
505 # Object storage specific parameters
509 OvercloudSwiftStorageFlavor:
510 description: Flavor for Swift storage nodes to request when deploying.
513 - custom_constraint: nova.flavor
515 default: overcloud-swift-storage
518 # Ceph storage specific parameters
523 default: overcloud-ceph-storage
525 OvercloudCephStorageFlavor:
527 description: Flavor for Ceph storage nodes to request when deploying.
530 - custom_constraint: nova.flavor
534 HeatAuthEncryptionKey:
535 type: OS::Heat::RandomString
538 type: OS::Heat::RandomString
543 type: OS::Heat::RandomString
548 type: OS::Heat::ResourceGroup
551 count: {get_param: ControllerCount}
553 type: OS::TripleO::Controller
555 AdminPassword: {get_param: AdminPassword}
556 AdminToken: {get_param: AdminToken}
557 CeilometerBackend: {get_param: CeilometerBackend}
558 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
559 CeilometerPassword: {get_param: CeilometerPassword}
560 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
561 CinderPassword: {get_param: CinderPassword}
562 CinderISCSIHelper: {get_param: CinderISCSIHelper}
563 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
564 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
565 CloudName: {get_param: CloudName}
566 ControlVirtualInterface: {get_param: ControlVirtualInterface}
567 ControllerExtraConfig: {get_param: controllerExtraConfig}
568 Debug: {get_param: Debug}
569 EnableGalera: {get_param: EnableGalera}
570 EnablePacemaker: {get_param: EnablePacemaker}
571 EnableCephStorage: {get_param: ControllerEnableCephStorage}
572 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
573 ExtraConfig: {get_param: ExtraConfig}
574 Flavor: {get_param: OvercloudControlFlavor}
575 GlancePort: {get_param: GlancePort}
576 GlanceProtocol: {get_param: GlanceProtocol}
577 GlancePassword: {get_param: GlancePassword}
578 GlanceBackend: {get_param: GlanceBackend}
579 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
580 GlanceLogFile: {get_param: GlanceLogFile}
581 HeatPassword: {get_param: HeatPassword}
582 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
583 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
584 HorizonSecret: {get_resource: HorizonSecret}
585 Image: {get_param: controllerImage}
586 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
587 KeyName: {get_param: KeyName}
588 KeystoneCACertificate: {get_param: KeystoneCACertificate}
589 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
590 KeystoneSigningKey: {get_param: KeystoneSigningKey}
591 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
592 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
593 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
594 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
595 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
596 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
597 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
598 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
599 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
600 NeutronPublicInterface: {get_param: NeutronPublicInterface}
601 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
602 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
603 NeutronPassword: {get_param: NeutronPassword}
604 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
605 NeutronDVR: {get_param: NeutronDVR}
606 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
607 NeutronAgentMode: {get_param: NeutronAgentMode}
608 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
609 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
610 NeutronL3HA: {get_param: NeutronL3HA}
611 NeutronNetworkType: {get_param: NeutronNetworkType}
612 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
613 NovaPassword: {get_param: NovaPassword}
614 NtpServer: {get_param: NtpServer}
615 PcsdPassword: {get_resource: PcsdPassword}
616 PublicVirtualInterface: {get_param: PublicVirtualInterface}
617 RabbitPassword: {get_param: RabbitPassword}
618 RabbitUserName: {get_param: RabbitUserName}
619 RabbitCookie: {get_attr: [RabbitCookie, value]}
620 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
621 RabbitClientPort: {get_param: RabbitClientPort}
622 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
623 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
624 SSLCertificate: {get_param: SSLCertificate}
625 SSLKey: {get_param: SSLKey}
626 SSLCACertificate: {get_param: SSLCACertificate}
627 SwiftHashSuffix: {get_param: SwiftHashSuffix}
628 SwiftMountCheck: {get_param: SwiftMountCheck}
629 SwiftMinPartHours: {get_param: SwiftMinPartHours}
630 SwiftPartPower: {get_param: SwiftPartPower}
631 SwiftPassword: {get_param: SwiftPassword}
632 SwiftReplicas: { get_param: SwiftReplicas}
633 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
634 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
637 type: OS::Heat::ResourceGroup
640 count: {get_param: ComputeCount}
642 type: OS::TripleO::Compute
644 AdminPassword: {get_param: AdminPassword}
645 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
646 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
647 CeilometerPassword: {get_param: CeilometerPassword}
648 Debug: {get_param: Debug}
649 ExtraConfig: {get_param: ExtraConfig}
650 Flavor: {get_param: OvercloudComputeFlavor}
651 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
652 GlancePort: {get_param: GlancePort}
653 GlanceProtocol: {get_param: GlanceProtocol}
654 Image: {get_param: NovaImage}
655 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
656 KeyName: {get_param: KeyName}
657 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
658 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
659 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
660 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
661 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
662 NeutronNetworkType: {get_param: NeutronNetworkType}
663 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
664 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
665 NeutronPassword: {get_param: NeutronPassword}
666 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
667 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
668 NeutronDVR: {get_param: NeutronDVR}
669 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
670 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
671 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
672 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
673 # L3 HA and Failover is not relevant for Computes, should be removed
674 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
675 NeutronL3HA: {get_param: NeutronL3HA}
676 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
677 NovaComputeDriver: {get_param: NovaComputeDriver}
678 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
679 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
680 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
681 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
682 NovaPassword: {get_param: NovaPassword}
683 NtpServer: {get_param: NtpServer}
684 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
685 RabbitPassword: {get_param: RabbitPassword}
686 RabbitUserName: {get_param: RabbitUserName}
687 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
688 RabbitClientPort: {get_param: RabbitClientPort}
689 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
690 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
693 type: OS::Heat::ResourceGroup
696 count: {get_param: BlockStorageCount}
698 type: OS::TripleO::BlockStorage
700 Debug: {get_param: Debug}
701 Image: {get_param: BlockStorageImage}
702 CinderISCSIHelper: {get_param: CinderISCSIHelper}
703 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
704 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
705 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
706 CinderPassword: {get_param: CinderPassword}
707 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
708 KeyName: {get_param: KeyName}
709 Flavor: {get_param: OvercloudBlockStorageFlavor}
710 RabbitPassword: {get_param: RabbitPassword}
711 RabbitUserName: {get_param: RabbitUserName}
712 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
713 RabbitClientPort: {get_param: RabbitClientPort}
714 NtpServer: {get_param: NtpServer}
717 type: OS::Heat::ResourceGroup
720 count: {get_param: ObjectStorageCount}
722 type: OS::TripleO::ObjectStorage
724 KeyName: {get_param: KeyName}
725 Flavor: {get_param: OvercloudSwiftStorageFlavor}
726 HashSuffix: {get_param: SwiftHashSuffix}
727 MountCheck: {get_param: SwiftMountCheck}
728 MinPartHours: {get_param: SwiftMinPartHours}
729 PartPower: {get_param: SwiftPartPower}
730 Image: {get_param: SwiftStorageImage}
731 Replicas: { get_param: SwiftReplicas}
732 NtpServer: {get_param: NtpServer}
735 type: OS::Heat::ResourceGroup
738 count: {get_param: CephStorageCount}
740 type: OS::TripleO::CephStorage
742 Image: {get_param: CephStorageImage}
743 KeyName: {get_param: KeyName}
744 Flavor: {get_param: OvercloudCephStorageFlavor}
745 NtpServer: {get_param: NtpServer}
748 type: OS::TripleO::AllNodes::SoftwareConfig
750 compute_hosts: {get_attr: [Compute, hosts_entry]}
751 controller_hosts: {get_attr: [Controller, hosts_entry]}
752 controller_ips: {get_attr: [Controller, ip_address]}
753 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
754 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
755 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
756 controller_names: {get_attr: [Controller, hostname]}
759 type: OS::Heat::RandomString
763 MysqlClusterUniquePart:
764 type: OS::Heat::RandomString
769 type: OS::Heat::RandomString
772 salt: {get_param: RabbitCookieSalt}
774 # creates the network architecture
776 type: OS::TripleO::Network
779 type: OS::Neutron::Port
782 name: control_virtual_ip
783 network_id: {get_param: NeutronControlPlaneID}
784 fixed_ips: {get_param: ControlFixedIPs}
785 replacement_policy: AUTO
788 type: OS::Neutron::Port
791 name: public_virtual_ip
792 network: {get_param: PublicVirtualNetwork}
793 fixed_ips: {get_param: PublicVirtualFixedIPs}
794 replacement_policy: AUTO
796 ControllerBootstrapNodeConfig:
797 type: OS::TripleO::BootstrapNode::SoftwareConfig
799 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
800 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
802 ControllerBootstrapNodeDeployment:
803 type: OS::Heat::StructuredDeployments
805 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
806 servers: {get_attr: [Controller, attributes, nova_server_resource]}
808 ControllerSwiftDeployment:
809 type: OS::Heat::StructuredDeployments
811 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
812 servers: {get_attr: [Controller, attributes, nova_server_resource]}
814 ObjectStorageSwiftDeployment:
815 type: OS::Heat::StructuredDeployments
817 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
818 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
820 SwiftDevicesAndProxyConfig:
821 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
823 controller_swift_devices: {get_attr: [Controller, swift_device]}
824 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
825 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
827 ComputeCephDeployment:
828 type: OS::Heat::StructuredDeployments
830 config: {get_attr: [CephClusterConfig, config_id]}
831 servers: {get_attr: [Compute, attributes, nova_server_resource]}
833 ControllerCephDeployment:
834 type: OS::Heat::StructuredDeployments
836 config: {get_attr: [CephClusterConfig, config_id]}
837 servers: {get_attr: [Controller, attributes, nova_server_resource]}
839 CephStorageCephDeployment:
840 type: OS::Heat::StructuredDeployments
842 config: {get_attr: [CephClusterConfig, config_id]}
843 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
846 type: OS::TripleO::CephClusterConfig::SoftwareConfig
848 ceph_fsid: {get_param: CephClusterFSID}
849 ceph_mon_key: {get_param: CephMonKey}
850 ceph_admin_key: {get_param: CephAdminKey}
851 ceph_mon_names: {get_attr: [Controller, hostname]}
852 ceph_mon_ips: {get_attr: [Controller, ip_address]}
854 ControllerClusterConfig:
855 type: OS::Heat::StructuredConfig
857 group: os-apply-config
860 nodes: {get_attr: [Controller, corosync_node]}
864 nodes: {get_attr: [Controller, hostname]}
866 nodes: {get_attr: [Controller, corosync_node]}
868 nodes: {get_attr: [Controller, corosync_node]}
870 ControllerClusterDeployment:
871 type: OS::Heat::StructuredDeployments
873 config: {get_resource: ControllerClusterConfig}
874 servers: {get_attr: [Controller, attributes, nova_server_resource]}
876 ControllerAllNodesDeployment:
877 type: OS::Heat::StructuredDeployments
879 config: {get_attr: [allNodesConfig, config_id]}
880 servers: {get_attr: [Controller, attributes, nova_server_resource]}
882 ComputeAllNodesDeployment:
883 type: OS::Heat::StructuredDeployments
885 config: {get_attr: [allNodesConfig, config_id]}
886 servers: {get_attr: [Compute, attributes, nova_server_resource]}
888 BlockStorageAllNodesDeployment:
889 type: OS::Heat::StructuredDeployments
891 config: {get_attr: [allNodesConfig, config_id]}
892 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
894 ObjectStorageAllNodesDeployment:
895 type: OS::Heat::StructuredDeployments
897 config: {get_attr: [allNodesConfig, config_id]}
898 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
900 CephStorageAllNodesDeployment:
901 type: OS::Heat::StructuredDeployments
903 config: {get_attr: [allNodesConfig, config_id]}
904 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
906 # Nested stack deployment runs after all other controller deployments
907 ControllerNodesPostDeployment:
908 type: OS::TripleO::ControllerPostDeployment
909 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
911 servers: {get_attr: [Controller, attributes, nova_server_resource]}
913 ComputeNodesPostDeployment:
914 type: OS::TripleO::ComputePostDeployment
915 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
917 servers: {get_attr: [Compute, attributes, nova_server_resource]}
919 ObjectStorageNodesPostDeployment:
920 type: OS::TripleO::ObjectStoragePostDeployment
921 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
923 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
925 BlockStorageNodesPostDeployment:
926 type: OS::TripleO::BlockStoragePostDeployment
927 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
929 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
931 CephStorageNodesPostDeployment:
932 type: OS::TripleO::CephStoragePostDeployment
933 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
935 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
939 description: URL for the Overcloud Keystone service
944 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}