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.
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 password for the Heat service account, used by the Heat services.
339 HeatStackDomainAdminPassword:
340 description: Password for heat_domain_admin user.
344 KeystoneCACertificate:
346 description: Keystone self-signed certificate authority certificate.
348 KeystoneSigningCertificate:
350 description: Keystone certificate for verifying token validity.
354 description: Keystone key for signing tokens.
357 KeystoneSSLCertificate:
359 description: Keystone certificate for verifying token validity.
361 KeystoneSSLCertificateKey:
363 description: Keystone key for signing tokens.
366 MysqlInnodbBufferPoolSize:
368 Specifies the size of the buffer pool in megabytes. Setting to
369 zero should be interpreted as "no value" and will defer to the
373 NeutronDnsmasqOptions:
374 default: 'dhcp-option-force=26,1400'
375 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
377 NeutronPublicInterfaceDefaultRoute:
379 description: A custom default route for the NeutronPublicInterface.
381 NeutronPublicInterfaceIP:
383 description: A custom IP address to put onto the NeutronPublicInterface.
385 NeutronPublicInterfaceRawDevice:
387 description: If set, the public interface is a vlan with this device as the raw device.
389 PublicVirtualInterface:
392 Specifies the interface where the public-facing virtual ip will be assigned.
393 This should be int_public when a VLAN is being used.
397 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
402 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
407 description: If set, the contents of an SSL certificate authority file.
411 description: A random string to be used as a salt when hashing to determine mappings in the ring.
416 description: The password for the swift service account, used by the swift proxy services.
421 description: Value of mount_check in Swift account/container/object -server.conf
426 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
429 description: Partition Power to use when building Swift rings
434 description: How many replicas to use in the swift rings.
436 # Compute-specific params
437 CeilometerComputeAgent:
438 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
442 - allowed_values: ['', Present]
446 HypervisorNeutronPhysicalBridge:
449 An OVS bridge to create on each hypervisor. This defaults to br-ex the
450 same as the control plane nodes, as we have a uniform configuration of
451 the openvswitch agent. Typically should not need to be changed.
453 HypervisorNeutronPublicInterface:
455 description: What interface to add to the HypervisorNeutronPhysicalBridge.
457 NeutronNetworkVLANRanges:
458 default: 'datacentre'
460 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
461 Neutron documentation for permitted values. Defaults to permitting any
462 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
466 default: libvirt.LibvirtDriver
467 NovaComputeExtraConfig:
470 NovaCompute specific configuration to inject into the cluster. Same
471 structure as ExtraConfig.
473 NovaComputeLibvirtType:
476 NovaEnableRbdBackend:
478 description: Whether to enable or not the Rbd backend for Nova
482 default: overcloud-compute
484 - custom_constraint: glance.image
485 OvercloudComputeFlavor:
486 description: Use this flavor
489 - custom_constraint: nova.flavor
491 # Block storage specific parameters
496 default: overcloud-cinder-volume
498 OvercloudBlockStorageFlavor:
499 description: Flavor for block storage nodes to request when deploying.
502 - custom_constraint: nova.flavor
504 # Object storage specific parameters
508 OvercloudSwiftStorageFlavor:
509 description: Flavor for Swift storage nodes to request when deploying.
512 - custom_constraint: nova.flavor
514 default: overcloud-swift-storage
517 # Ceph storage specific parameters
522 default: overcloud-ceph-storage
524 OvercloudCephStorageFlavor:
526 description: Flavor for Ceph storage nodes to request when deploying.
529 - custom_constraint: nova.flavor
533 HeatAuthEncryptionKey:
534 type: OS::Heat::RandomString
537 type: OS::Heat::RandomString
542 type: OS::Heat::ResourceGroup
544 count: {get_param: ControllerCount}
546 type: OS::TripleO::Controller
548 AdminPassword: {get_param: AdminPassword}
549 AdminToken: {get_param: AdminToken}
550 CeilometerBackend: {get_param: CeilometerBackend}
551 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
552 CeilometerPassword: {get_param: CeilometerPassword}
553 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
554 CinderPassword: {get_param: CinderPassword}
555 CinderISCSIHelper: {get_param: CinderISCSIHelper}
556 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
557 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
558 CloudName: {get_param: CloudName}
559 ControlVirtualInterface: {get_param: ControlVirtualInterface}
560 ControllerExtraConfig: {get_param: controllerExtraConfig}
561 Debug: {get_param: Debug}
562 EnableGalera: {get_param: EnableGalera}
563 EnablePacemaker: {get_param: EnablePacemaker}
564 EnableCephStorage: {get_param: ControllerEnableCephStorage}
565 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
566 ExtraConfig: {get_param: ExtraConfig}
567 Flavor: {get_param: OvercloudControlFlavor}
568 GlancePort: {get_param: GlancePort}
569 GlanceProtocol: {get_param: GlanceProtocol}
570 GlancePassword: {get_param: GlancePassword}
571 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
572 GlanceLogFile: {get_param: GlanceLogFile}
573 HeatPassword: {get_param: HeatPassword}
574 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
575 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
576 Image: {get_param: controllerImage}
577 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
578 KeyName: {get_param: KeyName}
579 KeystoneCACertificate: {get_param: KeystoneCACertificate}
580 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
581 KeystoneSigningKey: {get_param: KeystoneSigningKey}
582 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
583 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
584 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
585 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
586 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
587 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
588 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
589 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
590 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
591 NeutronPublicInterface: {get_param: NeutronPublicInterface}
592 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
593 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
594 NeutronPassword: {get_param: NeutronPassword}
595 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
596 NeutronDVR: {get_param: NeutronDVR}
597 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
598 NeutronAgentMode: {get_param: NeutronAgentMode}
599 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
600 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
601 NeutronL3HA: {get_param: NeutronL3HA}
602 NeutronNetworkType: {get_param: NeutronNetworkType}
603 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
604 NovaPassword: {get_param: NovaPassword}
605 NtpServer: {get_param: NtpServer}
606 PcsdPassword: {get_resource: PcsdPassword}
607 PublicVirtualInterface: {get_param: PublicVirtualInterface}
608 RabbitPassword: {get_param: RabbitPassword}
609 RabbitUserName: {get_param: RabbitUserName}
610 RabbitCookie: {get_attr: [RabbitCookie, value]}
611 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
612 RabbitClientPort: {get_param: RabbitClientPort}
613 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
614 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
615 SSLCertificate: {get_param: SSLCertificate}
616 SSLKey: {get_param: SSLKey}
617 SSLCACertificate: {get_param: SSLCACertificate}
618 SwiftHashSuffix: {get_param: SwiftHashSuffix}
619 SwiftMountCheck: {get_param: SwiftMountCheck}
620 SwiftMinPartHours: {get_param: SwiftMinPartHours}
621 SwiftPartPower: {get_param: SwiftPartPower}
622 SwiftPassword: {get_param: SwiftPassword}
623 SwiftReplicas: { get_param: SwiftReplicas}
624 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
625 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
628 type: OS::Heat::ResourceGroup
630 count: {get_param: ComputeCount}
632 type: OS::TripleO::Compute
634 AdminPassword: {get_param: AdminPassword}
635 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
636 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
637 CeilometerPassword: {get_param: CeilometerPassword}
638 Debug: {get_param: Debug}
639 ExtraConfig: {get_param: ExtraConfig}
640 Flavor: {get_param: OvercloudComputeFlavor}
641 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
642 GlancePort: {get_param: GlancePort}
643 GlanceProtocol: {get_param: GlanceProtocol}
644 Image: {get_param: NovaImage}
645 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
646 KeyName: {get_param: KeyName}
647 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
648 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
649 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
650 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
651 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
652 NeutronNetworkType: {get_param: NeutronNetworkType}
653 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
654 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
655 NeutronPassword: {get_param: NeutronPassword}
656 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
657 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
658 NeutronDVR: {get_param: NeutronDVR}
659 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
660 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
661 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
662 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
663 # L3 HA and Failover is not relevant for Computes, should be removed
664 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
665 NeutronL3HA: {get_param: NeutronL3HA}
666 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
667 NovaComputeDriver: {get_param: NovaComputeDriver}
668 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
669 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
670 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
671 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
672 NovaPassword: {get_param: NovaPassword}
673 NtpServer: {get_param: NtpServer}
674 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
675 RabbitPassword: {get_param: RabbitPassword}
676 RabbitUserName: {get_param: RabbitUserName}
677 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
678 RabbitClientPort: {get_param: RabbitClientPort}
679 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
680 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
683 type: OS::Heat::ResourceGroup
685 count: {get_param: BlockStorageCount}
687 type: OS::TripleO::BlockStorage
689 Debug: {get_param: Debug}
690 Image: {get_param: BlockStorageImage}
691 CinderISCSIHelper: {get_param: CinderISCSIHelper}
692 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
693 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
694 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
695 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
696 KeyName: {get_param: KeyName}
697 Flavor: {get_param: OvercloudBlockStorageFlavor}
698 RabbitPassword: {get_param: RabbitPassword}
699 RabbitUserName: {get_param: RabbitUserName}
700 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
701 RabbitClientPort: {get_param: RabbitClientPort}
702 NtpServer: {get_param: NtpServer}
705 type: OS::Heat::ResourceGroup
707 count: {get_param: ObjectStorageCount}
709 type: OS::TripleO::ObjectStorage
711 KeyName: {get_param: KeyName}
712 Flavor: {get_param: OvercloudSwiftStorageFlavor}
713 HashSuffix: {get_param: SwiftHashSuffix}
714 MountCheck: {get_param: SwiftMountCheck}
715 MinPartHours: {get_param: SwiftMinPartHours}
716 PartPower: {get_param: SwiftPartPower}
717 Image: {get_param: SwiftStorageImage}
718 Replicas: { get_param: SwiftReplicas}
719 NtpServer: {get_param: NtpServer}
722 type: OS::Heat::ResourceGroup
724 count: {get_param: CephStorageCount}
726 type: OS::TripleO::CephStorage
728 Image: {get_param: CephStorageImage}
729 KeyName: {get_param: KeyName}
730 Flavor: {get_param: OvercloudCephStorageFlavor}
731 NtpServer: {get_param: NtpServer}
734 type: OS::TripleO::AllNodes::SoftwareConfig
736 compute_hosts: {get_attr: [Compute, hosts_entry]}
737 controller_hosts: {get_attr: [Controller, hosts_entry]}
738 controller_ips: {get_attr: [Controller, ip_address]}
739 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
740 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
741 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
742 controller_names: {get_attr: [Controller, hostname]}
745 type: OS::Heat::RandomString
749 MysqlClusterUniquePart:
750 type: OS::Heat::RandomString
755 type: OS::Heat::RandomString
758 salt: {get_param: RabbitCookieSalt}
761 type: OS::Neutron::Port
763 name: control_virtual_ip
764 network_id: {get_param: NeutronControlPlaneID}
765 fixed_ips: {get_param: ControlFixedIPs}
766 replacement_policy: AUTO
769 type: OS::Neutron::Port
771 name: public_virtual_ip
772 network: {get_param: PublicVirtualNetwork}
773 fixed_ips: {get_param: PublicVirtualFixedIPs}
774 replacement_policy: AUTO
776 ControllerBootstrapNodeConfig:
777 type: OS::TripleO::BootstrapNode::SoftwareConfig
779 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
780 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
782 ControllerBootstrapNodeDeployment:
783 type: OS::Heat::StructuredDeployments
785 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
786 servers: {get_attr: [Controller, attributes, nova_server_resource]}
787 signal_transport: NO_SIGNAL
789 ControllerSwiftDeployment:
790 type: OS::Heat::StructuredDeployments
792 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
793 servers: {get_attr: [Controller, attributes, nova_server_resource]}
794 signal_transport: NO_SIGNAL
796 ObjectStorageSwiftDeployment:
797 type: OS::Heat::StructuredDeployments
799 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
800 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
801 signal_transport: NO_SIGNAL
803 SwiftDevicesAndProxyConfig:
804 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
806 controller_swift_devices: {get_attr: [Controller, swift_device]}
807 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
808 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
810 ComputeCephDeployment:
811 type: OS::Heat::StructuredDeployments
813 config: {get_attr: [CephClusterConfig, config_id]}
814 servers: {get_attr: [Compute, attributes, nova_server_resource]}
816 ControllerCephDeployment:
817 type: OS::Heat::StructuredDeployments
819 config: {get_attr: [CephClusterConfig, config_id]}
820 servers: {get_attr: [Controller, attributes, nova_server_resource]}
822 CephStorageCephDeployment:
823 type: OS::Heat::StructuredDeployments
825 config: {get_attr: [CephClusterConfig, config_id]}
826 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
829 type: OS::TripleO::CephClusterConfig::SoftwareConfig
831 ceph_fsid: {get_param: CephClusterFSID}
832 ceph_mon_key: {get_param: CephMonKey}
833 ceph_admin_key: {get_param: CephAdminKey}
834 ceph_mon_names: {get_attr: [Controller, hostname]}
835 ceph_mon_ips: {get_attr: [Controller, ip_address]}
837 ControllerClusterConfig:
838 type: OS::Heat::StructuredConfig
842 nodes: {get_attr: [Controller, corosync_node]}
846 nodes: {get_attr: [Controller, hostname]}
848 nodes: {get_attr: [Controller, corosync_node]}
850 nodes: {get_attr: [Controller, corosync_node]}
852 ControllerClusterDeployment:
853 type: OS::Heat::StructuredDeployments
855 config: {get_resource: ControllerClusterConfig}
856 servers: {get_attr: [Controller, attributes, nova_server_resource]}
857 signal_transport: NO_SIGNAL
859 ControllerAllNodesDeployment:
860 type: OS::Heat::StructuredDeployments
862 config: {get_attr: [allNodesConfig, config_id]}
863 servers: {get_attr: [Controller, attributes, nova_server_resource]}
865 ComputeAllNodesDeployment:
866 type: OS::Heat::StructuredDeployments
868 config: {get_attr: [allNodesConfig, config_id]}
869 servers: {get_attr: [Compute, attributes, nova_server_resource]}
871 BlockStorageAllNodesDeployment:
872 type: OS::Heat::StructuredDeployments
874 config: {get_attr: [allNodesConfig, config_id]}
875 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
877 ObjectStorageAllNodesDeployment:
878 type: OS::Heat::StructuredDeployments
880 config: {get_attr: [allNodesConfig, config_id]}
881 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
883 CephStorageAllNodesDeployment:
884 type: OS::Heat::StructuredDeployments
886 config: {get_attr: [allNodesConfig, config_id]}
887 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
889 # Nested stack deployment runs after all other controller deployments
890 ControllerNodesPostDeployment:
891 type: OS::TripleO::ControllerPostDeployment
892 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
894 servers: {get_attr: [Controller, attributes, nova_server_resource]}
896 ComputeNodesPostDeployment:
897 type: OS::TripleO::ComputePostDeployment
898 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
900 servers: {get_attr: [Compute, attributes, nova_server_resource]}
902 ObjectStorageNodesPostDeployment:
903 type: OS::TripleO::ObjectStoragePostDeployment
904 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
906 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
908 BlockStorageNodesPostDeployment:
909 type: OS::TripleO::BlockStoragePostDeployment
910 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
912 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
914 CephStorageNodesPostDeployment:
915 type: OS::TripleO::CephStoragePostDeployment
916 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
918 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
922 description: URL for the Overcloud Keystone service
927 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}