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 password for the Heat service account, used by the Heat services.
335 HeatStackDomainAdminPassword:
336 description: Password for heat_domain_admin user.
340 KeystoneCACertificate:
342 description: Keystone self-signed certificate authority certificate.
344 KeystoneSigningCertificate:
346 description: Keystone certificate for verifying token validity.
350 description: Keystone key for signing tokens.
353 KeystoneSSLCertificate:
355 description: Keystone certificate for verifying token validity.
357 KeystoneSSLCertificateKey:
359 description: Keystone key for signing tokens.
362 MysqlInnodbBufferPoolSize:
364 Specifies the size of the buffer pool in megabytes. Setting to
365 zero should be interpreted as "no value" and will defer to the
369 NeutronDnsmasqOptions:
370 default: 'dhcp-option-force=26,1400'
371 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
373 NeutronPublicInterfaceDefaultRoute:
375 description: A custom default route for the NeutronPublicInterface.
377 NeutronPublicInterfaceIP:
379 description: A custom IP address to put onto the NeutronPublicInterface.
381 NeutronPublicInterfaceRawDevice:
383 description: If set, the public interface is a vlan with this device as the raw device.
385 PublicVirtualInterface:
388 Specifies the interface where the public-facing virtual ip will be assigned.
389 This should be int_public when a VLAN is being used.
393 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
398 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
403 description: If set, the contents of an SSL certificate authority file.
407 description: A random string to be used as a salt when hashing to determine mappings in the ring.
412 description: The password for the swift service account, used by the swift proxy services.
417 description: Value of mount_check in Swift account/container/object -server.conf
422 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
425 description: Partition Power to use when building Swift rings
430 description: How many replicas to use in the swift rings.
432 # Compute-specific params
433 CeilometerComputeAgent:
434 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
438 - allowed_values: ['', Present]
442 HypervisorNeutronPhysicalBridge:
445 An OVS bridge to create on each hypervisor. This defaults to br-ex the
446 same as the control plane nodes, as we have a uniform configuration of
447 the openvswitch agent. Typically should not need to be changed.
449 HypervisorNeutronPublicInterface:
451 description: What interface to add to the HypervisorNeutronPhysicalBridge.
453 NeutronNetworkVLANRanges:
454 default: 'datacentre'
456 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
457 Neutron documentation for permitted values. Defaults to permitting any
458 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
462 default: libvirt.LibvirtDriver
463 NovaComputeExtraConfig:
466 NovaCompute specific configuration to inject into the cluster. Same
467 structure as ExtraConfig.
469 NovaComputeLibvirtType:
472 NovaEnableRbdBackend:
474 description: Whether to enable or not the Rbd backend for Nova
478 default: overcloud-compute
480 - custom_constraint: glance.image
481 OvercloudComputeFlavor:
482 description: Use this flavor
485 - custom_constraint: nova.flavor
487 # Block storage specific parameters
492 default: overcloud-cinder-volume
494 OvercloudBlockStorageFlavor:
495 description: Flavor for block storage nodes to request when deploying.
498 - custom_constraint: nova.flavor
500 # Object storage specific parameters
504 OvercloudSwiftStorageFlavor:
505 description: Flavor for Swift storage nodes to request when deploying.
508 - custom_constraint: nova.flavor
510 default: overcloud-swift-storage
513 # Ceph storage specific parameters
518 default: overcloud-ceph-storage
520 OvercloudCephStorageFlavor:
522 description: Flavor for Ceph storage nodes to request when deploying.
525 - custom_constraint: nova.flavor
529 HeatAuthEncryptionKey:
530 type: OS::Heat::RandomString
533 type: OS::Heat::RandomString
538 type: OS::Heat::ResourceGroup
540 count: {get_param: ControllerCount}
542 type: OS::TripleO::Controller
544 AdminPassword: {get_param: AdminPassword}
545 AdminToken: {get_param: AdminToken}
546 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
547 CeilometerPassword: {get_param: CeilometerPassword}
548 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
549 CinderPassword: {get_param: CinderPassword}
550 CinderISCSIHelper: {get_param: CinderISCSIHelper}
551 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
552 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
553 CloudName: {get_param: CloudName}
554 ControlVirtualInterface: {get_param: ControlVirtualInterface}
555 ControllerExtraConfig: {get_param: controllerExtraConfig}
556 Debug: {get_param: Debug}
557 EnableGalera: {get_param: EnableGalera}
558 EnablePacemaker: {get_param: EnablePacemaker}
559 EnableCephStorage: {get_param: ControllerEnableCephStorage}
560 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
561 ExtraConfig: {get_param: ExtraConfig}
562 Flavor: {get_param: OvercloudControlFlavor}
563 GlancePort: {get_param: GlancePort}
564 GlanceProtocol: {get_param: GlanceProtocol}
565 GlancePassword: {get_param: GlancePassword}
566 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
567 GlanceLogFile: {get_param: GlanceLogFile}
568 HeatPassword: {get_param: HeatPassword}
569 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
570 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
571 Image: {get_param: controllerImage}
572 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
573 KeyName: {get_param: KeyName}
574 KeystoneCACertificate: {get_param: KeystoneCACertificate}
575 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
576 KeystoneSigningKey: {get_param: KeystoneSigningKey}
577 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
578 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
579 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
580 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
581 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
582 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
583 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
584 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
585 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
586 NeutronPublicInterface: {get_param: NeutronPublicInterface}
587 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
588 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
589 NeutronPassword: {get_param: NeutronPassword}
590 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
591 NeutronDVR: {get_param: NeutronDVR}
592 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
593 NeutronAgentMode: {get_param: NeutronAgentMode}
594 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
595 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
596 NeutronL3HA: {get_param: NeutronL3HA}
597 NeutronNetworkType: {get_param: NeutronNetworkType}
598 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
599 NovaPassword: {get_param: NovaPassword}
600 NtpServer: {get_param: NtpServer}
601 PcsdPassword: {get_resource: PcsdPassword}
602 PublicVirtualInterface: {get_param: PublicVirtualInterface}
603 RabbitPassword: {get_param: RabbitPassword}
604 RabbitUserName: {get_param: RabbitUserName}
605 RabbitCookie: {get_attr: [RabbitCookie, value]}
606 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
607 RabbitClientPort: {get_param: RabbitClientPort}
608 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
609 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
610 SSLCertificate: {get_param: SSLCertificate}
611 SSLKey: {get_param: SSLKey}
612 SSLCACertificate: {get_param: SSLCACertificate}
613 SwiftHashSuffix: {get_param: SwiftHashSuffix}
614 SwiftMountCheck: {get_param: SwiftMountCheck}
615 SwiftMinPartHours: {get_param: SwiftMinPartHours}
616 SwiftPartPower: {get_param: SwiftPartPower}
617 SwiftPassword: {get_param: SwiftPassword}
618 SwiftReplicas: { get_param: SwiftReplicas}
619 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
620 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
623 type: OS::Heat::ResourceGroup
625 count: {get_param: ComputeCount}
627 type: OS::TripleO::Compute
629 AdminPassword: {get_param: AdminPassword}
630 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
631 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
632 CeilometerPassword: {get_param: CeilometerPassword}
633 Debug: {get_param: Debug}
634 ExtraConfig: {get_param: ExtraConfig}
635 Flavor: {get_param: OvercloudComputeFlavor}
636 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
637 GlancePort: {get_param: GlancePort}
638 GlanceProtocol: {get_param: GlanceProtocol}
639 Image: {get_param: NovaImage}
640 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
641 KeyName: {get_param: KeyName}
642 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
643 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
644 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
645 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
646 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
647 NeutronNetworkType: {get_param: NeutronNetworkType}
648 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
649 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
650 NeutronPassword: {get_param: NeutronPassword}
651 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
652 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
653 NeutronDVR: {get_param: NeutronDVR}
654 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
655 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
656 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
657 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
658 # L3 HA and Failover is not relevant for Computes, should be removed
659 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
660 NeutronL3HA: {get_param: NeutronL3HA}
661 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
662 NovaComputeDriver: {get_param: NovaComputeDriver}
663 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
664 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
665 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
666 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
667 NovaPassword: {get_param: NovaPassword}
668 NtpServer: {get_param: NtpServer}
669 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
670 RabbitPassword: {get_param: RabbitPassword}
671 RabbitUserName: {get_param: RabbitUserName}
672 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
673 RabbitClientPort: {get_param: RabbitClientPort}
674 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
675 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
678 type: OS::Heat::ResourceGroup
680 count: {get_param: BlockStorageCount}
682 type: OS::TripleO::BlockStorage
684 Debug: {get_param: Debug}
685 Image: {get_param: BlockStorageImage}
686 CinderISCSIHelper: {get_param: CinderISCSIHelper}
687 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
688 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
689 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
690 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
691 KeyName: {get_param: KeyName}
692 Flavor: {get_param: OvercloudBlockStorageFlavor}
693 RabbitPassword: {get_param: RabbitPassword}
694 RabbitUserName: {get_param: RabbitUserName}
695 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
696 RabbitClientPort: {get_param: RabbitClientPort}
697 NtpServer: {get_param: NtpServer}
700 type: OS::Heat::ResourceGroup
702 count: {get_param: ObjectStorageCount}
704 type: OS::TripleO::ObjectStorage
706 KeyName: {get_param: KeyName}
707 Flavor: {get_param: OvercloudSwiftStorageFlavor}
708 HashSuffix: {get_param: SwiftHashSuffix}
709 MountCheck: {get_param: SwiftMountCheck}
710 MinPartHours: {get_param: SwiftMinPartHours}
711 PartPower: {get_param: SwiftPartPower}
712 Image: {get_param: SwiftStorageImage}
713 Replicas: { get_param: SwiftReplicas}
714 NtpServer: {get_param: NtpServer}
717 type: OS::Heat::ResourceGroup
719 count: {get_param: CephStorageCount}
721 type: OS::TripleO::CephStorage
723 Image: {get_param: CephStorageImage}
724 KeyName: {get_param: KeyName}
725 Flavor: {get_param: OvercloudCephStorageFlavor}
726 NtpServer: {get_param: NtpServer}
729 type: OS::TripleO::AllNodes::SoftwareConfig
731 compute_hosts: {get_attr: [Compute, hosts_entry]}
732 controller_hosts: {get_attr: [Controller, hosts_entry]}
733 controller_ips: {get_attr: [Controller, ip_address]}
734 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
735 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
736 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
737 controller_names: {get_attr: [Controller, hostname]}
740 type: OS::Heat::RandomString
744 MysqlClusterUniquePart:
745 type: OS::Heat::RandomString
750 type: OS::Heat::RandomString
753 salt: {get_param: RabbitCookieSalt}
756 type: OS::Neutron::Port
758 name: control_virtual_ip
759 network_id: {get_param: NeutronControlPlaneID}
760 fixed_ips: {get_param: ControlFixedIPs}
761 replacement_policy: AUTO
764 type: OS::Neutron::Port
766 name: public_virtual_ip
767 network: {get_param: PublicVirtualNetwork}
768 fixed_ips: {get_param: PublicVirtualFixedIPs}
769 replacement_policy: AUTO
771 ControllerBootstrapNodeConfig:
772 type: OS::TripleO::BootstrapNode::SoftwareConfig
774 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
775 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
777 ControllerBootstrapNodeDeployment:
778 type: OS::Heat::StructuredDeployments
780 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
781 servers: {get_attr: [Controller, attributes, nova_server_resource]}
782 signal_transport: NO_SIGNAL
784 ControllerSwiftDeployment:
785 type: OS::Heat::StructuredDeployments
787 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
788 servers: {get_attr: [Controller, attributes, nova_server_resource]}
789 signal_transport: NO_SIGNAL
791 ObjectStorageSwiftDeployment:
792 type: OS::Heat::StructuredDeployments
794 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
795 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
796 signal_transport: NO_SIGNAL
798 SwiftDevicesAndProxyConfig:
799 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
801 controller_swift_devices: {get_attr: [Controller, swift_device]}
802 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
803 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
805 ComputeCephDeployment:
806 type: OS::Heat::StructuredDeployments
808 config: {get_attr: [CephClusterConfig, config_id]}
809 servers: {get_attr: [Compute, attributes, nova_server_resource]}
811 ControllerCephDeployment:
812 type: OS::Heat::StructuredDeployments
814 config: {get_attr: [CephClusterConfig, config_id]}
815 servers: {get_attr: [Controller, attributes, nova_server_resource]}
817 CephStorageCephDeployment:
818 type: OS::Heat::StructuredDeployments
820 config: {get_attr: [CephClusterConfig, config_id]}
821 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
824 type: OS::TripleO::CephClusterConfig::SoftwareConfig
826 ceph_fsid: {get_param: CephClusterFSID}
827 ceph_mon_key: {get_param: CephMonKey}
828 ceph_admin_key: {get_param: CephAdminKey}
829 ceph_mon_names: {get_attr: [Controller, hostname]}
830 ceph_mon_ips: {get_attr: [Controller, ip_address]}
832 ControllerClusterConfig:
833 type: OS::Heat::StructuredConfig
837 nodes: {get_attr: [Controller, corosync_node]}
841 nodes: {get_attr: [Controller, hostname]}
843 nodes: {get_attr: [Controller, corosync_node]}
845 nodes: {get_attr: [Controller, corosync_node]}
847 ControllerClusterDeployment:
848 type: OS::Heat::StructuredDeployments
850 config: {get_resource: ControllerClusterConfig}
851 servers: {get_attr: [Controller, attributes, nova_server_resource]}
852 signal_transport: NO_SIGNAL
854 ControllerAllNodesDeployment:
855 type: OS::Heat::StructuredDeployments
857 config: {get_attr: [allNodesConfig, config_id]}
858 servers: {get_attr: [Controller, attributes, nova_server_resource]}
860 ComputeAllNodesDeployment:
861 type: OS::Heat::StructuredDeployments
863 config: {get_attr: [allNodesConfig, config_id]}
864 servers: {get_attr: [Compute, attributes, nova_server_resource]}
866 BlockStorageAllNodesDeployment:
867 type: OS::Heat::StructuredDeployments
869 config: {get_attr: [allNodesConfig, config_id]}
870 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
872 ObjectStorageAllNodesDeployment:
873 type: OS::Heat::StructuredDeployments
875 config: {get_attr: [allNodesConfig, config_id]}
876 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
878 CephStorageAllNodesDeployment:
879 type: OS::Heat::StructuredDeployments
881 config: {get_attr: [allNodesConfig, config_id]}
882 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
884 # Nested stack deployment runs after all other controller deployments
885 ControllerNodesPostDeployment:
886 type: OS::TripleO::ControllerPostDeployment
887 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
889 servers: {get_attr: [Controller, attributes, nova_server_resource]}
891 ComputeNodesPostDeployment:
892 type: OS::TripleO::ComputePostDeployment
893 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
895 servers: {get_attr: [Compute, attributes, nova_server_resource]}
897 ObjectStorageNodesPostDeployment:
898 type: OS::TripleO::ObjectStoragePostDeployment
899 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
901 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
903 BlockStorageNodesPostDeployment:
904 type: OS::TripleO::BlockStoragePostDeployment
905 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
907 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
909 CephStorageNodesPostDeployment:
910 type: OS::TripleO::CephStoragePostDeployment
911 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
913 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
917 description: URL for the Overcloud Keystone service
922 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}