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.
269 Additional configuration to inject into the cluster. The JSON should have
270 the following structure:
273 [{"section": "SECTIONNAME",
275 [{"option": "OPTIONNAME",
286 [{"section": "default",
288 [{"option": "force_config_drive",
295 [{"option": "driver",
296 "value": "nova.cells.rpc_driver.CellsRPCDriver"
305 description: The filepath of the file to use for logging messages from Glance.
308 GlanceNotifierStrategy:
309 description: Strategy to use for Glance notification queue
314 description: The password for the glance service account, used by the glance services.
319 description: The password for the Heat service account, used by the Heat services.
322 HeatStackDomainAdminPassword:
323 description: Password for heat_domain_admin user.
327 KeystoneCACertificate:
329 description: Keystone self-signed certificate authority certificate.
331 KeystoneSigningCertificate:
333 description: Keystone certificate for verifying token validity.
337 description: Keystone key for signing tokens.
340 KeystoneSSLCertificate:
342 description: Keystone certificate for verifying token validity.
344 KeystoneSSLCertificateKey:
346 description: Keystone key for signing tokens.
349 MysqlInnodbBufferPoolSize:
351 Specifies the size of the buffer pool in megabytes. Setting to
352 zero should be interpreted as "no value" and will defer to the
356 NeutronDnsmasqOptions:
357 default: 'dhcp-option-force=26,1400'
358 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
360 NeutronPublicInterfaceDefaultRoute:
362 description: A custom default route for the NeutronPublicInterface.
364 NeutronPublicInterfaceIP:
366 description: A custom IP address to put onto the NeutronPublicInterface.
368 NeutronPublicInterfaceRawDevice:
370 description: If set, the public interface is a vlan with this device as the raw device.
372 PublicVirtualInterface:
375 Specifies the interface where the public-facing virtual ip will be assigned.
376 This should be int_public when a VLAN is being used.
380 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
385 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
390 description: If set, the contents of an SSL certificate authority file.
394 description: A random string to be used as a salt when hashing to determine mappings in the ring.
399 description: The password for the swift service account, used by the swift proxy services.
404 description: Value of mount_check in Swift account/container/object -server.conf
409 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
412 description: Partition Power to use when building Swift rings
417 description: How many replicas to use in the swift rings.
419 # Compute-specific params
420 CeilometerComputeAgent:
421 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
425 - allowed_values: ['', Present]
429 HypervisorNeutronPhysicalBridge:
432 An OVS bridge to create on each hypervisor. This defaults to br-ex the
433 same as the control plane nodes, as we have a uniform configuration of
434 the openvswitch agent. Typically should not need to be changed.
436 HypervisorNeutronPublicInterface:
438 description: What interface to add to the HypervisorNeutronPhysicalBridge.
440 NeutronNetworkVLANRanges:
441 default: 'datacentre'
443 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
444 Neutron documentation for permitted values. Defaults to permitting any
445 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
449 default: libvirt.LibvirtDriver
450 NovaComputeExtraConfig:
453 NovaCompute specific configuration to inject into the cluster. Same
454 structure as ExtraConfig.
456 NovaComputeLibvirtType:
459 NovaEnableRbdBackend:
461 description: Whether to enable or not the Rbd backend for Nova
465 default: overcloud-compute
467 - custom_constraint: glance.image
468 OvercloudComputeFlavor:
469 description: Use this flavor
472 - custom_constraint: nova.flavor
474 # Block storage specific parameters
479 default: overcloud-cinder-volume
481 OvercloudBlockStorageFlavor:
482 description: Flavor for block storage nodes to request when deploying.
485 - custom_constraint: nova.flavor
487 # Object storage specific parameters
491 OvercloudSwiftStorageFlavor:
492 description: Flavor for Swift storage nodes to request when deploying.
495 - custom_constraint: nova.flavor
497 default: overcloud-swift-storage
500 # Ceph storage specific parameters
505 default: overcloud-ceph-storage
507 OvercloudCephStorageFlavor:
509 description: Flavor for Ceph storage nodes to request when deploying.
512 - custom_constraint: nova.flavor
516 HeatAuthEncryptionKey:
517 type: OS::Heat::RandomString
520 type: OS::Heat::RandomString
525 type: OS::Heat::ResourceGroup
527 count: {get_param: ControllerCount}
529 type: OS::TripleO::Controller
531 AdminPassword: {get_param: AdminPassword}
532 AdminToken: {get_param: AdminToken}
533 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
534 CeilometerPassword: {get_param: CeilometerPassword}
535 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
536 CinderPassword: {get_param: CinderPassword}
537 CinderISCSIHelper: {get_param: CinderISCSIHelper}
538 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
539 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
540 CloudName: {get_param: CloudName}
541 ControlVirtualInterface: {get_param: ControlVirtualInterface}
542 ControllerExtraConfig: {get_param: controllerExtraConfig}
543 CorosyncAuthKey: {get_resource: CorosyncAuthKey}
544 Debug: {get_param: Debug}
545 EnableGalera: {get_param: EnableGalera}
546 ExtraConfig: {get_param: ExtraConfig}
547 Flavor: {get_param: OvercloudControlFlavor}
548 GlancePort: {get_param: GlancePort}
549 GlanceProtocol: {get_param: GlanceProtocol}
550 GlancePassword: {get_param: GlancePassword}
551 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
552 GlanceLogFile: {get_param: GlanceLogFile}
553 HeatPassword: {get_param: HeatPassword}
554 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
555 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
556 Image: {get_param: controllerImage}
557 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
558 KeyName: {get_param: KeyName}
559 KeystoneCACertificate: {get_param: KeystoneCACertificate}
560 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
561 KeystoneSigningKey: {get_param: KeystoneSigningKey}
562 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
563 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
564 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
565 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
566 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
567 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
568 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
569 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
570 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
571 NeutronPublicInterface: {get_param: NeutronPublicInterface}
572 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
573 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
574 NeutronPassword: {get_param: NeutronPassword}
575 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
576 NeutronDVR: {get_param: NeutronDVR}
577 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
578 NeutronAgentMode: {get_param: NeutronAgentMode}
579 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
580 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
581 NeutronL3HA: {get_param: NeutronL3HA}
582 NeutronNetworkType: {get_param: NeutronNetworkType}
583 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
584 NovaPassword: {get_param: NovaPassword}
585 NtpServer: {get_param: NtpServer}
586 PublicVirtualInterface: {get_param: PublicVirtualInterface}
587 RabbitPassword: {get_param: RabbitPassword}
588 RabbitUserName: {get_param: RabbitUserName}
589 RabbitCookie: {get_attr: [RabbitCookie, value]}
590 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
591 RabbitClientPort: {get_param: RabbitClientPort}
592 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
593 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
594 SSLCertificate: {get_param: SSLCertificate}
595 SSLKey: {get_param: SSLKey}
596 SSLCACertificate: {get_param: SSLCACertificate}
597 SwiftHashSuffix: {get_param: SwiftHashSuffix}
598 SwiftMountCheck: {get_param: SwiftMountCheck}
599 SwiftMinPartHours: {get_param: SwiftMinPartHours}
600 SwiftPartPower: {get_param: SwiftPartPower}
601 SwiftPassword: {get_param: SwiftPassword}
602 SwiftReplicas: { get_param: SwiftReplicas}
603 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
604 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
607 type: OS::Heat::ResourceGroup
609 count: {get_param: ComputeCount}
611 type: OS::TripleO::Compute
613 AdminPassword: {get_param: AdminPassword}
614 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
615 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
616 CeilometerPassword: {get_param: CeilometerPassword}
617 Debug: {get_param: Debug}
618 ExtraConfig: {get_param: ExtraConfig}
619 Flavor: {get_param: OvercloudComputeFlavor}
620 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
621 GlancePort: {get_param: GlancePort}
622 GlanceProtocol: {get_param: GlanceProtocol}
623 Image: {get_param: NovaImage}
624 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
625 KeyName: {get_param: KeyName}
626 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
627 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
628 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
629 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
630 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
631 NeutronNetworkType: {get_param: NeutronNetworkType}
632 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
633 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
634 NeutronPassword: {get_param: NeutronPassword}
635 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
636 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
637 NeutronDVR: {get_param: NeutronDVR}
638 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
639 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
640 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
641 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
642 # L3 HA and Failover is not relevant for Computes, should be removed
643 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
644 NeutronL3HA: {get_param: NeutronL3HA}
645 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
646 NovaComputeDriver: {get_param: NovaComputeDriver}
647 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
648 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
649 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
650 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
651 NovaPassword: {get_param: NovaPassword}
652 NtpServer: {get_param: NtpServer}
653 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
654 RabbitPassword: {get_param: RabbitPassword}
655 RabbitUserName: {get_param: RabbitUserName}
656 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
657 RabbitClientPort: {get_param: RabbitClientPort}
658 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
659 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
662 type: OS::Heat::ResourceGroup
664 count: {get_param: BlockStorageCount}
666 type: OS::TripleO::BlockStorage
668 Debug: {get_param: Debug}
669 Image: {get_param: BlockStorageImage}
670 CinderISCSIHelper: {get_param: CinderISCSIHelper}
671 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
672 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
673 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
674 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
675 KeyName: {get_param: KeyName}
676 Flavor: {get_param: OvercloudBlockStorageFlavor}
677 RabbitPassword: {get_param: RabbitPassword}
678 RabbitUserName: {get_param: RabbitUserName}
679 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
680 RabbitClientPort: {get_param: RabbitClientPort}
681 NtpServer: {get_param: NtpServer}
684 type: OS::Heat::ResourceGroup
686 count: {get_param: ObjectStorageCount}
688 type: OS::TripleO::ObjectStorage
690 KeyName: {get_param: KeyName}
691 Flavor: {get_param: OvercloudSwiftStorageFlavor}
692 HashSuffix: {get_param: SwiftHashSuffix}
693 MountCheck: {get_param: SwiftMountCheck}
694 MinPartHours: {get_param: SwiftMinPartHours}
695 PartPower: {get_param: SwiftPartPower}
696 Image: {get_param: SwiftStorageImage}
697 Replicas: { get_param: SwiftReplicas}
698 NtpServer: {get_param: NtpServer}
701 type: OS::Heat::ResourceGroup
703 count: {get_param: CephStorageCount}
705 type: OS::TripleO::CephStorage
707 Image: {get_param: CephStorageImage}
708 KeyName: {get_param: KeyName}
709 Flavor: {get_param: OvercloudCephStorageFlavor}
710 NtpServer: {get_param: NtpServer}
713 type: OS::TripleO::AllNodes::SoftwareConfig
715 compute_hosts: {get_attr: [Compute, hosts_entry]}
716 controller_hosts: {get_attr: [Controller, hosts_entry]}
717 controller_ips: {get_attr: [Controller, ip_address]}
718 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
719 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
720 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
721 controller_names: {get_attr: [Controller, hostname]}
724 type: OS::Heat::RandomString
728 MysqlClusterUniquePart:
729 type: OS::Heat::RandomString
734 type: OS::Heat::RandomString
737 salt: {get_param: RabbitCookieSalt}
740 type: OS::Neutron::Port
742 name: control_virtual_ip
743 network_id: {get_param: NeutronControlPlaneID}
744 fixed_ips: {get_param: ControlFixedIPs}
745 replacement_policy: AUTO
748 type: OS::Neutron::Port
750 name: public_virtual_ip
751 network: {get_param: PublicVirtualNetwork}
752 fixed_ips: {get_param: PublicVirtualFixedIPs}
753 replacement_policy: AUTO
755 ControllerBootstrapNodeConfig:
756 type: OS::TripleO::BootstrapNode::SoftwareConfig
758 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
759 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
761 ControllerBootstrapNodeDeployment:
762 type: OS::Heat::StructuredDeployments
764 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
765 servers: {get_attr: [Controller, attributes, nova_server_resource]}
766 signal_transport: NO_SIGNAL
768 ControllerSwiftDeployment:
769 type: OS::Heat::StructuredDeployments
771 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
772 servers: {get_attr: [Controller, attributes, nova_server_resource]}
773 signal_transport: NO_SIGNAL
775 ObjectStorageSwiftDeployment:
776 type: OS::Heat::StructuredDeployments
778 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
779 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
780 signal_transport: NO_SIGNAL
782 SwiftDevicesAndProxyConfig:
783 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
785 controller_swift_devices: {get_attr: [Controller, swift_device]}
786 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
787 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
789 ComputeCephDeployment:
790 type: OS::Heat::StructuredDeployments
792 config: {get_attr: [CephClusterConfig, config_id]}
793 servers: {get_attr: [Compute, attributes, nova_server_resource]}
795 ControllerCephDeployment:
796 type: OS::Heat::StructuredDeployments
798 config: {get_attr: [CephClusterConfig, config_id]}
799 servers: {get_attr: [Controller, attributes, nova_server_resource]}
801 CephStorageCephDeployment:
802 type: OS::Heat::StructuredDeployments
804 config: {get_attr: [CephClusterConfig, config_id]}
805 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
808 type: OS::TripleO::CephClusterConfig::SoftwareConfig
810 ceph_fsid: {get_param: CephClusterFSID}
811 ceph_mon_key: {get_param: CephMonKey}
812 ceph_admin_key: {get_param: CephAdminKey}
813 ceph_mon_names: {get_attr: [Controller, hostname]}
814 ceph_mon_ips: {get_attr: [Controller, ip_address]}
816 ControllerClusterConfig:
817 type: OS::Heat::StructuredConfig
821 nodes: {get_attr: [Controller, corosync_node]}
825 nodes: {get_attr: [Controller, hostname]}
827 nodes: {get_attr: [Controller, corosync_node]}
829 nodes: {get_attr: [Controller, corosync_node]}
831 ControllerClusterDeployment:
832 type: OS::Heat::StructuredDeployments
834 config: {get_resource: ControllerClusterConfig}
835 servers: {get_attr: [Controller, attributes, nova_server_resource]}
836 signal_transport: NO_SIGNAL
838 ControllerAllNodesDeployment:
839 type: OS::Heat::StructuredDeployments
841 config: {get_attr: [allNodesConfig, config_id]}
842 servers: {get_attr: [Controller, attributes, nova_server_resource]}
844 ComputeAllNodesDeployment:
845 type: OS::Heat::StructuredDeployments
847 config: {get_attr: [allNodesConfig, config_id]}
848 servers: {get_attr: [Compute, attributes, nova_server_resource]}
850 BlockStorageAllNodesDeployment:
851 type: OS::Heat::StructuredDeployments
853 config: {get_attr: [allNodesConfig, config_id]}
854 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
856 ObjectStorageAllNodesDeployment:
857 type: OS::Heat::StructuredDeployments
859 config: {get_attr: [allNodesConfig, config_id]}
860 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
862 CephStorageAllNodesDeployment:
863 type: OS::Heat::StructuredDeployments
865 config: {get_attr: [allNodesConfig, config_id]}
866 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
868 # Nested stack deployment runs after all other controller deployments
869 ControllerNodesPostDeployment:
870 type: OS::TripleO::ControllerPostDeployment
871 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
873 servers: {get_attr: [Controller, attributes, nova_server_resource]}
875 ComputeNodesPostDeployment:
876 type: OS::TripleO::ComputePostDeployment
877 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
879 servers: {get_attr: [Compute, attributes, nova_server_resource]}
881 ObjectStorageNodesPostDeployment:
882 type: OS::TripleO::ObjectStoragePostDeployment
883 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
885 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
887 BlockStorageNodesPostDeployment:
888 type: OS::TripleO::BlockStoragePostDeployment
889 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
891 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
893 CephStorageNodesPostDeployment:
894 type: OS::TripleO::CephStoragePostDeployment
895 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
897 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
901 description: URL for the Overcloud Keystone service
906 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}