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.
61 DefaultSignalTransport:
63 description: Transport to use for software-config signals.
66 - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
69 description: Glance port.
73 description: Protocol to use when connecting to glance, set to https for SSL.
76 default: 'REBUILD_PRESERVE_EPHEMERAL'
77 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
81 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
84 - custom_constraint: nova.keypair
85 NeutronBridgeMappings:
87 The OVS logical->physical bridge mappings to use. See the Neutron
88 documentation for details. Defaults to mapping br-ex - the external
89 bridge on hosts - to a physical name 'datacentre' which can be used
90 to create provider networks (and we use this for the default floating
91 network) - if changing this either use different post-install network
92 scripts or be sure to keep 'datacentre' as a mapping network name.
94 default: "datacentre:br-ex"
95 NeutronControlPlaneID:
98 description: Neutron ID for ctlplane network.
99 NeutronEnableTunnelling:
104 default: 'datacentre'
106 If set, flat networks to configure in neutron plugins. Defaults to
107 'datacentre' to permit external network creation.
110 description: The tenant network type for Neutron, either gre or vxlan.
114 description: The password for the neutron service account, used by neutron agents.
117 NeutronPublicInterface:
119 description: What interface to bridge onto br-ex for network nodes.
121 NeutronPublicInterfaceTag:
124 VLAN tag for creating a public VLAN. The tag will be used to
125 create an access port on the exterior bridge for each control plane node,
126 and that port will be given the IP address returned by neutron from the
127 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
128 overcloud.yaml to include the deployment of VLAN ports to the control
131 NeutronComputeAgentMode:
133 description: Agent mode for the neutron-l3-agent on the compute hosts
137 description: Agent mode for the neutron-l3-agent on the controller hosts
141 description: Whether to configure Neutron Distributed Virtual Routers
143 NeutronMetadataProxySharedSecret:
145 description: Shared secret to prevent spoofing
150 The tunnel types for the Neutron tenant network. To specify multiple
151 values, use a comma separated string, like so: 'gre,vxlan'
153 NeutronMechanismDrivers:
154 default: 'openvswitch'
156 The mechanism drivers for the Neutron tenant network. To specify multiple
157 values, use a comma separated string, like so: 'openvswitch,l2_population'
159 NeutronAllowL3AgentFailover:
161 description: Allow automatic l3-agent failover
165 description: Whether to enable l3-agent HA
169 description: The password for the nova service account, used by nova-api.
175 PublicVirtualFixedIPs:
178 Control the IP allocation for the PublicVirtualInterface port. E.g.
179 [{'ip_address':'1.2.3.4'}]
181 PublicVirtualNetwork:
185 Neutron network to allocate public virtual IP port on.
189 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
190 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
193 description: The username for RabbitMQ
197 description: The password for RabbitMQ
203 Rabbit client subscriber parameter to specify
204 an SSL connection to the RabbitMQ host.
208 description: Set rabbit subscriber port, change this if using SSL
210 SnmpdReadonlyUserName:
211 default: ro_snmp_user
212 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
214 SnmpdReadonlyUserPassword:
216 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
220 # Controller-specific params
223 description: The keystone auth secret.
226 CinderEnableRbdBackend:
228 description: Whether to enable or not the Rbd backend for Cinder
230 CinderLVMLoopDeviceSize:
232 description: The size of the loopback file used by the cinder LVM driver.
236 description: The password for the cinder service account, used by cinder-api.
241 description: The iSCSI helper to use with cinder.
246 controllerExtraConfig:
249 Controller specific configuration to inject into the cluster. Same
250 structure as ExtraConfig.
254 default: overcloud-control
256 - custom_constraint: glance.image
257 OvercloudControlFlavor:
258 description: Flavor for control nodes to request when deploying.
261 - custom_constraint: nova.flavor
262 ControlVirtualInterface:
264 description: Interface where virtual ip will be assigned.
268 description: Whether to use Galera instead of regular MariaDB.
272 description: If enabled services will be monitored by Pacemaker; it
273 will manage VIPs as well, in place of Keepalived.
275 ControllerEnableCephStorage:
277 description: Whether to deploy Ceph Storage (OSD) on the Controller
279 ControllerEnableSwiftStorage:
281 description: Whether to enable Swift Storage on the Controller
286 Additional configuration to inject into the cluster. The JSON should have
287 the following structure:
290 [{"section": "SECTIONNAME",
292 [{"option": "OPTIONNAME",
303 [{"section": "default",
305 [{"option": "force_config_drive",
312 [{"option": "driver",
313 "value": "nova.cells.rpc_driver.CellsRPCDriver"
322 description: The filepath of the file to use for logging messages from Glance.
325 GlanceNotifierStrategy:
326 description: Strategy to use for Glance notification queue
331 description: The password for the glance service account, used by the glance services.
336 description: The short name of the Glance backend to use. Should be one
337 of swift, rbd or file
340 - allowed_values: ['swift', 'file', 'rbd']
343 description: The password for the Heat service account, used by the Heat services.
346 HeatStackDomainAdminPassword:
347 description: Password for heat_domain_admin user.
351 KeystoneCACertificate:
353 description: Keystone self-signed certificate authority certificate.
355 KeystoneSigningCertificate:
357 description: Keystone certificate for verifying token validity.
361 description: Keystone key for signing tokens.
364 KeystoneSSLCertificate:
366 description: Keystone certificate for verifying token validity.
368 KeystoneSSLCertificateKey:
370 description: Keystone key for signing tokens.
373 MysqlInnodbBufferPoolSize:
375 Specifies the size of the buffer pool in megabytes. Setting to
376 zero should be interpreted as "no value" and will defer to the
380 NeutronDnsmasqOptions:
381 default: 'dhcp-option-force=26,1400'
382 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
384 NeutronPublicInterfaceDefaultRoute:
386 description: A custom default route for the NeutronPublicInterface.
388 NeutronPublicInterfaceIP:
390 description: A custom IP address to put onto the NeutronPublicInterface.
392 NeutronPublicInterfaceRawDevice:
394 description: If set, the public interface is a vlan with this device as the raw device.
396 PublicVirtualInterface:
399 Specifies the interface where the public-facing virtual ip will be assigned.
400 This should be int_public when a VLAN is being used.
404 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
409 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
414 description: If set, the contents of an SSL certificate authority file.
418 description: A random string to be used as a salt when hashing to determine mappings in the ring.
423 description: The password for the swift service account, used by the swift proxy services.
428 description: Value of mount_check in Swift account/container/object -server.conf
433 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
436 description: Partition Power to use when building Swift rings
441 description: How many replicas to use in the swift rings.
443 # Compute-specific params
444 CeilometerComputeAgent:
445 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
449 - allowed_values: ['', Present]
453 HypervisorNeutronPhysicalBridge:
456 An OVS bridge to create on each hypervisor. This defaults to br-ex the
457 same as the control plane nodes, as we have a uniform configuration of
458 the openvswitch agent. Typically should not need to be changed.
460 HypervisorNeutronPublicInterface:
462 description: What interface to add to the HypervisorNeutronPhysicalBridge.
464 NeutronNetworkVLANRanges:
465 default: 'datacentre'
467 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
468 Neutron documentation for permitted values. Defaults to permitting any
469 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
473 default: libvirt.LibvirtDriver
474 NovaComputeExtraConfig:
477 NovaCompute specific configuration to inject into the cluster. Same
478 structure as ExtraConfig.
480 NovaComputeLibvirtType:
483 NovaEnableRbdBackend:
485 description: Whether to enable or not the Rbd backend for Nova
489 default: overcloud-compute
491 - custom_constraint: glance.image
492 OvercloudComputeFlavor:
493 description: Use this flavor
496 - custom_constraint: nova.flavor
498 # Block storage specific parameters
503 default: overcloud-cinder-volume
505 OvercloudBlockStorageFlavor:
506 description: Flavor for block storage nodes to request when deploying.
509 - custom_constraint: nova.flavor
511 # Object storage specific parameters
515 OvercloudSwiftStorageFlavor:
516 description: Flavor for Swift storage nodes to request when deploying.
519 - custom_constraint: nova.flavor
521 default: overcloud-swift-storage
524 # Ceph storage specific parameters
529 default: overcloud-ceph-storage
531 OvercloudCephStorageFlavor:
533 description: Flavor for Ceph storage nodes to request when deploying.
536 - custom_constraint: nova.flavor
540 HeatAuthEncryptionKey:
541 type: OS::Heat::RandomString
544 type: OS::Heat::RandomString
549 type: OS::Heat::RandomString
554 type: OS::Heat::ResourceGroup
557 count: {get_param: ControllerCount}
559 type: OS::TripleO::Controller
561 AdminPassword: {get_param: AdminPassword}
562 AdminToken: {get_param: AdminToken}
563 CeilometerBackend: {get_param: CeilometerBackend}
564 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
565 CeilometerPassword: {get_param: CeilometerPassword}
566 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
567 CinderPassword: {get_param: CinderPassword}
568 CinderISCSIHelper: {get_param: CinderISCSIHelper}
569 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
570 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
571 CloudName: {get_param: CloudName}
572 ControlVirtualInterface: {get_param: ControlVirtualInterface}
573 ControllerExtraConfig: {get_param: controllerExtraConfig}
574 Debug: {get_param: Debug}
575 EnableGalera: {get_param: EnableGalera}
576 EnablePacemaker: {get_param: EnablePacemaker}
577 EnableCephStorage: {get_param: ControllerEnableCephStorage}
578 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
579 ExtraConfig: {get_param: ExtraConfig}
580 Flavor: {get_param: OvercloudControlFlavor}
581 GlancePort: {get_param: GlancePort}
582 GlanceProtocol: {get_param: GlanceProtocol}
583 GlancePassword: {get_param: GlancePassword}
584 GlanceBackend: {get_param: GlanceBackend}
585 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
586 GlanceLogFile: {get_param: GlanceLogFile}
587 HeatPassword: {get_param: HeatPassword}
588 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
589 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
590 HorizonSecret: {get_resource: HorizonSecret}
591 Image: {get_param: controllerImage}
592 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
593 KeyName: {get_param: KeyName}
594 KeystoneCACertificate: {get_param: KeystoneCACertificate}
595 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
596 KeystoneSigningKey: {get_param: KeystoneSigningKey}
597 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
598 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
599 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
600 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
601 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
602 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
603 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
604 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
605 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
606 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
607 NeutronPublicInterface: {get_param: NeutronPublicInterface}
608 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
609 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
610 NeutronPassword: {get_param: NeutronPassword}
611 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
612 NeutronDVR: {get_param: NeutronDVR}
613 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
614 NeutronAgentMode: {get_param: NeutronAgentMode}
615 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
616 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
617 NeutronL3HA: {get_param: NeutronL3HA}
618 NeutronNetworkType: {get_param: NeutronNetworkType}
619 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
620 NovaPassword: {get_param: NovaPassword}
621 NtpServer: {get_param: NtpServer}
622 PcsdPassword: {get_resource: PcsdPassword}
623 PublicVirtualInterface: {get_param: PublicVirtualInterface}
624 RabbitPassword: {get_param: RabbitPassword}
625 RabbitUserName: {get_param: RabbitUserName}
626 RabbitCookie: {get_attr: [RabbitCookie, value]}
627 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
628 RabbitClientPort: {get_param: RabbitClientPort}
629 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
630 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
631 SSLCertificate: {get_param: SSLCertificate}
632 SSLKey: {get_param: SSLKey}
633 SSLCACertificate: {get_param: SSLCACertificate}
634 SwiftHashSuffix: {get_param: SwiftHashSuffix}
635 SwiftMountCheck: {get_param: SwiftMountCheck}
636 SwiftMinPartHours: {get_param: SwiftMinPartHours}
637 SwiftPartPower: {get_param: SwiftPartPower}
638 SwiftPassword: {get_param: SwiftPassword}
639 SwiftReplicas: { get_param: SwiftReplicas}
640 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
641 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
644 type: OS::Heat::ResourceGroup
647 count: {get_param: ComputeCount}
649 type: OS::TripleO::Compute
651 AdminPassword: {get_param: AdminPassword}
652 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
653 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
654 CeilometerPassword: {get_param: CeilometerPassword}
655 Debug: {get_param: Debug}
656 ExtraConfig: {get_param: ExtraConfig}
657 Flavor: {get_param: OvercloudComputeFlavor}
658 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
659 GlancePort: {get_param: GlancePort}
660 GlanceProtocol: {get_param: GlanceProtocol}
661 Image: {get_param: NovaImage}
662 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
663 KeyName: {get_param: KeyName}
664 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
665 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
666 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
667 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
668 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
669 NeutronNetworkType: {get_param: NeutronNetworkType}
670 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
671 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
672 NeutronPassword: {get_param: NeutronPassword}
673 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
674 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
675 NeutronDVR: {get_param: NeutronDVR}
676 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
677 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
678 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
679 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
680 # L3 HA and Failover is not relevant for Computes, should be removed
681 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
682 NeutronL3HA: {get_param: NeutronL3HA}
683 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
684 NovaComputeDriver: {get_param: NovaComputeDriver}
685 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
686 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
687 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
688 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
689 NovaPassword: {get_param: NovaPassword}
690 NtpServer: {get_param: NtpServer}
691 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
692 RabbitPassword: {get_param: RabbitPassword}
693 RabbitUserName: {get_param: RabbitUserName}
694 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
695 RabbitClientPort: {get_param: RabbitClientPort}
696 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
697 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
700 type: OS::Heat::ResourceGroup
703 count: {get_param: BlockStorageCount}
705 type: OS::TripleO::BlockStorage
707 Debug: {get_param: Debug}
708 Image: {get_param: BlockStorageImage}
709 CinderISCSIHelper: {get_param: CinderISCSIHelper}
710 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
711 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
712 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
713 CinderPassword: {get_param: CinderPassword}
714 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
715 KeyName: {get_param: KeyName}
716 Flavor: {get_param: OvercloudBlockStorageFlavor}
717 RabbitPassword: {get_param: RabbitPassword}
718 RabbitUserName: {get_param: RabbitUserName}
719 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
720 RabbitClientPort: {get_param: RabbitClientPort}
721 NtpServer: {get_param: NtpServer}
724 type: OS::Heat::ResourceGroup
727 count: {get_param: ObjectStorageCount}
729 type: OS::TripleO::ObjectStorage
731 KeyName: {get_param: KeyName}
732 Flavor: {get_param: OvercloudSwiftStorageFlavor}
733 HashSuffix: {get_param: SwiftHashSuffix}
734 MountCheck: {get_param: SwiftMountCheck}
735 MinPartHours: {get_param: SwiftMinPartHours}
736 PartPower: {get_param: SwiftPartPower}
737 Image: {get_param: SwiftStorageImage}
738 Replicas: { get_param: SwiftReplicas}
739 NtpServer: {get_param: NtpServer}
742 type: OS::Heat::ResourceGroup
745 count: {get_param: CephStorageCount}
747 type: OS::TripleO::CephStorage
749 Image: {get_param: CephStorageImage}
750 KeyName: {get_param: KeyName}
751 Flavor: {get_param: OvercloudCephStorageFlavor}
752 NtpServer: {get_param: NtpServer}
755 type: OS::TripleO::AllNodes::SoftwareConfig
757 compute_hosts: {get_attr: [Compute, hosts_entry]}
758 controller_hosts: {get_attr: [Controller, hosts_entry]}
759 controller_ips: {get_attr: [Controller, ip_address]}
760 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
761 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
762 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
763 controller_names: {get_attr: [Controller, hostname]}
766 type: OS::Heat::RandomString
770 MysqlClusterUniquePart:
771 type: OS::Heat::RandomString
776 type: OS::Heat::RandomString
779 salt: {get_param: RabbitCookieSalt}
781 # creates the network architecture
783 type: OS::TripleO::Network
786 type: OS::Neutron::Port
789 name: control_virtual_ip
790 network_id: {get_param: NeutronControlPlaneID}
791 fixed_ips: {get_param: ControlFixedIPs}
792 replacement_policy: AUTO
795 type: OS::Neutron::Port
798 name: public_virtual_ip
799 network: {get_param: PublicVirtualNetwork}
800 fixed_ips: {get_param: PublicVirtualFixedIPs}
801 replacement_policy: AUTO
803 ControllerBootstrapNodeConfig:
804 type: OS::TripleO::BootstrapNode::SoftwareConfig
806 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
807 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
809 ControllerBootstrapNodeDeployment:
810 type: OS::Heat::StructuredDeployments
812 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
813 servers: {get_attr: [Controller, attributes, nova_server_resource]}
814 signal_transport: NO_SIGNAL
816 ControllerSwiftDeployment:
817 type: OS::Heat::StructuredDeployments
819 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
820 servers: {get_attr: [Controller, attributes, nova_server_resource]}
821 signal_transport: NO_SIGNAL
823 ObjectStorageSwiftDeployment:
824 type: OS::Heat::StructuredDeployments
826 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
827 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
828 signal_transport: NO_SIGNAL
830 SwiftDevicesAndProxyConfig:
831 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
833 controller_swift_devices: {get_attr: [Controller, swift_device]}
834 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
835 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
837 ComputeCephDeployment:
838 type: OS::Heat::StructuredDeployments
840 config: {get_attr: [CephClusterConfig, config_id]}
841 servers: {get_attr: [Compute, attributes, nova_server_resource]}
843 ControllerCephDeployment:
844 type: OS::Heat::StructuredDeployments
846 config: {get_attr: [CephClusterConfig, config_id]}
847 servers: {get_attr: [Controller, attributes, nova_server_resource]}
849 CephStorageCephDeployment:
850 type: OS::Heat::StructuredDeployments
852 config: {get_attr: [CephClusterConfig, config_id]}
853 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
856 type: OS::TripleO::CephClusterConfig::SoftwareConfig
858 ceph_fsid: {get_param: CephClusterFSID}
859 ceph_mon_key: {get_param: CephMonKey}
860 ceph_admin_key: {get_param: CephAdminKey}
861 ceph_mon_names: {get_attr: [Controller, hostname]}
862 ceph_mon_ips: {get_attr: [Controller, ip_address]}
864 ControllerClusterConfig:
865 type: OS::Heat::StructuredConfig
869 nodes: {get_attr: [Controller, corosync_node]}
873 nodes: {get_attr: [Controller, hostname]}
875 nodes: {get_attr: [Controller, corosync_node]}
877 nodes: {get_attr: [Controller, corosync_node]}
879 ControllerClusterDeployment:
880 type: OS::Heat::StructuredDeployments
882 config: {get_resource: ControllerClusterConfig}
883 servers: {get_attr: [Controller, attributes, nova_server_resource]}
884 signal_transport: NO_SIGNAL
886 ControllerAllNodesDeployment:
887 type: OS::Heat::StructuredDeployments
889 config: {get_attr: [allNodesConfig, config_id]}
890 servers: {get_attr: [Controller, attributes, nova_server_resource]}
892 ComputeAllNodesDeployment:
893 type: OS::Heat::StructuredDeployments
895 config: {get_attr: [allNodesConfig, config_id]}
896 servers: {get_attr: [Compute, attributes, nova_server_resource]}
898 BlockStorageAllNodesDeployment:
899 type: OS::Heat::StructuredDeployments
901 config: {get_attr: [allNodesConfig, config_id]}
902 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
904 ObjectStorageAllNodesDeployment:
905 type: OS::Heat::StructuredDeployments
907 config: {get_attr: [allNodesConfig, config_id]}
908 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
910 CephStorageAllNodesDeployment:
911 type: OS::Heat::StructuredDeployments
913 config: {get_attr: [allNodesConfig, config_id]}
914 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
916 # Nested stack deployment runs after all other controller deployments
917 ControllerNodesPostDeployment:
918 type: OS::TripleO::ControllerPostDeployment
919 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
921 servers: {get_attr: [Controller, attributes, nova_server_resource]}
923 ComputeNodesPostDeployment:
924 type: OS::TripleO::ComputePostDeployment
925 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
927 servers: {get_attr: [Compute, attributes, nova_server_resource]}
929 ObjectStorageNodesPostDeployment:
930 type: OS::TripleO::ObjectStoragePostDeployment
931 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
933 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
935 BlockStorageNodesPostDeployment:
936 type: OS::TripleO::BlockStoragePostDeployment
937 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
939 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
941 CephStorageNodesPostDeployment:
942 type: OS::TripleO::CephStoragePostDeployment
943 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
945 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
949 description: URL for the Overcloud Keystone service
954 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}