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 CinderPassword: {get_param: CinderPassword}
691 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
692 KeyName: {get_param: KeyName}
693 Flavor: {get_param: OvercloudBlockStorageFlavor}
694 RabbitPassword: {get_param: RabbitPassword}
695 RabbitUserName: {get_param: RabbitUserName}
696 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
697 RabbitClientPort: {get_param: RabbitClientPort}
698 NtpServer: {get_param: NtpServer}
701 type: OS::Heat::ResourceGroup
703 count: {get_param: ObjectStorageCount}
705 type: OS::TripleO::ObjectStorage
707 KeyName: {get_param: KeyName}
708 Flavor: {get_param: OvercloudSwiftStorageFlavor}
709 HashSuffix: {get_param: SwiftHashSuffix}
710 MountCheck: {get_param: SwiftMountCheck}
711 MinPartHours: {get_param: SwiftMinPartHours}
712 PartPower: {get_param: SwiftPartPower}
713 Image: {get_param: SwiftStorageImage}
714 Replicas: { get_param: SwiftReplicas}
715 NtpServer: {get_param: NtpServer}
718 type: OS::Heat::ResourceGroup
720 count: {get_param: CephStorageCount}
722 type: OS::TripleO::CephStorage
724 Image: {get_param: CephStorageImage}
725 KeyName: {get_param: KeyName}
726 Flavor: {get_param: OvercloudCephStorageFlavor}
727 NtpServer: {get_param: NtpServer}
730 type: OS::TripleO::AllNodes::SoftwareConfig
732 compute_hosts: {get_attr: [Compute, hosts_entry]}
733 controller_hosts: {get_attr: [Controller, hosts_entry]}
734 controller_ips: {get_attr: [Controller, ip_address]}
735 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
736 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
737 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
738 controller_names: {get_attr: [Controller, hostname]}
741 type: OS::Heat::RandomString
745 MysqlClusterUniquePart:
746 type: OS::Heat::RandomString
751 type: OS::Heat::RandomString
754 salt: {get_param: RabbitCookieSalt}
757 type: OS::Neutron::Port
759 name: control_virtual_ip
760 network_id: {get_param: NeutronControlPlaneID}
761 fixed_ips: {get_param: ControlFixedIPs}
762 replacement_policy: AUTO
765 type: OS::Neutron::Port
767 name: public_virtual_ip
768 network: {get_param: PublicVirtualNetwork}
769 fixed_ips: {get_param: PublicVirtualFixedIPs}
770 replacement_policy: AUTO
772 ControllerBootstrapNodeConfig:
773 type: OS::TripleO::BootstrapNode::SoftwareConfig
775 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
776 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
778 ControllerBootstrapNodeDeployment:
779 type: OS::Heat::StructuredDeployments
781 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
782 servers: {get_attr: [Controller, attributes, nova_server_resource]}
783 signal_transport: NO_SIGNAL
785 ControllerSwiftDeployment:
786 type: OS::Heat::StructuredDeployments
788 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
789 servers: {get_attr: [Controller, attributes, nova_server_resource]}
790 signal_transport: NO_SIGNAL
792 ObjectStorageSwiftDeployment:
793 type: OS::Heat::StructuredDeployments
795 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
796 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
797 signal_transport: NO_SIGNAL
799 SwiftDevicesAndProxyConfig:
800 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
802 controller_swift_devices: {get_attr: [Controller, swift_device]}
803 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
804 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
806 ComputeCephDeployment:
807 type: OS::Heat::StructuredDeployments
809 config: {get_attr: [CephClusterConfig, config_id]}
810 servers: {get_attr: [Compute, attributes, nova_server_resource]}
812 ControllerCephDeployment:
813 type: OS::Heat::StructuredDeployments
815 config: {get_attr: [CephClusterConfig, config_id]}
816 servers: {get_attr: [Controller, attributes, nova_server_resource]}
818 CephStorageCephDeployment:
819 type: OS::Heat::StructuredDeployments
821 config: {get_attr: [CephClusterConfig, config_id]}
822 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
825 type: OS::TripleO::CephClusterConfig::SoftwareConfig
827 ceph_fsid: {get_param: CephClusterFSID}
828 ceph_mon_key: {get_param: CephMonKey}
829 ceph_admin_key: {get_param: CephAdminKey}
830 ceph_mon_names: {get_attr: [Controller, hostname]}
831 ceph_mon_ips: {get_attr: [Controller, ip_address]}
833 ControllerClusterConfig:
834 type: OS::Heat::StructuredConfig
838 nodes: {get_attr: [Controller, corosync_node]}
842 nodes: {get_attr: [Controller, hostname]}
844 nodes: {get_attr: [Controller, corosync_node]}
846 nodes: {get_attr: [Controller, corosync_node]}
848 ControllerClusterDeployment:
849 type: OS::Heat::StructuredDeployments
851 config: {get_resource: ControllerClusterConfig}
852 servers: {get_attr: [Controller, attributes, nova_server_resource]}
853 signal_transport: NO_SIGNAL
855 ControllerAllNodesDeployment:
856 type: OS::Heat::StructuredDeployments
858 config: {get_attr: [allNodesConfig, config_id]}
859 servers: {get_attr: [Controller, attributes, nova_server_resource]}
861 ComputeAllNodesDeployment:
862 type: OS::Heat::StructuredDeployments
864 config: {get_attr: [allNodesConfig, config_id]}
865 servers: {get_attr: [Compute, attributes, nova_server_resource]}
867 BlockStorageAllNodesDeployment:
868 type: OS::Heat::StructuredDeployments
870 config: {get_attr: [allNodesConfig, config_id]}
871 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
873 ObjectStorageAllNodesDeployment:
874 type: OS::Heat::StructuredDeployments
876 config: {get_attr: [allNodesConfig, config_id]}
877 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
879 CephStorageAllNodesDeployment:
880 type: OS::Heat::StructuredDeployments
882 config: {get_attr: [allNodesConfig, config_id]}
883 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
885 # Nested stack deployment runs after all other controller deployments
886 ControllerNodesPostDeployment:
887 type: OS::TripleO::ControllerPostDeployment
888 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
890 servers: {get_attr: [Controller, attributes, nova_server_resource]}
892 ComputeNodesPostDeployment:
893 type: OS::TripleO::ComputePostDeployment
894 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
896 servers: {get_attr: [Compute, attributes, nova_server_resource]}
898 ObjectStorageNodesPostDeployment:
899 type: OS::TripleO::ObjectStoragePostDeployment
900 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
902 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
904 BlockStorageNodesPostDeployment:
905 type: OS::TripleO::BlockStoragePostDeployment
906 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
908 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
910 CephStorageNodesPostDeployment:
911 type: OS::TripleO::CephStoragePostDeployment
912 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
914 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
918 description: URL for the Overcloud Keystone service
923 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}