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.
35 description: The Ceph monitors key.
39 description: The Ceph admin client 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 ExtraConfig: {get_param: ExtraConfig}
535 Flavor: {get_param: OvercloudControlFlavor}
536 GlancePort: {get_param: GlancePort}
537 GlanceProtocol: {get_param: GlanceProtocol}
538 GlancePassword: {get_param: GlancePassword}
539 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
540 GlanceLogFile: {get_param: GlanceLogFile}
541 HeatPassword: {get_param: HeatPassword}
542 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
543 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
544 Image: {get_param: controllerImage}
545 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
546 KeyName: {get_param: KeyName}
547 KeystoneCACertificate: {get_param: KeystoneCACertificate}
548 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
549 KeystoneSigningKey: {get_param: KeystoneSigningKey}
550 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
551 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
552 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
553 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
554 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
555 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
556 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
557 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
558 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
559 NeutronPublicInterface: {get_param: NeutronPublicInterface}
560 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
561 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
562 NeutronPassword: {get_param: NeutronPassword}
563 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
564 NeutronDVR: {get_param: NeutronDVR}
565 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
566 NeutronAgentMode: {get_param: NeutronAgentMode}
567 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
568 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
569 NeutronL3HA: {get_param: NeutronL3HA}
570 NeutronNetworkType: {get_param: NeutronNetworkType}
571 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
572 NovaPassword: {get_param: NovaPassword}
573 NtpServer: {get_param: NtpServer}
574 PublicVirtualInterface: {get_param: PublicVirtualInterface}
575 RabbitPassword: {get_param: RabbitPassword}
576 RabbitUserName: {get_param: RabbitUserName}
577 RabbitCookie: {get_attr: [RabbitCookie, value]}
578 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
579 RabbitClientPort: {get_param: RabbitClientPort}
580 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
581 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
582 SSLCertificate: {get_param: SSLCertificate}
583 SSLKey: {get_param: SSLKey}
584 SSLCACertificate: {get_param: SSLCACertificate}
585 SwiftHashSuffix: {get_param: SwiftHashSuffix}
586 SwiftMountCheck: {get_param: SwiftMountCheck}
587 SwiftMinPartHours: {get_param: SwiftMinPartHours}
588 SwiftPartPower: {get_param: SwiftPartPower}
589 SwiftPassword: {get_param: SwiftPassword}
590 SwiftReplicas: { get_param: SwiftReplicas}
591 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
592 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
595 type: OS::Heat::ResourceGroup
597 count: {get_param: ComputeCount}
599 type: OS::TripleO::Compute
601 AdminPassword: {get_param: AdminPassword}
602 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
603 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
604 CeilometerPassword: {get_param: CeilometerPassword}
605 ExtraConfig: {get_param: ExtraConfig}
606 Flavor: {get_param: OvercloudComputeFlavor}
607 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
608 GlancePort: {get_param: GlancePort}
609 GlanceProtocol: {get_param: GlanceProtocol}
610 Image: {get_param: NovaImage}
611 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
612 KeyName: {get_param: KeyName}
613 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
614 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
615 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
616 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
617 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
618 NeutronNetworkType: {get_param: NeutronNetworkType}
619 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
620 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
621 NeutronPassword: {get_param: NeutronPassword}
622 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
623 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
624 NeutronDVR: {get_param: NeutronDVR}
625 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
626 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
627 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
628 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
629 # L3 HA and Failover is not relevant for Computes, should be removed
630 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
631 NeutronL3HA: {get_param: NeutronL3HA}
632 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
633 NovaComputeDriver: {get_param: NovaComputeDriver}
634 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
635 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
636 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
637 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
638 NovaPassword: {get_param: NovaPassword}
639 NtpServer: {get_param: NtpServer}
640 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
641 RabbitPassword: {get_param: RabbitPassword}
642 RabbitUserName: {get_param: RabbitUserName}
643 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
644 RabbitClientPort: {get_param: RabbitClientPort}
645 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
646 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
649 type: OS::Heat::ResourceGroup
651 count: {get_param: BlockStorageCount}
653 type: OS::TripleO::BlockStorage
655 Image: {get_param: BlockStorageImage}
656 CinderISCSIHelper: {get_param: CinderISCSIHelper}
657 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
658 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
659 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
660 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
661 KeyName: {get_param: KeyName}
662 Flavor: {get_param: OvercloudBlockStorageFlavor}
663 RabbitPassword: {get_param: RabbitPassword}
664 RabbitUserName: {get_param: RabbitUserName}
665 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
666 RabbitClientPort: {get_param: RabbitClientPort}
667 NtpServer: {get_param: NtpServer}
670 type: OS::Heat::ResourceGroup
672 count: {get_param: ObjectStorageCount}
674 type: OS::TripleO::ObjectStorage
676 KeyName: {get_param: KeyName}
677 Flavor: {get_param: OvercloudSwiftStorageFlavor}
678 HashSuffix: {get_param: SwiftHashSuffix}
679 MountCheck: {get_param: SwiftMountCheck}
680 MinPartHours: {get_param: SwiftMinPartHours}
681 PartPower: {get_param: SwiftPartPower}
682 Image: {get_param: SwiftStorageImage}
683 Replicas: { get_param: SwiftReplicas}
684 NtpServer: {get_param: NtpServer}
687 type: OS::Heat::ResourceGroup
689 count: {get_param: CephStorageCount}
691 type: OS::TripleO::CephStorage
693 Image: {get_param: CephStorageImage}
694 KeyName: {get_param: KeyName}
695 Flavor: {get_param: OvercloudCephStorageFlavor}
696 NtpServer: {get_param: NtpServer}
699 type: OS::TripleO::AllNodes::SoftwareConfig
701 compute_hosts: {get_attr: [Compute, hosts_entry]}
702 controller_hosts: {get_attr: [Controller, hosts_entry]}
703 controller_ips: {get_attr: [Controller, ip_address]}
704 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
705 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
706 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
707 controller_names: {get_attr: [Controller, hostname]}
710 type: OS::Heat::RandomString
714 MysqlClusterUniquePart:
715 type: OS::Heat::RandomString
720 type: OS::Heat::RandomString
723 salt: {get_param: RabbitCookieSalt}
726 type: OS::Neutron::Port
728 name: control_virtual_ip
729 network_id: {get_param: NeutronControlPlaneID}
730 fixed_ips: {get_param: ControlFixedIPs}
731 replacement_policy: AUTO
734 type: OS::Neutron::Port
736 name: public_virtual_ip
737 network: {get_param: PublicVirtualNetwork}
738 fixed_ips: {get_param: PublicVirtualFixedIPs}
739 replacement_policy: AUTO
741 ControllerBootstrapNodeConfig:
742 type: OS::TripleO::BootstrapNode::SoftwareConfig
744 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
746 ControllerBootstrapNodeDeployment:
747 type: OS::Heat::StructuredDeployments
749 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
750 servers: {get_attr: [Controller, attributes, nova_server_resource]}
751 signal_transport: NO_SIGNAL
753 ControllerSwiftDeployment:
754 type: OS::Heat::StructuredDeployments
756 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
757 servers: {get_attr: [Controller, attributes, nova_server_resource]}
758 signal_transport: NO_SIGNAL
760 ObjectStorageSwiftDeployment:
761 type: OS::Heat::StructuredDeployments
763 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
764 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
765 signal_transport: NO_SIGNAL
767 SwiftDevicesAndProxyConfig:
768 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
770 controller_swift_devices: {get_attr: [Controller, swift_device]}
771 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
772 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
774 ComputeCephDeployment:
775 type: OS::Heat::StructuredDeployments
777 config: {get_attr: [CephClusterConfig, config_id]}
778 servers: {get_attr: [Compute, attributes, nova_server_resource]}
780 ControllerCephDeployment:
781 type: OS::Heat::StructuredDeployments
783 config: {get_attr: [CephClusterConfig, config_id]}
784 servers: {get_attr: [Controller, attributes, nova_server_resource]}
786 CephStorageCephDeployment:
787 type: OS::Heat::StructuredDeployments
789 config: {get_attr: [CephClusterConfig, config_id]}
790 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
793 type: OS::TripleO::CephClusterConfig::SoftwareConfig
795 ceph_fsid: {get_param: CephClusterFSID}
796 ceph_mon_key: {get_param: CephMonKey}
797 ceph_admin_key: {get_param: CephAdminKey}
798 ceph_mon_names: {get_attr: [Controller, hostname]}
799 ceph_mon_ips: {get_attr: [Controller, ip_address]}
801 ControllerClusterConfig:
802 type: OS::Heat::StructuredConfig
806 nodes: {get_attr: [Controller, corosync_node]}
810 nodes: {get_attr: [Controller, hostname]}
812 nodes: {get_attr: [Controller, corosync_node]}
814 nodes: {get_attr: [Controller, corosync_node]}
816 ControllerClusterDeployment:
817 type: OS::Heat::StructuredDeployments
819 config: {get_resource: ControllerClusterConfig}
820 servers: {get_attr: [Controller, attributes, nova_server_resource]}
821 signal_transport: NO_SIGNAL
823 ControllerAllNodesDeployment:
824 type: OS::Heat::StructuredDeployments
826 config: {get_attr: [allNodesConfig, config_id]}
827 servers: {get_attr: [Controller, attributes, nova_server_resource]}
829 ComputeAllNodesDeployment:
830 type: OS::Heat::StructuredDeployments
832 config: {get_attr: [allNodesConfig, config_id]}
833 servers: {get_attr: [Compute, attributes, nova_server_resource]}
835 BlockStorageAllNodesDeployment:
836 type: OS::Heat::StructuredDeployments
838 config: {get_attr: [allNodesConfig, config_id]}
839 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
841 ObjectStorageAllNodesDeployment:
842 type: OS::Heat::StructuredDeployments
844 config: {get_attr: [allNodesConfig, config_id]}
845 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
847 CephStorageAllNodesDeployment:
848 type: OS::Heat::StructuredDeployments
850 config: {get_attr: [allNodesConfig, config_id]}
851 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
853 # Nested stack deployment runs after all other controller deployments
854 ControllerNodesPostDeployment:
855 type: OS::TripleO::ControllerPostDeployment
856 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
858 servers: {get_attr: [Controller, attributes, nova_server_resource]}
860 ComputeNodesPostDeployment:
861 type: OS::TripleO::ComputePostDeployment
862 depends_on: ComputeAllNodesDeployment
864 servers: {get_attr: [Compute, attributes, nova_server_resource]}
866 ObjectStorageNodesPostDeployment:
867 type: OS::TripleO::ObjectStoragePostDeployment
868 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
870 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
872 BlockStorageNodesPostDeployment:
873 type: OS::TripleO::BlockStoragePostDeployment
874 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
876 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
878 CephStorageNodesPostDeployment:
879 type: OS::TripleO::CephStoragePostDeployment
880 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
882 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
886 description: URL for the Overcloud Keystone service
891 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}