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.
274 Additional configuration to inject into the cluster. The JSON should have
275 the following structure:
278 [{"section": "SECTIONNAME",
280 [{"option": "OPTIONNAME",
291 [{"section": "default",
293 [{"option": "force_config_drive",
300 [{"option": "driver",
301 "value": "nova.cells.rpc_driver.CellsRPCDriver"
310 description: The filepath of the file to use for logging messages from Glance.
313 GlanceNotifierStrategy:
314 description: Strategy to use for Glance notification queue
319 description: The password for the glance service account, used by the glance services.
324 description: The password for the Heat service account, used by the Heat services.
327 HeatStackDomainAdminPassword:
328 description: Password for heat_domain_admin user.
332 KeystoneCACertificate:
334 description: Keystone self-signed certificate authority certificate.
336 KeystoneSigningCertificate:
338 description: Keystone certificate for verifying token validity.
342 description: Keystone key for signing tokens.
345 KeystoneSSLCertificate:
347 description: Keystone certificate for verifying token validity.
349 KeystoneSSLCertificateKey:
351 description: Keystone key for signing tokens.
354 MysqlInnodbBufferPoolSize:
356 Specifies the size of the buffer pool in megabytes. Setting to
357 zero should be interpreted as "no value" and will defer to the
361 NeutronDnsmasqOptions:
362 default: 'dhcp-option-force=26,1400'
363 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
365 NeutronPublicInterfaceDefaultRoute:
367 description: A custom default route for the NeutronPublicInterface.
369 NeutronPublicInterfaceIP:
371 description: A custom IP address to put onto the NeutronPublicInterface.
373 NeutronPublicInterfaceRawDevice:
375 description: If set, the public interface is a vlan with this device as the raw device.
377 PublicVirtualInterface:
380 Specifies the interface where the public-facing virtual ip will be assigned.
381 This should be int_public when a VLAN is being used.
385 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
390 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
395 description: If set, the contents of an SSL certificate authority file.
399 description: A random string to be used as a salt when hashing to determine mappings in the ring.
404 description: The password for the swift service account, used by the swift proxy services.
409 description: Value of mount_check in Swift account/container/object -server.conf
414 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
417 description: Partition Power to use when building Swift rings
422 description: How many replicas to use in the swift rings.
424 # Compute-specific params
425 CeilometerComputeAgent:
426 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
430 - allowed_values: ['', Present]
434 HypervisorNeutronPhysicalBridge:
437 An OVS bridge to create on each hypervisor. This defaults to br-ex the
438 same as the control plane nodes, as we have a uniform configuration of
439 the openvswitch agent. Typically should not need to be changed.
441 HypervisorNeutronPublicInterface:
443 description: What interface to add to the HypervisorNeutronPhysicalBridge.
445 NeutronNetworkVLANRanges:
446 default: 'datacentre'
448 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
449 Neutron documentation for permitted values. Defaults to permitting any
450 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
454 default: libvirt.LibvirtDriver
455 NovaComputeExtraConfig:
458 NovaCompute specific configuration to inject into the cluster. Same
459 structure as ExtraConfig.
461 NovaComputeLibvirtType:
464 NovaEnableRbdBackend:
466 description: Whether to enable or not the Rbd backend for Nova
470 default: overcloud-compute
472 - custom_constraint: glance.image
473 OvercloudComputeFlavor:
474 description: Use this flavor
477 - custom_constraint: nova.flavor
479 # Block storage specific parameters
484 default: overcloud-cinder-volume
486 OvercloudBlockStorageFlavor:
487 description: Flavor for block storage nodes to request when deploying.
490 - custom_constraint: nova.flavor
492 # Object storage specific parameters
496 OvercloudSwiftStorageFlavor:
497 description: Flavor for Swift storage nodes to request when deploying.
500 - custom_constraint: nova.flavor
502 default: overcloud-swift-storage
505 # Ceph storage specific parameters
510 default: overcloud-ceph-storage
512 OvercloudCephStorageFlavor:
514 description: Flavor for Ceph storage nodes to request when deploying.
517 - custom_constraint: nova.flavor
521 HeatAuthEncryptionKey:
522 type: OS::Heat::RandomString
525 type: OS::Heat::RandomString
530 type: OS::Heat::ResourceGroup
532 count: {get_param: ControllerCount}
534 type: OS::TripleO::Controller
536 AdminPassword: {get_param: AdminPassword}
537 AdminToken: {get_param: AdminToken}
538 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
539 CeilometerPassword: {get_param: CeilometerPassword}
540 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
541 CinderPassword: {get_param: CinderPassword}
542 CinderISCSIHelper: {get_param: CinderISCSIHelper}
543 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
544 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
545 CloudName: {get_param: CloudName}
546 ControlVirtualInterface: {get_param: ControlVirtualInterface}
547 ControllerExtraConfig: {get_param: controllerExtraConfig}
548 Debug: {get_param: Debug}
549 EnableGalera: {get_param: EnableGalera}
550 EnablePacemaker: {get_param: EnablePacemaker}
551 ExtraConfig: {get_param: ExtraConfig}
552 Flavor: {get_param: OvercloudControlFlavor}
553 GlancePort: {get_param: GlancePort}
554 GlanceProtocol: {get_param: GlanceProtocol}
555 GlancePassword: {get_param: GlancePassword}
556 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
557 GlanceLogFile: {get_param: GlanceLogFile}
558 HeatPassword: {get_param: HeatPassword}
559 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
560 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
561 Image: {get_param: controllerImage}
562 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
563 KeyName: {get_param: KeyName}
564 KeystoneCACertificate: {get_param: KeystoneCACertificate}
565 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
566 KeystoneSigningKey: {get_param: KeystoneSigningKey}
567 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
568 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
569 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
570 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
571 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
572 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
573 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
574 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
575 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
576 NeutronPublicInterface: {get_param: NeutronPublicInterface}
577 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
578 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
579 NeutronPassword: {get_param: NeutronPassword}
580 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
581 NeutronDVR: {get_param: NeutronDVR}
582 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
583 NeutronAgentMode: {get_param: NeutronAgentMode}
584 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
585 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
586 NeutronL3HA: {get_param: NeutronL3HA}
587 NeutronNetworkType: {get_param: NeutronNetworkType}
588 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
589 NovaPassword: {get_param: NovaPassword}
590 NtpServer: {get_param: NtpServer}
591 PcsdPassword: {get_resource: PcsdPassword}
592 PublicVirtualInterface: {get_param: PublicVirtualInterface}
593 RabbitPassword: {get_param: RabbitPassword}
594 RabbitUserName: {get_param: RabbitUserName}
595 RabbitCookie: {get_attr: [RabbitCookie, value]}
596 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
597 RabbitClientPort: {get_param: RabbitClientPort}
598 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
599 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
600 SSLCertificate: {get_param: SSLCertificate}
601 SSLKey: {get_param: SSLKey}
602 SSLCACertificate: {get_param: SSLCACertificate}
603 SwiftHashSuffix: {get_param: SwiftHashSuffix}
604 SwiftMountCheck: {get_param: SwiftMountCheck}
605 SwiftMinPartHours: {get_param: SwiftMinPartHours}
606 SwiftPartPower: {get_param: SwiftPartPower}
607 SwiftPassword: {get_param: SwiftPassword}
608 SwiftReplicas: { get_param: SwiftReplicas}
609 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
610 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
613 type: OS::Heat::ResourceGroup
615 count: {get_param: ComputeCount}
617 type: OS::TripleO::Compute
619 AdminPassword: {get_param: AdminPassword}
620 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
621 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
622 CeilometerPassword: {get_param: CeilometerPassword}
623 Debug: {get_param: Debug}
624 ExtraConfig: {get_param: ExtraConfig}
625 Flavor: {get_param: OvercloudComputeFlavor}
626 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
627 GlancePort: {get_param: GlancePort}
628 GlanceProtocol: {get_param: GlanceProtocol}
629 Image: {get_param: NovaImage}
630 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
631 KeyName: {get_param: KeyName}
632 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
633 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
634 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
635 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
636 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
637 NeutronNetworkType: {get_param: NeutronNetworkType}
638 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
639 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
640 NeutronPassword: {get_param: NeutronPassword}
641 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
642 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
643 NeutronDVR: {get_param: NeutronDVR}
644 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
645 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
646 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
647 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
648 # L3 HA and Failover is not relevant for Computes, should be removed
649 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
650 NeutronL3HA: {get_param: NeutronL3HA}
651 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
652 NovaComputeDriver: {get_param: NovaComputeDriver}
653 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
654 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
655 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
656 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
657 NovaPassword: {get_param: NovaPassword}
658 NtpServer: {get_param: NtpServer}
659 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
660 RabbitPassword: {get_param: RabbitPassword}
661 RabbitUserName: {get_param: RabbitUserName}
662 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
663 RabbitClientPort: {get_param: RabbitClientPort}
664 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
665 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
668 type: OS::Heat::ResourceGroup
670 count: {get_param: BlockStorageCount}
672 type: OS::TripleO::BlockStorage
674 Debug: {get_param: Debug}
675 Image: {get_param: BlockStorageImage}
676 CinderISCSIHelper: {get_param: CinderISCSIHelper}
677 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
678 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
679 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
680 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
681 KeyName: {get_param: KeyName}
682 Flavor: {get_param: OvercloudBlockStorageFlavor}
683 RabbitPassword: {get_param: RabbitPassword}
684 RabbitUserName: {get_param: RabbitUserName}
685 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
686 RabbitClientPort: {get_param: RabbitClientPort}
687 NtpServer: {get_param: NtpServer}
690 type: OS::Heat::ResourceGroup
692 count: {get_param: ObjectStorageCount}
694 type: OS::TripleO::ObjectStorage
696 KeyName: {get_param: KeyName}
697 Flavor: {get_param: OvercloudSwiftStorageFlavor}
698 HashSuffix: {get_param: SwiftHashSuffix}
699 MountCheck: {get_param: SwiftMountCheck}
700 MinPartHours: {get_param: SwiftMinPartHours}
701 PartPower: {get_param: SwiftPartPower}
702 Image: {get_param: SwiftStorageImage}
703 Replicas: { get_param: SwiftReplicas}
704 NtpServer: {get_param: NtpServer}
707 type: OS::Heat::ResourceGroup
709 count: {get_param: CephStorageCount}
711 type: OS::TripleO::CephStorage
713 Image: {get_param: CephStorageImage}
714 KeyName: {get_param: KeyName}
715 Flavor: {get_param: OvercloudCephStorageFlavor}
716 NtpServer: {get_param: NtpServer}
719 type: OS::TripleO::AllNodes::SoftwareConfig
721 compute_hosts: {get_attr: [Compute, hosts_entry]}
722 controller_hosts: {get_attr: [Controller, hosts_entry]}
723 controller_ips: {get_attr: [Controller, ip_address]}
724 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
725 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
726 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
727 controller_names: {get_attr: [Controller, hostname]}
730 type: OS::Heat::RandomString
734 MysqlClusterUniquePart:
735 type: OS::Heat::RandomString
740 type: OS::Heat::RandomString
743 salt: {get_param: RabbitCookieSalt}
746 type: OS::Neutron::Port
748 name: control_virtual_ip
749 network_id: {get_param: NeutronControlPlaneID}
750 fixed_ips: {get_param: ControlFixedIPs}
751 replacement_policy: AUTO
754 type: OS::Neutron::Port
756 name: public_virtual_ip
757 network: {get_param: PublicVirtualNetwork}
758 fixed_ips: {get_param: PublicVirtualFixedIPs}
759 replacement_policy: AUTO
761 ControllerBootstrapNodeConfig:
762 type: OS::TripleO::BootstrapNode::SoftwareConfig
764 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
765 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
767 ControllerBootstrapNodeDeployment:
768 type: OS::Heat::StructuredDeployments
770 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
771 servers: {get_attr: [Controller, attributes, nova_server_resource]}
772 signal_transport: NO_SIGNAL
774 ControllerSwiftDeployment:
775 type: OS::Heat::StructuredDeployments
777 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
778 servers: {get_attr: [Controller, attributes, nova_server_resource]}
779 signal_transport: NO_SIGNAL
781 ObjectStorageSwiftDeployment:
782 type: OS::Heat::StructuredDeployments
784 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
785 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
786 signal_transport: NO_SIGNAL
788 SwiftDevicesAndProxyConfig:
789 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
791 controller_swift_devices: {get_attr: [Controller, swift_device]}
792 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
793 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
795 ComputeCephDeployment:
796 type: OS::Heat::StructuredDeployments
798 config: {get_attr: [CephClusterConfig, config_id]}
799 servers: {get_attr: [Compute, attributes, nova_server_resource]}
801 ControllerCephDeployment:
802 type: OS::Heat::StructuredDeployments
804 config: {get_attr: [CephClusterConfig, config_id]}
805 servers: {get_attr: [Controller, attributes, nova_server_resource]}
807 CephStorageCephDeployment:
808 type: OS::Heat::StructuredDeployments
810 config: {get_attr: [CephClusterConfig, config_id]}
811 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
814 type: OS::TripleO::CephClusterConfig::SoftwareConfig
816 ceph_fsid: {get_param: CephClusterFSID}
817 ceph_mon_key: {get_param: CephMonKey}
818 ceph_admin_key: {get_param: CephAdminKey}
819 ceph_mon_names: {get_attr: [Controller, hostname]}
820 ceph_mon_ips: {get_attr: [Controller, ip_address]}
822 ControllerClusterConfig:
823 type: OS::Heat::StructuredConfig
827 nodes: {get_attr: [Controller, corosync_node]}
831 nodes: {get_attr: [Controller, hostname]}
833 nodes: {get_attr: [Controller, corosync_node]}
835 nodes: {get_attr: [Controller, corosync_node]}
837 ControllerClusterDeployment:
838 type: OS::Heat::StructuredDeployments
840 config: {get_resource: ControllerClusterConfig}
841 servers: {get_attr: [Controller, attributes, nova_server_resource]}
842 signal_transport: NO_SIGNAL
844 ControllerAllNodesDeployment:
845 type: OS::Heat::StructuredDeployments
847 config: {get_attr: [allNodesConfig, config_id]}
848 servers: {get_attr: [Controller, attributes, nova_server_resource]}
850 ComputeAllNodesDeployment:
851 type: OS::Heat::StructuredDeployments
853 config: {get_attr: [allNodesConfig, config_id]}
854 servers: {get_attr: [Compute, attributes, nova_server_resource]}
856 BlockStorageAllNodesDeployment:
857 type: OS::Heat::StructuredDeployments
859 config: {get_attr: [allNodesConfig, config_id]}
860 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
862 ObjectStorageAllNodesDeployment:
863 type: OS::Heat::StructuredDeployments
865 config: {get_attr: [allNodesConfig, config_id]}
866 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
868 CephStorageAllNodesDeployment:
869 type: OS::Heat::StructuredDeployments
871 config: {get_attr: [allNodesConfig, config_id]}
872 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
874 # Nested stack deployment runs after all other controller deployments
875 ControllerNodesPostDeployment:
876 type: OS::TripleO::ControllerPostDeployment
877 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
879 servers: {get_attr: [Controller, attributes, nova_server_resource]}
881 ComputeNodesPostDeployment:
882 type: OS::TripleO::ComputePostDeployment
883 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
885 servers: {get_attr: [Compute, attributes, nova_server_resource]}
887 ObjectStorageNodesPostDeployment:
888 type: OS::TripleO::ObjectStoragePostDeployment
889 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
891 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
893 BlockStorageNodesPostDeployment:
894 type: OS::TripleO::BlockStoragePostDeployment
895 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
897 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
899 CephStorageNodesPostDeployment:
900 type: OS::TripleO::CephStoragePostDeployment
901 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
903 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
907 description: URL for the Overcloud Keystone service
912 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}