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.
265 Additional configuration to inject into the cluster. The JSON should have
266 the following structure:
269 [{"section": "SECTIONNAME",
271 [{"option": "OPTIONNAME",
282 [{"section": "default",
284 [{"option": "force_config_drive",
291 [{"option": "driver",
292 "value": "nova.cells.rpc_driver.CellsRPCDriver"
301 description: The filepath of the file to use for logging messages from Glance.
304 GlanceNotifierStrategy:
305 description: Strategy to use for Glance notification queue
310 description: The password for the glance service account, used by the glance services.
315 description: The password for the Heat service account, used by the Heat services.
318 HeatStackDomainAdminPassword:
319 description: Password for heat_domain_admin user.
323 KeystoneCACertificate:
325 description: Keystone self-signed certificate authority certificate.
327 KeystoneSigningCertificate:
329 description: Keystone certificate for verifying token validity.
333 description: Keystone key for signing tokens.
336 KeystoneSSLCertificate:
338 description: Keystone certificate for verifying token validity.
340 KeystoneSSLCertificateKey:
342 description: Keystone key for signing tokens.
345 MysqlInnodbBufferPoolSize:
347 Specifies the size of the buffer pool in megabytes. Setting to
348 zero should be interpreted as "no value" and will defer to the
352 NeutronDnsmasqOptions:
353 default: 'dhcp-option-force=26,1400'
354 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
356 NeutronPublicInterfaceDefaultRoute:
358 description: A custom default route for the NeutronPublicInterface.
360 NeutronPublicInterfaceIP:
362 description: A custom IP address to put onto the NeutronPublicInterface.
364 NeutronPublicInterfaceRawDevice:
366 description: If set, the public interface is a vlan with this device as the raw device.
368 PublicVirtualInterface:
371 Specifies the interface where the public-facing virtual ip will be assigned.
372 This should be int_public when a VLAN is being used.
376 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
381 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
386 description: If set, the contents of an SSL certificate authority file.
390 description: A random string to be used as a salt when hashing to determine mappings in the ring.
395 description: The password for the swift service account, used by the swift proxy services.
400 description: Value of mount_check in Swift account/container/object -server.conf
405 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
408 description: Partition Power to use when building Swift rings
413 description: How many replicas to use in the swift rings.
415 # Compute-specific params
416 CeilometerComputeAgent:
417 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
421 - allowed_values: ['', Present]
425 HypervisorNeutronPhysicalBridge:
428 An OVS bridge to create on each hypervisor. This defaults to br-ex the
429 same as the control plane nodes, as we have a uniform configuration of
430 the openvswitch agent. Typically should not need to be changed.
432 HypervisorNeutronPublicInterface:
434 description: What interface to add to the HypervisorNeutronPhysicalBridge.
436 NeutronNetworkVLANRanges:
437 default: 'datacentre'
439 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
440 Neutron documentation for permitted values. Defaults to permitting any
441 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
445 default: libvirt.LibvirtDriver
446 NovaComputeExtraConfig:
449 NovaCompute specific configuration to inject into the cluster. Same
450 structure as ExtraConfig.
452 NovaComputeLibvirtType:
455 NovaEnableRbdBackend:
457 description: Whether to enable or not the Rbd backend for Nova
461 default: overcloud-compute
463 - custom_constraint: glance.image
464 OvercloudComputeFlavor:
465 description: Use this flavor
468 - custom_constraint: nova.flavor
470 # Block storage specific parameters
475 default: overcloud-cinder-volume
477 OvercloudBlockStorageFlavor:
478 description: Flavor for block storage nodes to request when deploying.
481 - custom_constraint: nova.flavor
483 # Object storage specific parameters
487 OvercloudSwiftStorageFlavor:
488 description: Flavor for Swift storage nodes to request when deploying.
491 - custom_constraint: nova.flavor
493 default: overcloud-swift-storage
496 # Ceph storage specific parameters
501 default: overcloud-ceph-storage
503 OvercloudCephStorageFlavor:
505 description: Flavor for Ceph storage nodes to request when deploying.
508 - custom_constraint: nova.flavor
512 HeatAuthEncryptionKey:
513 type: OS::Heat::RandomString
516 type: OS::Heat::ResourceGroup
518 count: {get_param: ControllerCount}
520 type: OS::TripleO::Controller
522 AdminPassword: {get_param: AdminPassword}
523 AdminToken: {get_param: AdminToken}
524 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
525 CeilometerPassword: {get_param: CeilometerPassword}
526 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
527 CinderPassword: {get_param: CinderPassword}
528 CinderISCSIHelper: {get_param: CinderISCSIHelper}
529 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
530 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
531 CloudName: {get_param: CloudName}
532 ControlVirtualInterface: {get_param: ControlVirtualInterface}
533 ControllerExtraConfig: {get_param: controllerExtraConfig}
534 Debug: {get_param: Debug}
535 ExtraConfig: {get_param: ExtraConfig}
536 Flavor: {get_param: OvercloudControlFlavor}
537 GlancePort: {get_param: GlancePort}
538 GlanceProtocol: {get_param: GlanceProtocol}
539 GlancePassword: {get_param: GlancePassword}
540 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
541 GlanceLogFile: {get_param: GlanceLogFile}
542 HeatPassword: {get_param: HeatPassword}
543 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
544 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
545 Image: {get_param: controllerImage}
546 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
547 KeyName: {get_param: KeyName}
548 KeystoneCACertificate: {get_param: KeystoneCACertificate}
549 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
550 KeystoneSigningKey: {get_param: KeystoneSigningKey}
551 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
552 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
553 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
554 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
555 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
556 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
557 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
558 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
559 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
560 NeutronPublicInterface: {get_param: NeutronPublicInterface}
561 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
562 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
563 NeutronPassword: {get_param: NeutronPassword}
564 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
565 NeutronDVR: {get_param: NeutronDVR}
566 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
567 NeutronAgentMode: {get_param: NeutronAgentMode}
568 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
569 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
570 NeutronL3HA: {get_param: NeutronL3HA}
571 NeutronNetworkType: {get_param: NeutronNetworkType}
572 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
573 NovaPassword: {get_param: NovaPassword}
574 NtpServer: {get_param: NtpServer}
575 PublicVirtualInterface: {get_param: PublicVirtualInterface}
576 RabbitPassword: {get_param: RabbitPassword}
577 RabbitUserName: {get_param: RabbitUserName}
578 RabbitCookie: {get_attr: [RabbitCookie, value]}
579 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
580 RabbitClientPort: {get_param: RabbitClientPort}
581 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
582 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
583 SSLCertificate: {get_param: SSLCertificate}
584 SSLKey: {get_param: SSLKey}
585 SSLCACertificate: {get_param: SSLCACertificate}
586 SwiftHashSuffix: {get_param: SwiftHashSuffix}
587 SwiftMountCheck: {get_param: SwiftMountCheck}
588 SwiftMinPartHours: {get_param: SwiftMinPartHours}
589 SwiftPartPower: {get_param: SwiftPartPower}
590 SwiftPassword: {get_param: SwiftPassword}
591 SwiftReplicas: { get_param: SwiftReplicas}
592 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
593 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
596 type: OS::Heat::ResourceGroup
598 count: {get_param: ComputeCount}
600 type: OS::TripleO::Compute
602 AdminPassword: {get_param: AdminPassword}
603 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
604 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
605 CeilometerPassword: {get_param: CeilometerPassword}
606 Debug: {get_param: Debug}
607 ExtraConfig: {get_param: ExtraConfig}
608 Flavor: {get_param: OvercloudComputeFlavor}
609 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
610 GlancePort: {get_param: GlancePort}
611 GlanceProtocol: {get_param: GlanceProtocol}
612 Image: {get_param: NovaImage}
613 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
614 KeyName: {get_param: KeyName}
615 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
616 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
617 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
618 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
619 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
620 NeutronNetworkType: {get_param: NeutronNetworkType}
621 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
622 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
623 NeutronPassword: {get_param: NeutronPassword}
624 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
625 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
626 NeutronDVR: {get_param: NeutronDVR}
627 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
628 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
629 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
630 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
631 # L3 HA and Failover is not relevant for Computes, should be removed
632 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
633 NeutronL3HA: {get_param: NeutronL3HA}
634 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
635 NovaComputeDriver: {get_param: NovaComputeDriver}
636 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
637 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
638 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
639 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
640 NovaPassword: {get_param: NovaPassword}
641 NtpServer: {get_param: NtpServer}
642 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
643 RabbitPassword: {get_param: RabbitPassword}
644 RabbitUserName: {get_param: RabbitUserName}
645 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
646 RabbitClientPort: {get_param: RabbitClientPort}
647 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
648 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
651 type: OS::Heat::ResourceGroup
653 count: {get_param: BlockStorageCount}
655 type: OS::TripleO::BlockStorage
657 Debug: {get_param: Debug}
658 Image: {get_param: BlockStorageImage}
659 CinderISCSIHelper: {get_param: CinderISCSIHelper}
660 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
661 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
662 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
663 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
664 KeyName: {get_param: KeyName}
665 Flavor: {get_param: OvercloudBlockStorageFlavor}
666 RabbitPassword: {get_param: RabbitPassword}
667 RabbitUserName: {get_param: RabbitUserName}
668 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
669 RabbitClientPort: {get_param: RabbitClientPort}
670 NtpServer: {get_param: NtpServer}
673 type: OS::Heat::ResourceGroup
675 count: {get_param: ObjectStorageCount}
677 type: OS::TripleO::ObjectStorage
679 KeyName: {get_param: KeyName}
680 Flavor: {get_param: OvercloudSwiftStorageFlavor}
681 HashSuffix: {get_param: SwiftHashSuffix}
682 MountCheck: {get_param: SwiftMountCheck}
683 MinPartHours: {get_param: SwiftMinPartHours}
684 PartPower: {get_param: SwiftPartPower}
685 Image: {get_param: SwiftStorageImage}
686 Replicas: { get_param: SwiftReplicas}
687 NtpServer: {get_param: NtpServer}
690 type: OS::Heat::ResourceGroup
692 count: {get_param: CephStorageCount}
694 type: OS::TripleO::CephStorage
696 Image: {get_param: CephStorageImage}
697 KeyName: {get_param: KeyName}
698 Flavor: {get_param: OvercloudCephStorageFlavor}
699 NtpServer: {get_param: NtpServer}
702 type: OS::TripleO::AllNodes::SoftwareConfig
704 compute_hosts: {get_attr: [Compute, hosts_entry]}
705 controller_hosts: {get_attr: [Controller, hosts_entry]}
706 controller_ips: {get_attr: [Controller, ip_address]}
707 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
708 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
709 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
710 controller_names: {get_attr: [Controller, hostname]}
713 type: OS::Heat::RandomString
717 MysqlClusterUniquePart:
718 type: OS::Heat::RandomString
723 type: OS::Heat::RandomString
726 salt: {get_param: RabbitCookieSalt}
729 type: OS::Neutron::Port
731 name: control_virtual_ip
732 network_id: {get_param: NeutronControlPlaneID}
733 fixed_ips: {get_param: ControlFixedIPs}
734 replacement_policy: AUTO
737 type: OS::Neutron::Port
739 name: public_virtual_ip
740 network: {get_param: PublicVirtualNetwork}
741 fixed_ips: {get_param: PublicVirtualFixedIPs}
742 replacement_policy: AUTO
744 ControllerBootstrapNodeConfig:
745 type: OS::TripleO::BootstrapNode::SoftwareConfig
747 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
748 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
750 ControllerBootstrapNodeDeployment:
751 type: OS::Heat::StructuredDeployments
753 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
754 servers: {get_attr: [Controller, attributes, nova_server_resource]}
755 signal_transport: NO_SIGNAL
757 ControllerSwiftDeployment:
758 type: OS::Heat::StructuredDeployments
760 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
761 servers: {get_attr: [Controller, attributes, nova_server_resource]}
762 signal_transport: NO_SIGNAL
764 ObjectStorageSwiftDeployment:
765 type: OS::Heat::StructuredDeployments
767 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
768 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
769 signal_transport: NO_SIGNAL
771 SwiftDevicesAndProxyConfig:
772 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
774 controller_swift_devices: {get_attr: [Controller, swift_device]}
775 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
776 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
778 ComputeCephDeployment:
779 type: OS::Heat::StructuredDeployments
781 config: {get_attr: [CephClusterConfig, config_id]}
782 servers: {get_attr: [Compute, attributes, nova_server_resource]}
784 ControllerCephDeployment:
785 type: OS::Heat::StructuredDeployments
787 config: {get_attr: [CephClusterConfig, config_id]}
788 servers: {get_attr: [Controller, attributes, nova_server_resource]}
790 CephStorageCephDeployment:
791 type: OS::Heat::StructuredDeployments
793 config: {get_attr: [CephClusterConfig, config_id]}
794 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
797 type: OS::TripleO::CephClusterConfig::SoftwareConfig
799 ceph_fsid: {get_param: CephClusterFSID}
800 ceph_mon_key: {get_param: CephMonKey}
801 ceph_admin_key: {get_param: CephAdminKey}
802 ceph_mon_names: {get_attr: [Controller, hostname]}
803 ceph_mon_ips: {get_attr: [Controller, ip_address]}
805 ControllerClusterConfig:
806 type: OS::Heat::StructuredConfig
810 nodes: {get_attr: [Controller, corosync_node]}
814 nodes: {get_attr: [Controller, hostname]}
816 nodes: {get_attr: [Controller, corosync_node]}
818 nodes: {get_attr: [Controller, corosync_node]}
820 ControllerClusterDeployment:
821 type: OS::Heat::StructuredDeployments
823 config: {get_resource: ControllerClusterConfig}
824 servers: {get_attr: [Controller, attributes, nova_server_resource]}
825 signal_transport: NO_SIGNAL
827 ControllerAllNodesDeployment:
828 type: OS::Heat::StructuredDeployments
830 config: {get_attr: [allNodesConfig, config_id]}
831 servers: {get_attr: [Controller, attributes, nova_server_resource]}
833 ComputeAllNodesDeployment:
834 type: OS::Heat::StructuredDeployments
836 config: {get_attr: [allNodesConfig, config_id]}
837 servers: {get_attr: [Compute, attributes, nova_server_resource]}
839 BlockStorageAllNodesDeployment:
840 type: OS::Heat::StructuredDeployments
842 config: {get_attr: [allNodesConfig, config_id]}
843 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
845 ObjectStorageAllNodesDeployment:
846 type: OS::Heat::StructuredDeployments
848 config: {get_attr: [allNodesConfig, config_id]}
849 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
851 CephStorageAllNodesDeployment:
852 type: OS::Heat::StructuredDeployments
854 config: {get_attr: [allNodesConfig, config_id]}
855 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
857 # Nested stack deployment runs after all other controller deployments
858 ControllerNodesPostDeployment:
859 type: OS::TripleO::ControllerPostDeployment
860 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
862 servers: {get_attr: [Controller, attributes, nova_server_resource]}
864 ComputeNodesPostDeployment:
865 type: OS::TripleO::ComputePostDeployment
866 depends_on: ComputeAllNodesDeployment
868 servers: {get_attr: [Compute, attributes, nova_server_resource]}
870 ObjectStorageNodesPostDeployment:
871 type: OS::TripleO::ObjectStoragePostDeployment
872 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
874 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
876 BlockStorageNodesPostDeployment:
877 type: OS::TripleO::BlockStoragePostDeployment
878 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
880 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
882 CephStorageNodesPostDeployment:
883 type: OS::TripleO::CephStoragePostDeployment
884 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
886 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
890 description: URL for the Overcloud Keystone service
895 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}