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. Must be a UUID.
35 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
39 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-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.
186 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
189 description: The username for RabbitMQ
193 description: The password for RabbitMQ
199 Rabbit client subscriber parameter to specify
200 an SSL connection to the RabbitMQ host.
204 description: Set rabbit subscriber port, change this if using SSL
206 SnmpdReadonlyUserName:
207 default: ro_snmp_user
208 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
210 SnmpdReadonlyUserPassword:
212 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
216 # Controller-specific params
219 description: The keystone auth secret.
222 CinderEnableRbdBackend:
224 description: Whether to enable or not the Rbd backend for Cinder
226 CinderLVMLoopDeviceSize:
228 description: The size of the loopback file used by the cinder LVM driver.
232 description: The password for the cinder service account, used by cinder-api.
237 description: The iSCSI helper to use with cinder.
242 controllerExtraConfig:
245 Controller specific configuration to inject into the cluster. Same
246 structure as ExtraConfig.
250 default: overcloud-control
252 - custom_constraint: glance.image
253 OvercloudControlFlavor:
254 description: Flavor for control nodes to request when deploying.
257 - custom_constraint: nova.flavor
258 ControlVirtualInterface:
260 description: Interface where virtual ip will be assigned.
264 description: Whether to use Galera instead of regular MariaDB.
268 description: If enabled services will be monitored by Pacemaker; it
269 will manage VIPs as well, in place of Keepalived.
271 ControllerEnableCephStorage:
273 description: Whether to deploy Ceph Storage (OSD) on the Controller
275 ControllerEnableSwiftStorage:
277 description: Whether to enable Swift Storage on the Controller
282 Additional configuration to inject into the cluster. The JSON should have
283 the following structure:
286 [{"section": "SECTIONNAME",
288 [{"option": "OPTIONNAME",
299 [{"section": "default",
301 [{"option": "force_config_drive",
308 [{"option": "driver",
309 "value": "nova.cells.rpc_driver.CellsRPCDriver"
318 description: The filepath of the file to use for logging messages from Glance.
321 GlanceNotifierStrategy:
322 description: Strategy to use for Glance notification queue
327 description: The password for the glance service account, used by the glance services.
332 description: The short name of the Glance backend to use. Should be one
333 of swift, rbd or file
336 - allowed_values: ['swift', 'file', 'rbd']
339 description: The password for the Heat service account, used by the Heat services.
342 HeatStackDomainAdminPassword:
343 description: Password for heat_domain_admin user.
347 KeystoneCACertificate:
349 description: Keystone self-signed certificate authority certificate.
351 KeystoneSigningCertificate:
353 description: Keystone certificate for verifying token validity.
357 description: Keystone key for signing tokens.
360 KeystoneSSLCertificate:
362 description: Keystone certificate for verifying token validity.
364 KeystoneSSLCertificateKey:
366 description: Keystone key for signing tokens.
369 MysqlInnodbBufferPoolSize:
371 Specifies the size of the buffer pool in megabytes. Setting to
372 zero should be interpreted as "no value" and will defer to the
376 NeutronDnsmasqOptions:
377 default: 'dhcp-option-force=26,1400'
378 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
380 NeutronPublicInterfaceDefaultRoute:
382 description: A custom default route for the NeutronPublicInterface.
384 NeutronPublicInterfaceIP:
386 description: A custom IP address to put onto the NeutronPublicInterface.
388 NeutronPublicInterfaceRawDevice:
390 description: If set, the public interface is a vlan with this device as the raw device.
392 PublicVirtualInterface:
395 Specifies the interface where the public-facing virtual ip will be assigned.
396 This should be int_public when a VLAN is being used.
400 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
405 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
410 description: If set, the contents of an SSL certificate authority file.
414 description: A random string to be used as a salt when hashing to determine mappings in the ring.
419 description: The password for the swift service account, used by the swift proxy services.
424 description: Value of mount_check in Swift account/container/object -server.conf
429 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
432 description: Partition Power to use when building Swift rings
437 description: How many replicas to use in the swift rings.
439 # Compute-specific params
440 CeilometerComputeAgent:
441 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
445 - allowed_values: ['', Present]
449 HypervisorNeutronPhysicalBridge:
452 An OVS bridge to create on each hypervisor. This defaults to br-ex the
453 same as the control plane nodes, as we have a uniform configuration of
454 the openvswitch agent. Typically should not need to be changed.
456 HypervisorNeutronPublicInterface:
458 description: What interface to add to the HypervisorNeutronPhysicalBridge.
460 NeutronNetworkVLANRanges:
461 default: 'datacentre'
463 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
464 Neutron documentation for permitted values. Defaults to permitting any
465 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
469 default: libvirt.LibvirtDriver
470 NovaComputeExtraConfig:
473 NovaCompute specific configuration to inject into the cluster. Same
474 structure as ExtraConfig.
476 NovaComputeLibvirtType:
479 NovaEnableRbdBackend:
481 description: Whether to enable or not the Rbd backend for Nova
485 default: overcloud-compute
487 - custom_constraint: glance.image
488 OvercloudComputeFlavor:
489 description: Use this flavor
492 - custom_constraint: nova.flavor
494 # Block storage specific parameters
499 default: overcloud-cinder-volume
501 OvercloudBlockStorageFlavor:
502 description: Flavor for block storage nodes to request when deploying.
505 - custom_constraint: nova.flavor
507 # Object storage specific parameters
511 OvercloudSwiftStorageFlavor:
512 description: Flavor for Swift storage nodes to request when deploying.
515 - custom_constraint: nova.flavor
517 default: overcloud-swift-storage
520 # Ceph storage specific parameters
525 default: overcloud-ceph-storage
527 OvercloudCephStorageFlavor:
529 description: Flavor for Ceph storage nodes to request when deploying.
532 - custom_constraint: nova.flavor
536 HeatAuthEncryptionKey:
537 type: OS::Heat::RandomString
540 type: OS::Heat::RandomString
545 type: OS::Heat::ResourceGroup
547 count: {get_param: ControllerCount}
549 type: OS::TripleO::Controller
551 AdminPassword: {get_param: AdminPassword}
552 AdminToken: {get_param: AdminToken}
553 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
554 CeilometerPassword: {get_param: CeilometerPassword}
555 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
556 CinderPassword: {get_param: CinderPassword}
557 CinderISCSIHelper: {get_param: CinderISCSIHelper}
558 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
559 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
560 CloudName: {get_param: CloudName}
561 ControlVirtualInterface: {get_param: ControlVirtualInterface}
562 ControllerExtraConfig: {get_param: controllerExtraConfig}
563 Debug: {get_param: Debug}
564 EnableGalera: {get_param: EnableGalera}
565 EnablePacemaker: {get_param: EnablePacemaker}
566 EnableCephStorage: {get_param: ControllerEnableCephStorage}
567 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
568 ExtraConfig: {get_param: ExtraConfig}
569 Flavor: {get_param: OvercloudControlFlavor}
570 GlancePort: {get_param: GlancePort}
571 GlanceProtocol: {get_param: GlanceProtocol}
572 GlancePassword: {get_param: GlancePassword}
573 GlanceBackend: {get_param: GlanceBackend}
574 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
575 GlanceLogFile: {get_param: GlanceLogFile}
576 HeatPassword: {get_param: HeatPassword}
577 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
578 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
579 Image: {get_param: controllerImage}
580 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
581 KeyName: {get_param: KeyName}
582 KeystoneCACertificate: {get_param: KeystoneCACertificate}
583 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
584 KeystoneSigningKey: {get_param: KeystoneSigningKey}
585 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
586 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
587 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
588 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
589 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
590 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
591 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
592 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
593 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
594 NeutronPublicInterface: {get_param: NeutronPublicInterface}
595 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
596 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
597 NeutronPassword: {get_param: NeutronPassword}
598 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
599 NeutronDVR: {get_param: NeutronDVR}
600 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
601 NeutronAgentMode: {get_param: NeutronAgentMode}
602 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
603 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
604 NeutronL3HA: {get_param: NeutronL3HA}
605 NeutronNetworkType: {get_param: NeutronNetworkType}
606 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
607 NovaPassword: {get_param: NovaPassword}
608 NtpServer: {get_param: NtpServer}
609 PcsdPassword: {get_resource: PcsdPassword}
610 PublicVirtualInterface: {get_param: PublicVirtualInterface}
611 RabbitPassword: {get_param: RabbitPassword}
612 RabbitUserName: {get_param: RabbitUserName}
613 RabbitCookie: {get_attr: [RabbitCookie, value]}
614 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
615 RabbitClientPort: {get_param: RabbitClientPort}
616 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
617 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
618 SSLCertificate: {get_param: SSLCertificate}
619 SSLKey: {get_param: SSLKey}
620 SSLCACertificate: {get_param: SSLCACertificate}
621 SwiftHashSuffix: {get_param: SwiftHashSuffix}
622 SwiftMountCheck: {get_param: SwiftMountCheck}
623 SwiftMinPartHours: {get_param: SwiftMinPartHours}
624 SwiftPartPower: {get_param: SwiftPartPower}
625 SwiftPassword: {get_param: SwiftPassword}
626 SwiftReplicas: { get_param: SwiftReplicas}
627 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
628 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
631 type: OS::Heat::ResourceGroup
633 count: {get_param: ComputeCount}
635 type: OS::TripleO::Compute
637 AdminPassword: {get_param: AdminPassword}
638 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
639 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
640 CeilometerPassword: {get_param: CeilometerPassword}
641 Debug: {get_param: Debug}
642 ExtraConfig: {get_param: ExtraConfig}
643 Flavor: {get_param: OvercloudComputeFlavor}
644 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
645 GlancePort: {get_param: GlancePort}
646 GlanceProtocol: {get_param: GlanceProtocol}
647 Image: {get_param: NovaImage}
648 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
649 KeyName: {get_param: KeyName}
650 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
651 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
652 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
653 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
654 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
655 NeutronNetworkType: {get_param: NeutronNetworkType}
656 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
657 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
658 NeutronPassword: {get_param: NeutronPassword}
659 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
660 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
661 NeutronDVR: {get_param: NeutronDVR}
662 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
663 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
664 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
665 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
666 # L3 HA and Failover is not relevant for Computes, should be removed
667 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
668 NeutronL3HA: {get_param: NeutronL3HA}
669 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
670 NovaComputeDriver: {get_param: NovaComputeDriver}
671 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
672 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
673 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
674 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
675 NovaPassword: {get_param: NovaPassword}
676 NtpServer: {get_param: NtpServer}
677 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
678 RabbitPassword: {get_param: RabbitPassword}
679 RabbitUserName: {get_param: RabbitUserName}
680 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
681 RabbitClientPort: {get_param: RabbitClientPort}
682 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
683 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
686 type: OS::Heat::ResourceGroup
688 count: {get_param: BlockStorageCount}
690 type: OS::TripleO::BlockStorage
692 Debug: {get_param: Debug}
693 Image: {get_param: BlockStorageImage}
694 CinderISCSIHelper: {get_param: CinderISCSIHelper}
695 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
696 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
697 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
698 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
699 KeyName: {get_param: KeyName}
700 Flavor: {get_param: OvercloudBlockStorageFlavor}
701 RabbitPassword: {get_param: RabbitPassword}
702 RabbitUserName: {get_param: RabbitUserName}
703 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
704 RabbitClientPort: {get_param: RabbitClientPort}
705 NtpServer: {get_param: NtpServer}
708 type: OS::Heat::ResourceGroup
710 count: {get_param: ObjectStorageCount}
712 type: OS::TripleO::ObjectStorage
714 KeyName: {get_param: KeyName}
715 Flavor: {get_param: OvercloudSwiftStorageFlavor}
716 HashSuffix: {get_param: SwiftHashSuffix}
717 MountCheck: {get_param: SwiftMountCheck}
718 MinPartHours: {get_param: SwiftMinPartHours}
719 PartPower: {get_param: SwiftPartPower}
720 Image: {get_param: SwiftStorageImage}
721 Replicas: { get_param: SwiftReplicas}
722 NtpServer: {get_param: NtpServer}
725 type: OS::Heat::ResourceGroup
727 count: {get_param: CephStorageCount}
729 type: OS::TripleO::CephStorage
731 Image: {get_param: CephStorageImage}
732 KeyName: {get_param: KeyName}
733 Flavor: {get_param: OvercloudCephStorageFlavor}
734 NtpServer: {get_param: NtpServer}
737 type: OS::TripleO::AllNodes::SoftwareConfig
739 compute_hosts: {get_attr: [Compute, hosts_entry]}
740 controller_hosts: {get_attr: [Controller, hosts_entry]}
741 controller_ips: {get_attr: [Controller, ip_address]}
742 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
743 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
744 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
745 controller_names: {get_attr: [Controller, hostname]}
748 type: OS::Heat::RandomString
752 MysqlClusterUniquePart:
753 type: OS::Heat::RandomString
758 type: OS::Heat::RandomString
761 salt: {get_param: RabbitCookieSalt}
764 type: OS::Neutron::Port
766 name: control_virtual_ip
767 network_id: {get_param: NeutronControlPlaneID}
768 fixed_ips: {get_param: ControlFixedIPs}
769 replacement_policy: AUTO
772 type: OS::Neutron::Port
774 name: public_virtual_ip
775 network: {get_param: PublicVirtualNetwork}
776 fixed_ips: {get_param: PublicVirtualFixedIPs}
777 replacement_policy: AUTO
779 ControllerBootstrapNodeConfig:
780 type: OS::TripleO::BootstrapNode::SoftwareConfig
782 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
783 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
785 ControllerBootstrapNodeDeployment:
786 type: OS::Heat::StructuredDeployments
788 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
789 servers: {get_attr: [Controller, attributes, nova_server_resource]}
790 signal_transport: NO_SIGNAL
792 ControllerSwiftDeployment:
793 type: OS::Heat::StructuredDeployments
795 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
796 servers: {get_attr: [Controller, attributes, nova_server_resource]}
797 signal_transport: NO_SIGNAL
799 ObjectStorageSwiftDeployment:
800 type: OS::Heat::StructuredDeployments
802 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
803 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
804 signal_transport: NO_SIGNAL
806 SwiftDevicesAndProxyConfig:
807 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
809 controller_swift_devices: {get_attr: [Controller, swift_device]}
810 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
811 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
813 ComputeCephDeployment:
814 type: OS::Heat::StructuredDeployments
816 config: {get_attr: [CephClusterConfig, config_id]}
817 servers: {get_attr: [Compute, attributes, nova_server_resource]}
819 ControllerCephDeployment:
820 type: OS::Heat::StructuredDeployments
822 config: {get_attr: [CephClusterConfig, config_id]}
823 servers: {get_attr: [Controller, attributes, nova_server_resource]}
825 CephStorageCephDeployment:
826 type: OS::Heat::StructuredDeployments
828 config: {get_attr: [CephClusterConfig, config_id]}
829 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
832 type: OS::TripleO::CephClusterConfig::SoftwareConfig
834 ceph_fsid: {get_param: CephClusterFSID}
835 ceph_mon_key: {get_param: CephMonKey}
836 ceph_admin_key: {get_param: CephAdminKey}
837 ceph_mon_names: {get_attr: [Controller, hostname]}
838 ceph_mon_ips: {get_attr: [Controller, ip_address]}
840 ControllerClusterConfig:
841 type: OS::Heat::StructuredConfig
845 nodes: {get_attr: [Controller, corosync_node]}
849 nodes: {get_attr: [Controller, hostname]}
851 nodes: {get_attr: [Controller, corosync_node]}
853 nodes: {get_attr: [Controller, corosync_node]}
855 ControllerClusterDeployment:
856 type: OS::Heat::StructuredDeployments
858 config: {get_resource: ControllerClusterConfig}
859 servers: {get_attr: [Controller, attributes, nova_server_resource]}
860 signal_transport: NO_SIGNAL
862 ControllerAllNodesDeployment:
863 type: OS::Heat::StructuredDeployments
865 config: {get_attr: [allNodesConfig, config_id]}
866 servers: {get_attr: [Controller, attributes, nova_server_resource]}
868 ComputeAllNodesDeployment:
869 type: OS::Heat::StructuredDeployments
871 config: {get_attr: [allNodesConfig, config_id]}
872 servers: {get_attr: [Compute, attributes, nova_server_resource]}
874 BlockStorageAllNodesDeployment:
875 type: OS::Heat::StructuredDeployments
877 config: {get_attr: [allNodesConfig, config_id]}
878 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
880 ObjectStorageAllNodesDeployment:
881 type: OS::Heat::StructuredDeployments
883 config: {get_attr: [allNodesConfig, config_id]}
884 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
886 CephStorageAllNodesDeployment:
887 type: OS::Heat::StructuredDeployments
889 config: {get_attr: [allNodesConfig, config_id]}
890 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
892 # Nested stack deployment runs after all other controller deployments
893 ControllerNodesPostDeployment:
894 type: OS::TripleO::ControllerPostDeployment
895 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
897 servers: {get_attr: [Controller, attributes, nova_server_resource]}
899 ComputeNodesPostDeployment:
900 type: OS::TripleO::ComputePostDeployment
901 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
903 servers: {get_attr: [Compute, attributes, nova_server_resource]}
905 ObjectStorageNodesPostDeployment:
906 type: OS::TripleO::ObjectStoragePostDeployment
907 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
909 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
911 BlockStorageNodesPostDeployment:
912 type: OS::TripleO::BlockStoragePostDeployment
913 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
915 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
917 CephStorageNodesPostDeployment:
918 type: OS::TripleO::CephStoragePostDeployment
919 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
921 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
925 description: URL for the Overcloud Keystone service
930 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}