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::ResourceGroup
522 count: {get_param: ControllerCount}
524 type: OS::TripleO::Controller
526 AdminPassword: {get_param: AdminPassword}
527 AdminToken: {get_param: AdminToken}
528 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
529 CeilometerPassword: {get_param: CeilometerPassword}
530 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
531 CinderPassword: {get_param: CinderPassword}
532 CinderISCSIHelper: {get_param: CinderISCSIHelper}
533 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
534 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
535 CloudName: {get_param: CloudName}
536 ControlVirtualInterface: {get_param: ControlVirtualInterface}
537 ControllerExtraConfig: {get_param: controllerExtraConfig}
538 Debug: {get_param: Debug}
539 EnableGalera: {get_param: EnableGalera}
540 ExtraConfig: {get_param: ExtraConfig}
541 Flavor: {get_param: OvercloudControlFlavor}
542 GlancePort: {get_param: GlancePort}
543 GlanceProtocol: {get_param: GlanceProtocol}
544 GlancePassword: {get_param: GlancePassword}
545 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
546 GlanceLogFile: {get_param: GlanceLogFile}
547 HeatPassword: {get_param: HeatPassword}
548 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
549 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
550 Image: {get_param: controllerImage}
551 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
552 KeyName: {get_param: KeyName}
553 KeystoneCACertificate: {get_param: KeystoneCACertificate}
554 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
555 KeystoneSigningKey: {get_param: KeystoneSigningKey}
556 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
557 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
558 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
559 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
560 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
561 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
562 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
563 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
564 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
565 NeutronPublicInterface: {get_param: NeutronPublicInterface}
566 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
567 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
568 NeutronPassword: {get_param: NeutronPassword}
569 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
570 NeutronDVR: {get_param: NeutronDVR}
571 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
572 NeutronAgentMode: {get_param: NeutronAgentMode}
573 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
574 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
575 NeutronL3HA: {get_param: NeutronL3HA}
576 NeutronNetworkType: {get_param: NeutronNetworkType}
577 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
578 NovaPassword: {get_param: NovaPassword}
579 NtpServer: {get_param: NtpServer}
580 PublicVirtualInterface: {get_param: PublicVirtualInterface}
581 RabbitPassword: {get_param: RabbitPassword}
582 RabbitUserName: {get_param: RabbitUserName}
583 RabbitCookie: {get_attr: [RabbitCookie, value]}
584 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
585 RabbitClientPort: {get_param: RabbitClientPort}
586 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
587 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
588 SSLCertificate: {get_param: SSLCertificate}
589 SSLKey: {get_param: SSLKey}
590 SSLCACertificate: {get_param: SSLCACertificate}
591 SwiftHashSuffix: {get_param: SwiftHashSuffix}
592 SwiftMountCheck: {get_param: SwiftMountCheck}
593 SwiftMinPartHours: {get_param: SwiftMinPartHours}
594 SwiftPartPower: {get_param: SwiftPartPower}
595 SwiftPassword: {get_param: SwiftPassword}
596 SwiftReplicas: { get_param: SwiftReplicas}
597 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
598 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
601 type: OS::Heat::ResourceGroup
603 count: {get_param: ComputeCount}
605 type: OS::TripleO::Compute
607 AdminPassword: {get_param: AdminPassword}
608 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
609 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
610 CeilometerPassword: {get_param: CeilometerPassword}
611 Debug: {get_param: Debug}
612 ExtraConfig: {get_param: ExtraConfig}
613 Flavor: {get_param: OvercloudComputeFlavor}
614 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
615 GlancePort: {get_param: GlancePort}
616 GlanceProtocol: {get_param: GlanceProtocol}
617 Image: {get_param: NovaImage}
618 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
619 KeyName: {get_param: KeyName}
620 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
621 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
622 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
623 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
624 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
625 NeutronNetworkType: {get_param: NeutronNetworkType}
626 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
627 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
628 NeutronPassword: {get_param: NeutronPassword}
629 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
630 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
631 NeutronDVR: {get_param: NeutronDVR}
632 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
633 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
634 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
635 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
636 # L3 HA and Failover is not relevant for Computes, should be removed
637 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
638 NeutronL3HA: {get_param: NeutronL3HA}
639 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
640 NovaComputeDriver: {get_param: NovaComputeDriver}
641 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
642 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
643 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
644 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
645 NovaPassword: {get_param: NovaPassword}
646 NtpServer: {get_param: NtpServer}
647 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
648 RabbitPassword: {get_param: RabbitPassword}
649 RabbitUserName: {get_param: RabbitUserName}
650 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
651 RabbitClientPort: {get_param: RabbitClientPort}
652 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
653 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
656 type: OS::Heat::ResourceGroup
658 count: {get_param: BlockStorageCount}
660 type: OS::TripleO::BlockStorage
662 Debug: {get_param: Debug}
663 Image: {get_param: BlockStorageImage}
664 CinderISCSIHelper: {get_param: CinderISCSIHelper}
665 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
666 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
667 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
668 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
669 KeyName: {get_param: KeyName}
670 Flavor: {get_param: OvercloudBlockStorageFlavor}
671 RabbitPassword: {get_param: RabbitPassword}
672 RabbitUserName: {get_param: RabbitUserName}
673 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
674 RabbitClientPort: {get_param: RabbitClientPort}
675 NtpServer: {get_param: NtpServer}
678 type: OS::Heat::ResourceGroup
680 count: {get_param: ObjectStorageCount}
682 type: OS::TripleO::ObjectStorage
684 KeyName: {get_param: KeyName}
685 Flavor: {get_param: OvercloudSwiftStorageFlavor}
686 HashSuffix: {get_param: SwiftHashSuffix}
687 MountCheck: {get_param: SwiftMountCheck}
688 MinPartHours: {get_param: SwiftMinPartHours}
689 PartPower: {get_param: SwiftPartPower}
690 Image: {get_param: SwiftStorageImage}
691 Replicas: { get_param: SwiftReplicas}
692 NtpServer: {get_param: NtpServer}
695 type: OS::Heat::ResourceGroup
697 count: {get_param: CephStorageCount}
699 type: OS::TripleO::CephStorage
701 Image: {get_param: CephStorageImage}
702 KeyName: {get_param: KeyName}
703 Flavor: {get_param: OvercloudCephStorageFlavor}
704 NtpServer: {get_param: NtpServer}
707 type: OS::TripleO::AllNodes::SoftwareConfig
709 compute_hosts: {get_attr: [Compute, hosts_entry]}
710 controller_hosts: {get_attr: [Controller, hosts_entry]}
711 controller_ips: {get_attr: [Controller, ip_address]}
712 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
713 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
714 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
715 controller_names: {get_attr: [Controller, hostname]}
718 type: OS::Heat::RandomString
722 MysqlClusterUniquePart:
723 type: OS::Heat::RandomString
728 type: OS::Heat::RandomString
731 salt: {get_param: RabbitCookieSalt}
734 type: OS::Neutron::Port
736 name: control_virtual_ip
737 network_id: {get_param: NeutronControlPlaneID}
738 fixed_ips: {get_param: ControlFixedIPs}
739 replacement_policy: AUTO
742 type: OS::Neutron::Port
744 name: public_virtual_ip
745 network: {get_param: PublicVirtualNetwork}
746 fixed_ips: {get_param: PublicVirtualFixedIPs}
747 replacement_policy: AUTO
749 ControllerBootstrapNodeConfig:
750 type: OS::TripleO::BootstrapNode::SoftwareConfig
752 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
753 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
755 ControllerBootstrapNodeDeployment:
756 type: OS::Heat::StructuredDeployments
758 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
759 servers: {get_attr: [Controller, attributes, nova_server_resource]}
760 signal_transport: NO_SIGNAL
762 ControllerSwiftDeployment:
763 type: OS::Heat::StructuredDeployments
765 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
766 servers: {get_attr: [Controller, attributes, nova_server_resource]}
767 signal_transport: NO_SIGNAL
769 ObjectStorageSwiftDeployment:
770 type: OS::Heat::StructuredDeployments
772 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
773 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
774 signal_transport: NO_SIGNAL
776 SwiftDevicesAndProxyConfig:
777 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
779 controller_swift_devices: {get_attr: [Controller, swift_device]}
780 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
781 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
783 ComputeCephDeployment:
784 type: OS::Heat::StructuredDeployments
786 config: {get_attr: [CephClusterConfig, config_id]}
787 servers: {get_attr: [Compute, attributes, nova_server_resource]}
789 ControllerCephDeployment:
790 type: OS::Heat::StructuredDeployments
792 config: {get_attr: [CephClusterConfig, config_id]}
793 servers: {get_attr: [Controller, attributes, nova_server_resource]}
795 CephStorageCephDeployment:
796 type: OS::Heat::StructuredDeployments
798 config: {get_attr: [CephClusterConfig, config_id]}
799 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
802 type: OS::TripleO::CephClusterConfig::SoftwareConfig
804 ceph_fsid: {get_param: CephClusterFSID}
805 ceph_mon_key: {get_param: CephMonKey}
806 ceph_admin_key: {get_param: CephAdminKey}
807 ceph_mon_names: {get_attr: [Controller, hostname]}
808 ceph_mon_ips: {get_attr: [Controller, ip_address]}
810 ControllerClusterConfig:
811 type: OS::Heat::StructuredConfig
815 nodes: {get_attr: [Controller, corosync_node]}
819 nodes: {get_attr: [Controller, hostname]}
821 nodes: {get_attr: [Controller, corosync_node]}
823 nodes: {get_attr: [Controller, corosync_node]}
825 ControllerClusterDeployment:
826 type: OS::Heat::StructuredDeployments
828 config: {get_resource: ControllerClusterConfig}
829 servers: {get_attr: [Controller, attributes, nova_server_resource]}
830 signal_transport: NO_SIGNAL
832 ControllerAllNodesDeployment:
833 type: OS::Heat::StructuredDeployments
835 config: {get_attr: [allNodesConfig, config_id]}
836 servers: {get_attr: [Controller, attributes, nova_server_resource]}
838 ComputeAllNodesDeployment:
839 type: OS::Heat::StructuredDeployments
841 config: {get_attr: [allNodesConfig, config_id]}
842 servers: {get_attr: [Compute, attributes, nova_server_resource]}
844 BlockStorageAllNodesDeployment:
845 type: OS::Heat::StructuredDeployments
847 config: {get_attr: [allNodesConfig, config_id]}
848 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
850 ObjectStorageAllNodesDeployment:
851 type: OS::Heat::StructuredDeployments
853 config: {get_attr: [allNodesConfig, config_id]}
854 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
856 CephStorageAllNodesDeployment:
857 type: OS::Heat::StructuredDeployments
859 config: {get_attr: [allNodesConfig, config_id]}
860 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
862 # Nested stack deployment runs after all other controller deployments
863 ControllerNodesPostDeployment:
864 type: OS::TripleO::ControllerPostDeployment
865 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
867 servers: {get_attr: [Controller, attributes, nova_server_resource]}
869 ComputeNodesPostDeployment:
870 type: OS::TripleO::ComputePostDeployment
871 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
873 servers: {get_attr: [Compute, attributes, nova_server_resource]}
875 ObjectStorageNodesPostDeployment:
876 type: OS::TripleO::ObjectStoragePostDeployment
877 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
879 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
881 BlockStorageNodesPostDeployment:
882 type: OS::TripleO::BlockStoragePostDeployment
883 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
885 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
887 CephStorageNodesPostDeployment:
888 type: OS::TripleO::CephStoragePostDeployment
889 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
891 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
895 description: URL for the Overcloud Keystone service
900 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}