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.
188 description: The username for RabbitMQ
192 description: The password for RabbitMQ
198 Rabbit client subscriber parameter to specify
199 an SSL connection to the RabbitMQ host.
203 description: Set rabbit subscriber port, change this if using SSL
205 SnmpdReadonlyUserName:
206 default: ro_snmp_user
207 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
209 SnmpdReadonlyUserPassword:
211 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
215 # Controller-specific params
218 description: The keystone auth secret.
221 CinderEnableRbdBackend:
223 description: Whether to enable or not the Rbd backend for Cinder
225 CinderLVMLoopDeviceSize:
227 description: The size of the loopback file used by the cinder LVM driver.
231 description: The password for the cinder service account, used by cinder-api.
236 description: The iSCSI helper to use with cinder.
241 controllerExtraConfig:
244 Controller specific configuration to inject into the cluster. Same
245 structure as ExtraConfig.
249 default: overcloud-control
251 - custom_constraint: glance.image
252 OvercloudControlFlavor:
253 description: Flavor for control nodes to request when deploying.
256 - custom_constraint: nova.flavor
257 ControlVirtualInterface:
259 description: Interface where virtual ip will be assigned.
264 Additional configuration to inject into the cluster. The JSON should have
265 the following structure:
268 [{"section": "SECTIONNAME",
270 [{"option": "OPTIONNAME",
281 [{"section": "default",
283 [{"option": "force_config_drive",
290 [{"option": "driver",
291 "value": "nova.cells.rpc_driver.CellsRPCDriver"
300 description: The filepath of the file to use for logging messages from Glance.
303 GlanceNotifierStrategy:
304 description: Strategy to use for Glance notification queue
309 description: The password for the glance service account, used by the glance services.
314 description: The password for the Heat service account, used by the Heat services.
317 HeatStackDomainAdminPassword:
318 description: Password for heat_domain_admin user.
322 KeystoneCACertificate:
324 description: Keystone self-signed certificate authority certificate.
326 KeystoneSigningCertificate:
328 description: Keystone certificate for verifying token validity.
332 description: Keystone key for signing tokens.
335 KeystoneSSLCertificate:
337 description: Keystone certificate for verifying token validity.
339 KeystoneSSLCertificateKey:
341 description: Keystone key for signing tokens.
344 MysqlInnodbBufferPoolSize:
346 Specifies the size of the buffer pool in megabytes. Setting to
347 zero should be interpreted as "no value" and will defer to the
351 NeutronDnsmasqOptions:
352 default: 'dhcp-option-force=26,1400'
353 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
355 NeutronPublicInterfaceDefaultRoute:
357 description: A custom default route for the NeutronPublicInterface.
359 NeutronPublicInterfaceIP:
361 description: A custom IP address to put onto the NeutronPublicInterface.
363 NeutronPublicInterfaceRawDevice:
365 description: If set, the public interface is a vlan with this device as the raw device.
367 PublicVirtualInterface:
370 Specifies the interface where the public-facing virtual ip will be assigned.
371 This should be int_public when a VLAN is being used.
375 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
380 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
385 description: If set, the contents of an SSL certificate authority file.
389 description: A random string to be used as a salt when hashing to determine mappings in the ring.
394 description: The password for the swift service account, used by the swift proxy services.
399 description: Value of mount_check in Swift account/container/object -server.conf
404 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
407 description: Partition Power to use when building Swift rings
412 description: How many replicas to use in the swift rings.
414 # Compute-specific params
415 CeilometerComputeAgent:
416 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
420 - allowed_values: ['', Present]
424 HypervisorNeutronPhysicalBridge:
427 An OVS bridge to create on each hypervisor. This defaults to br-ex the
428 same as the control plane nodes, as we have a uniform configuration of
429 the openvswitch agent. Typically should not need to be changed.
431 HypervisorNeutronPublicInterface:
433 description: What interface to add to the HypervisorNeutronPhysicalBridge.
435 NeutronNetworkVLANRanges:
436 default: 'datacentre'
438 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
439 Neutron documentation for permitted values. Defaults to permitting any
440 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
444 default: libvirt.LibvirtDriver
445 NovaComputeExtraConfig:
448 NovaCompute specific configuration to inject into the cluster. Same
449 structure as ExtraConfig.
451 NovaComputeLibvirtType:
454 NovaEnableRbdBackend:
456 description: Whether to enable or not the Rbd backend for Nova
460 default: overcloud-compute
462 - custom_constraint: glance.image
463 OvercloudComputeFlavor:
464 description: Use this flavor
467 - custom_constraint: nova.flavor
469 # Block storage specific parameters
474 default: overcloud-cinder-volume
476 OvercloudBlockStorageFlavor:
477 description: Flavor for block storage nodes to request when deploying.
480 - custom_constraint: nova.flavor
482 # Object storage specific parameters
486 OvercloudSwiftStorageFlavor:
487 description: Flavor for Swift storage nodes to request when deploying.
490 - custom_constraint: nova.flavor
492 default: overcloud-swift-storage
495 # Ceph storage specific parameters
500 default: overcloud-ceph-storage
502 OvercloudCephStorageFlavor:
504 description: Flavor for Ceph storage nodes to request when deploying.
507 - custom_constraint: nova.flavor
511 HeatAuthEncryptionKey:
512 type: OS::Heat::RandomString
515 type: OS::Heat::ResourceGroup
517 count: {get_param: ControllerCount}
519 type: OS::TripleO::Controller
521 AdminPassword: {get_param: AdminPassword}
522 AdminToken: {get_param: AdminToken}
523 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
524 CeilometerPassword: {get_param: CeilometerPassword}
525 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
526 CinderPassword: {get_param: CinderPassword}
527 CinderISCSIHelper: {get_param: CinderISCSIHelper}
528 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
529 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
530 CloudName: {get_param: CloudName}
531 ControlVirtualInterface: {get_param: ControlVirtualInterface}
532 ControllerExtraConfig: {get_param: controllerExtraConfig}
533 ExtraConfig: {get_param: ExtraConfig}
534 Flavor: {get_param: OvercloudControlFlavor}
535 GlancePort: {get_param: GlancePort}
536 GlanceProtocol: {get_param: GlanceProtocol}
537 GlancePassword: {get_param: GlancePassword}
538 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
539 GlanceLogFile: {get_param: GlanceLogFile}
540 HeatPassword: {get_param: HeatPassword}
541 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
542 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
543 Image: {get_param: controllerImage}
544 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
545 KeyName: {get_param: KeyName}
546 KeystoneCACertificate: {get_param: KeystoneCACertificate}
547 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
548 KeystoneSigningKey: {get_param: KeystoneSigningKey}
549 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
550 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
551 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
552 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
553 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
554 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
555 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
556 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
557 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
558 NeutronPublicInterface: {get_param: NeutronPublicInterface}
559 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
560 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
561 NeutronPassword: {get_param: NeutronPassword}
562 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
563 NeutronDVR: {get_param: NeutronDVR}
564 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
565 NeutronAgentMode: {get_param: NeutronAgentMode}
566 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
567 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
568 NeutronL3HA: {get_param: NeutronL3HA}
569 NeutronNetworkType: {get_param: NeutronNetworkType}
570 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
571 NovaPassword: {get_param: NovaPassword}
572 NtpServer: {get_param: NtpServer}
573 PublicVirtualInterface: {get_param: PublicVirtualInterface}
574 RabbitUserName: {get_param: RabbitUserName}
575 RabbitPassword: {get_param: RabbitPassword}
576 RabbitCookie: {get_attr: [RabbitCookie, value]}
577 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
578 RabbitClientPort: {get_param: RabbitClientPort}
579 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
580 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
581 SSLCertificate: {get_param: SSLCertificate}
582 SSLKey: {get_param: SSLKey}
583 SSLCACertificate: {get_param: SSLCACertificate}
584 SwiftHashSuffix: {get_param: SwiftHashSuffix}
585 SwiftMountCheck: {get_param: SwiftMountCheck}
586 SwiftMinPartHours: {get_param: SwiftMinPartHours}
587 SwiftPartPower: {get_param: SwiftPartPower}
588 SwiftPassword: {get_param: SwiftPassword}
589 SwiftReplicas: { get_param: SwiftReplicas}
590 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
591 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
594 type: OS::Heat::ResourceGroup
596 count: {get_param: ComputeCount}
598 type: OS::TripleO::Compute
600 AdminPassword: {get_param: AdminPassword}
601 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
602 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
603 CeilometerPassword: {get_param: CeilometerPassword}
604 ExtraConfig: {get_param: ExtraConfig}
605 Flavor: {get_param: OvercloudComputeFlavor}
606 GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
607 GlancePort: {get_param: GlancePort}
608 GlanceProtocol: {get_param: GlanceProtocol}
609 Image: {get_param: NovaImage}
610 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
611 KeyName: {get_param: KeyName}
612 KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
613 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
614 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
615 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
616 NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
617 NeutronNetworkType: {get_param: NeutronNetworkType}
618 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
619 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
620 NeutronPassword: {get_param: NeutronPassword}
621 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
622 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
623 NeutronDVR: {get_param: NeutronDVR}
624 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
625 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
626 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
627 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
628 # L3 HA and Failover is not relevant for Computes, should be removed
629 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
630 NeutronL3HA: {get_param: NeutronL3HA}
631 NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
632 NovaComputeDriver: {get_param: NovaComputeDriver}
633 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
634 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
635 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
636 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
637 NovaPassword: {get_param: NovaPassword}
638 NtpServer: {get_param: NtpServer}
639 RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
640 RabbitPassword: {get_param: RabbitPassword}
641 RabbitUserName: {get_param: RabbitUserName}
642 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
643 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
646 type: OS::Heat::ResourceGroup
648 count: {get_param: BlockStorageCount}
650 type: OS::TripleO::BlockStorage
652 Image: {get_param: BlockStorageImage}
653 CinderISCSIHelper: {get_param: CinderISCSIHelper}
654 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
655 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
656 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
657 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
658 KeyName: {get_param: KeyName}
659 Flavor: {get_param: OvercloudBlockStorageFlavor}
660 RabbitPassword: {get_param: RabbitPassword}
661 RabbitUserName: {get_param: RabbitUserName}
662 NtpServer: {get_param: NtpServer}
665 type: OS::Heat::ResourceGroup
667 count: {get_param: ObjectStorageCount}
669 type: OS::TripleO::ObjectStorage
671 KeyName: {get_param: KeyName}
672 Flavor: {get_param: OvercloudSwiftStorageFlavor}
673 HashSuffix: {get_param: SwiftHashSuffix}
674 MountCheck: {get_param: SwiftMountCheck}
675 MinPartHours: {get_param: SwiftMinPartHours}
676 PartPower: {get_param: SwiftPartPower}
677 Image: {get_param: SwiftStorageImage}
678 Replicas: { get_param: SwiftReplicas}
679 NtpServer: {get_param: NtpServer}
682 type: OS::Heat::ResourceGroup
684 count: {get_param: CephStorageCount}
686 type: OS::TripleO::CephStorage
688 Image: {get_param: CephStorageImage}
689 KeyName: {get_param: KeyName}
690 Flavor: {get_param: OvercloudCephStorageFlavor}
691 NtpServer: {get_param: NtpServer}
694 type: OS::TripleO::AllNodes::SoftwareConfig
696 compute_hosts: {get_attr: [Compute, hosts_entry]}
697 controller_hosts: {get_attr: [Controller, hosts_entry]}
698 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
699 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
700 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
701 controller_names: {get_attr: [Controller, hostname]}
704 type: OS::Heat::RandomString
708 MysqlClusterUniquePart:
709 type: OS::Heat::RandomString
714 type: OS::Heat::RandomString
717 salt: {get_param: RabbitCookieSalt}
720 type: OS::Neutron::Port
722 name: control_virtual_ip
723 network_id: {get_param: NeutronControlPlaneID}
724 fixed_ips: {get_param: ControlFixedIPs}
725 replacement_policy: AUTO
728 type: OS::Neutron::Port
730 name: public_virtual_ip
731 network: {get_param: PublicVirtualNetwork}
732 fixed_ips: {get_param: PublicVirtualFixedIPs}
733 replacement_policy: AUTO
735 ControllerBootstrapNodeConfig:
736 type: OS::TripleO::BootstrapNode::SoftwareConfig
738 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
740 ControllerBootstrapNodeDeployment:
741 type: OS::Heat::StructuredDeployments
743 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
744 servers: {get_attr: [Controller, attributes, nova_server_resource]}
745 signal_transport: NO_SIGNAL
747 ControllerSwiftDeployment:
748 type: OS::Heat::StructuredDeployments
750 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
751 servers: {get_attr: [Controller, attributes, nova_server_resource]}
752 signal_transport: NO_SIGNAL
754 ObjectStorageSwiftDeployment:
755 type: OS::Heat::StructuredDeployments
757 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
758 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
759 signal_transport: NO_SIGNAL
761 SwiftDevicesAndProxyConfig:
762 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
764 controller_swift_devices: {get_attr: [Controller, swift_device]}
765 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
766 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
768 ComputeCephDeployment:
769 type: OS::Heat::StructuredDeployments
771 config: {get_attr: [CephClusterConfig, config_id]}
772 servers: {get_attr: [Compute, attributes, nova_server_resource]}
774 ControllerCephDeployment:
775 type: OS::Heat::StructuredDeployments
777 config: {get_attr: [CephClusterConfig, config_id]}
778 servers: {get_attr: [Controller, attributes, nova_server_resource]}
780 CephStorageCephDeployment:
781 type: OS::Heat::StructuredDeployments
783 config: {get_attr: [CephClusterConfig, config_id]}
784 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
787 type: OS::TripleO::CephClusterConfig::SoftwareConfig
789 ceph_fsid: {get_param: CephClusterFSID}
790 ceph_mon_key: {get_param: CephMonKey}
791 ceph_admin_key: {get_param: CephAdminKey}
792 ceph_mon_names: {get_attr: [Controller, hostname]}
793 ceph_mon_ips: {get_attr: [Controller, ip_address]}
795 ControllerClusterConfig:
796 type: OS::Heat::StructuredConfig
800 nodes: {get_attr: [Controller, corosync_node]}
804 nodes: {get_attr: [Controller, hostname]}
806 nodes: {get_attr: [Controller, corosync_node]}
808 nodes: {get_attr: [Controller, corosync_node]}
810 ControllerClusterDeployment:
811 type: OS::Heat::StructuredDeployments
813 config: {get_resource: ControllerClusterConfig}
814 servers: {get_attr: [Controller, attributes, nova_server_resource]}
815 signal_transport: NO_SIGNAL
817 ControllerAllNodesDeployment:
818 type: OS::Heat::StructuredDeployments
820 config: {get_attr: [allNodesConfig, config_id]}
821 servers: {get_attr: [Controller, attributes, nova_server_resource]}
823 ComputeAllNodesDeployment:
824 type: OS::Heat::StructuredDeployments
826 config: {get_attr: [allNodesConfig, config_id]}
827 servers: {get_attr: [Compute, attributes, nova_server_resource]}
829 BlockStorageAllNodesDeployment:
830 type: OS::Heat::StructuredDeployments
832 config: {get_attr: [allNodesConfig, config_id]}
833 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
835 ObjectStorageAllNodesDeployment:
836 type: OS::Heat::StructuredDeployments
838 config: {get_attr: [allNodesConfig, config_id]}
839 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
841 CephStorageAllNodesDeployment:
842 type: OS::Heat::StructuredDeployments
844 config: {get_attr: [allNodesConfig, config_id]}
845 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
847 # Nested stack deployment runs after all other controller deployments
848 ControllerNodesPostDeployment:
849 type: OS::TripleO::ControllerPostDeployment
850 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
852 servers: {get_attr: [Controller, attributes, nova_server_resource]}
854 ComputeNodesPostDeployment:
855 type: OS::TripleO::ComputePostDeployment
856 depends_on: ComputeAllNodesDeployment
858 servers: {get_attr: [Compute, attributes, nova_server_resource]}
860 ObjectStorageNodesPostDeployment:
861 type: OS::TripleO::ObjectStoragePostDeployment
862 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
864 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
866 BlockStorageNodesPostDeployment:
867 type: OS::TripleO::BlockStoragePostDeployment
868 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
870 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
872 CephStorageNodesPostDeployment:
873 type: OS::TripleO::CephStoragePostDeployment
874 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
876 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
880 description: URL for the Overcloud Keystone service
885 - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}