1 heat_template_version: 2015-04-30
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.
20 description: The ceilometer backend type.
22 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
29 description: The password for the ceilometer service account.
32 # This has to be an UUID so for now we generate it outside the template
36 description: The Ceph cluster FSID. Must be a UUID.
39 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
45 CinderEnableIscsiBackend:
47 description: Whether to enable or not the Iscsi backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Set to True to enable debugging on all services.
61 DefaultSignalTransport:
63 description: Transport to use for software-config signals.
66 - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
69 description: Glance port.
73 description: Protocol to use when connecting to glance, set to https for SSL.
76 default: 'REBUILD_PRESERVE_EPHEMERAL'
77 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
81 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
84 - custom_constraint: nova.keypair
85 NeutronBridgeMappings:
87 The OVS logical->physical bridge mappings to use. See the Neutron
88 documentation for details. Defaults to mapping br-ex - the external
89 bridge on hosts - to a physical name 'datacentre' which can be used
90 to create provider networks (and we use this for the default floating
91 network) - if changing this either use different post-install network
92 scripts or be sure to keep 'datacentre' as a mapping network name.
94 default: "datacentre:br-ex"
95 NeutronControlPlaneID:
98 description: Neutron ID for ctlplane network.
99 NeutronEnableTunnelling:
104 default: 'datacentre'
106 If set, flat networks to configure in neutron plugins. Defaults to
107 'datacentre' to permit external network creation.
110 description: The tenant network type for Neutron, either gre or vxlan.
114 description: The password for the neutron service account, used by neutron agents.
117 NeutronPublicInterface:
119 description: What interface to bridge onto br-ex for network nodes.
121 NeutronPublicInterfaceTag:
124 VLAN tag for creating a public VLAN. The tag will be used to
125 create an access port on the exterior bridge for each control plane node,
126 and that port will be given the IP address returned by neutron from the
127 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
128 overcloud.yaml to include the deployment of VLAN ports to the control
131 NeutronComputeAgentMode:
133 description: Agent mode for the neutron-l3-agent on the compute hosts
137 description: Agent mode for the neutron-l3-agent on the controller hosts
141 description: Whether to configure Neutron Distributed Virtual Routers
143 NeutronMetadataProxySharedSecret:
145 description: Shared secret to prevent spoofing
150 The tunnel types for the Neutron tenant network. To specify multiple
151 values, use a comma separated string, like so: 'gre,vxlan'
153 NeutronMechanismDrivers:
154 default: 'openvswitch'
156 The mechanism drivers for the Neutron tenant network. To specify multiple
157 values, use a comma separated string, like so: 'openvswitch,l2_population'
159 NeutronAllowL3AgentFailover:
161 description: Allow automatic l3-agent failover
165 description: Whether to enable l3-agent HA
169 description: The password for the nova service account, used by nova-api.
175 PublicVirtualFixedIPs:
178 Control the IP allocation for the PublicVirtualInterface port. E.g.
179 [{'ip_address':'1.2.3.4'}]
181 PublicVirtualNetwork:
185 Neutron network to allocate public virtual IP port on.
189 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
190 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
193 description: The username for RabbitMQ
197 description: The password for RabbitMQ
203 Rabbit client subscriber parameter to specify
204 an SSL connection to the RabbitMQ host.
208 description: Set rabbit subscriber port, change this if using SSL
210 SnmpdReadonlyUserName:
211 default: ro_snmp_user
212 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
214 SnmpdReadonlyUserPassword:
216 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
220 # Controller-specific params
223 description: The keystone auth secret.
226 CinderEnableRbdBackend:
228 description: Whether to enable or not the Rbd backend for Cinder
230 CinderLVMLoopDeviceSize:
232 description: The size of the loopback file used by the cinder LVM driver.
236 description: The password for the cinder service account, used by cinder-api.
241 description: The iSCSI helper to use with cinder.
246 controllerExtraConfig:
249 Controller specific configuration to inject into the cluster. Same
250 structure as ExtraConfig.
254 default: overcloud-control
256 - custom_constraint: glance.image
257 OvercloudControlFlavor:
258 description: Flavor for control nodes to request when deploying.
261 - custom_constraint: nova.flavor
262 ControlVirtualInterface:
264 description: Interface where virtual ip will be assigned.
268 description: Whether to use Galera instead of regular MariaDB.
272 description: If enabled services will be monitored by Pacemaker; it
273 will manage VIPs as well, in place of Keepalived.
275 ControllerEnableCephStorage:
277 description: Whether to deploy Ceph Storage (OSD) on the Controller
279 ControllerEnableSwiftStorage:
281 description: Whether to enable Swift Storage on the Controller
286 Additional configuration to inject into the cluster. The JSON should have
287 the following structure:
290 [{"section": "SECTIONNAME",
292 [{"option": "OPTIONNAME",
303 [{"section": "default",
305 [{"option": "force_config_drive",
312 [{"option": "driver",
313 "value": "nova.cells.rpc_driver.CellsRPCDriver"
322 description: The filepath of the file to use for logging messages from Glance.
325 GlanceNotifierStrategy:
326 description: Strategy to use for Glance notification queue
331 description: The password for the glance service account, used by the glance services.
336 description: The short name of the Glance backend to use. Should be one
337 of swift, rbd or file
340 - allowed_values: ['swift', 'file', 'rbd']
343 description: The password for the Heat service account, used by the Heat services.
346 HeatStackDomainAdminPassword:
347 description: Password for heat_domain_admin user.
351 KeystoneCACertificate:
353 description: Keystone self-signed certificate authority certificate.
355 KeystoneSigningCertificate:
357 description: Keystone certificate for verifying token validity.
361 description: Keystone key for signing tokens.
364 KeystoneSSLCertificate:
366 description: Keystone certificate for verifying token validity.
368 KeystoneSSLCertificateKey:
370 description: Keystone key for signing tokens.
373 MysqlInnodbBufferPoolSize:
375 Specifies the size of the buffer pool in megabytes. Setting to
376 zero should be interpreted as "no value" and will defer to the
380 NeutronDnsmasqOptions:
381 default: 'dhcp-option-force=26,1400'
382 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
384 NeutronPublicInterfaceDefaultRoute:
386 description: A custom default route for the NeutronPublicInterface.
388 NeutronPublicInterfaceIP:
390 description: A custom IP address to put onto the NeutronPublicInterface.
392 NeutronPublicInterfaceRawDevice:
394 description: If set, the public interface is a vlan with this device as the raw device.
396 PublicVirtualInterface:
399 Specifies the interface where the public-facing virtual ip will be assigned.
400 This should be int_public when a VLAN is being used.
404 default: '' # Has to be here because of the ignored empty value bug
407 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
412 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
417 description: If set, the contents of an SSL certificate authority file.
421 description: A random string to be used as a salt when hashing to determine mappings in the ring.
426 description: The password for the swift service account, used by the swift proxy services.
431 description: Value of mount_check in Swift account/container/object -server.conf
436 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
439 description: Partition Power to use when building Swift rings
444 description: How many replicas to use in the swift rings.
446 # Compute-specific params
447 CeilometerComputeAgent:
448 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
452 - allowed_values: ['', Present]
456 HypervisorNeutronPhysicalBridge:
459 An OVS bridge to create on each hypervisor. This defaults to br-ex the
460 same as the control plane nodes, as we have a uniform configuration of
461 the openvswitch agent. Typically should not need to be changed.
463 HypervisorNeutronPublicInterface:
465 description: What interface to add to the HypervisorNeutronPhysicalBridge.
467 NeutronNetworkVLANRanges:
468 default: 'datacentre'
470 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
471 Neutron documentation for permitted values. Defaults to permitting any
472 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
473 type: comma_delimited_list
476 default: libvirt.LibvirtDriver
477 NovaComputeExtraConfig:
480 NovaCompute specific configuration to inject into the cluster. Same
481 structure as ExtraConfig.
483 NovaComputeLibvirtType:
486 NovaEnableRbdBackend:
488 description: Whether to enable or not the Rbd backend for Nova
492 default: overcloud-compute
494 - custom_constraint: glance.image
495 OvercloudComputeFlavor:
496 description: Use this flavor
499 - custom_constraint: nova.flavor
502 NeutronLocalIp: tenant
503 CeilometerApiNetwork: internal_api
504 MongoDbNetwork: internal_api
505 CinderApiNetwork: internal_api
506 CinderIscsiNetwork: storage
507 GlanceApiNetwork: storage
508 GlanceRegistryNetwork: internal_api
509 KeystoneAdminApiNetwork: internal_api
510 KeystonePublicApiNetwork: internal_api
511 NeutronApiNetwork: internal_api
512 HeatApiNetwork: internal_api
513 NovaApiNetwork: internal_api
514 NovaMetadataNetwork: internal_api
515 SwiftMgmtNetwork: storage_mgmt
516 SwiftProxyNetwork: storage
517 HorizonNetwork: internal_api
518 MemcachedNetwork: internal_api
519 RabbitMqNetwork: internal_api
520 RedisNetwork: internal_api
521 MysqlNetwork: internal_api
522 CephClusterNetwork: storage_mgmt
523 CephPublicNetwork: storage
524 description: Mapping of service_name -> network name. Typically set
525 via parameter_defaults in the resource registry.
528 # Block storage specific parameters
533 default: overcloud-cinder-volume
535 OvercloudBlockStorageFlavor:
536 description: Flavor for block storage nodes to request when deploying.
539 - custom_constraint: nova.flavor
541 # Object storage specific parameters
545 OvercloudSwiftStorageFlavor:
546 description: Flavor for Swift storage nodes to request when deploying.
549 - custom_constraint: nova.flavor
551 default: overcloud-swift-storage
554 # Ceph storage specific parameters
559 default: overcloud-ceph-storage
561 OvercloudCephStorageFlavor:
563 description: Flavor for Ceph storage nodes to request when deploying.
566 - custom_constraint: nova.flavor
568 # Identifiers to trigger tasks on nodes
573 Setting to a previously unused value during stack-update will trigger
574 package update on all nodes
578 HeatAuthEncryptionKey:
579 type: OS::Heat::RandomString
582 type: OS::Heat::RandomString
587 type: OS::Heat::RandomString
592 type: OS::Heat::ResourceGroup
595 count: {get_param: ControllerCount}
597 type: OS::TripleO::Controller
599 AdminPassword: {get_param: AdminPassword}
600 AdminToken: {get_param: AdminToken}
601 CeilometerBackend: {get_param: CeilometerBackend}
602 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
603 CeilometerPassword: {get_param: CeilometerPassword}
604 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
605 CinderPassword: {get_param: CinderPassword}
606 CinderISCSIHelper: {get_param: CinderISCSIHelper}
607 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
608 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
609 CloudName: {get_param: CloudName}
610 ControlVirtualInterface: {get_param: ControlVirtualInterface}
611 ControllerExtraConfig: {get_param: controllerExtraConfig}
612 Debug: {get_param: Debug}
613 EnableGalera: {get_param: EnableGalera}
614 EnablePacemaker: {get_param: EnablePacemaker}
615 EnableCephStorage: {get_param: ControllerEnableCephStorage}
616 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
617 ExtraConfig: {get_param: ExtraConfig}
618 Flavor: {get_param: OvercloudControlFlavor}
619 GlancePort: {get_param: GlancePort}
620 GlanceProtocol: {get_param: GlanceProtocol}
621 GlancePassword: {get_param: GlancePassword}
622 GlanceBackend: {get_param: GlanceBackend}
623 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
624 GlanceLogFile: {get_param: GlanceLogFile}
625 HeatPassword: {get_param: HeatPassword}
626 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
627 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
628 HorizonSecret: {get_resource: HorizonSecret}
629 Image: {get_param: controllerImage}
630 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
631 KeyName: {get_param: KeyName}
632 KeystoneCACertificate: {get_param: KeystoneCACertificate}
633 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
634 KeystoneSigningKey: {get_param: KeystoneSigningKey}
635 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
636 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
637 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
638 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
639 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
640 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
641 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
642 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
643 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
644 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
645 NeutronPublicInterface: {get_param: NeutronPublicInterface}
646 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
647 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
648 NeutronPassword: {get_param: NeutronPassword}
649 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
650 NeutronDVR: {get_param: NeutronDVR}
651 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
652 NeutronAgentMode: {get_param: NeutronAgentMode}
653 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
654 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
655 NeutronL3HA: {get_param: NeutronL3HA}
656 NeutronNetworkType: {get_param: NeutronNetworkType}
657 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
658 NovaPassword: {get_param: NovaPassword}
659 NtpServer: {get_param: NtpServer}
660 PcsdPassword: {get_resource: PcsdPassword}
661 PublicVirtualInterface: {get_param: PublicVirtualInterface}
662 RabbitPassword: {get_param: RabbitPassword}
663 RabbitUserName: {get_param: RabbitUserName}
664 RabbitCookie: {get_attr: [RabbitCookie, value]}
665 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
666 RabbitClientPort: {get_param: RabbitClientPort}
667 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
668 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
669 RedisVirtualIP: {get_param: RedisVirtualIP}
670 SSLCertificate: {get_param: SSLCertificate}
671 SSLKey: {get_param: SSLKey}
672 SSLCACertificate: {get_param: SSLCACertificate}
673 SwiftHashSuffix: {get_param: SwiftHashSuffix}
674 SwiftMountCheck: {get_param: SwiftMountCheck}
675 SwiftMinPartHours: {get_param: SwiftMinPartHours}
676 SwiftPartPower: {get_param: SwiftPartPower}
677 SwiftPassword: {get_param: SwiftPassword}
678 SwiftReplicas: { get_param: SwiftReplicas}
679 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
680 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
681 ServiceNetMap: {get_param: ServiceNetMap}
682 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
683 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
684 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
685 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
686 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
687 UpdateIdentifier: {get_param: UpdateIdentifier}
690 type: OS::Heat::ResourceGroup
693 count: {get_param: ComputeCount}
695 type: OS::TripleO::Compute
697 AdminPassword: {get_param: AdminPassword}
698 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
699 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
700 CeilometerPassword: {get_param: CeilometerPassword}
701 Debug: {get_param: Debug}
702 ExtraConfig: {get_param: ExtraConfig}
703 Flavor: {get_param: OvercloudComputeFlavor}
704 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
705 GlancePort: {get_param: GlancePort}
706 GlanceProtocol: {get_param: GlanceProtocol}
707 Image: {get_param: NovaImage}
708 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
709 KeyName: {get_param: KeyName}
710 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
711 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
712 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
713 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
714 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
715 NeutronNetworkType: {get_param: NeutronNetworkType}
716 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
717 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
718 NeutronPassword: {get_param: NeutronPassword}
719 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
720 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
721 NeutronDVR: {get_param: NeutronDVR}
722 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
723 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
724 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
725 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
726 # L3 HA and Failover is not relevant for Computes, should be removed
727 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
728 NeutronL3HA: {get_param: NeutronL3HA}
729 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
730 NovaComputeDriver: {get_param: NovaComputeDriver}
731 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
732 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
733 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
734 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
735 NovaPassword: {get_param: NovaPassword}
736 NtpServer: {get_param: NtpServer}
737 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
738 RabbitPassword: {get_param: RabbitPassword}
739 RabbitUserName: {get_param: RabbitUserName}
740 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
741 RabbitClientPort: {get_param: RabbitClientPort}
742 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
743 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
744 ServiceNetMap: {get_param: ServiceNetMap}
745 UpdateIdentifier: {get_param: UpdateIdentifier}
748 type: OS::Heat::ResourceGroup
751 count: {get_param: BlockStorageCount}
753 type: OS::TripleO::BlockStorage
755 Debug: {get_param: Debug}
756 Image: {get_param: BlockStorageImage}
757 CinderISCSIHelper: {get_param: CinderISCSIHelper}
758 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
759 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
760 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
761 CinderPassword: {get_param: CinderPassword}
762 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
763 KeyName: {get_param: KeyName}
764 Flavor: {get_param: OvercloudBlockStorageFlavor}
765 RabbitPassword: {get_param: RabbitPassword}
766 RabbitUserName: {get_param: RabbitUserName}
767 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
768 RabbitClientPort: {get_param: RabbitClientPort}
769 NtpServer: {get_param: NtpServer}
770 UpdateIdentifier: {get_param: UpdateIdentifier}
773 type: OS::Heat::ResourceGroup
776 count: {get_param: ObjectStorageCount}
778 type: OS::TripleO::ObjectStorage
780 KeyName: {get_param: KeyName}
781 Flavor: {get_param: OvercloudSwiftStorageFlavor}
782 HashSuffix: {get_param: SwiftHashSuffix}
783 MountCheck: {get_param: SwiftMountCheck}
784 MinPartHours: {get_param: SwiftMinPartHours}
785 PartPower: {get_param: SwiftPartPower}
786 Image: {get_param: SwiftStorageImage}
787 Replicas: { get_param: SwiftReplicas}
788 NtpServer: {get_param: NtpServer}
789 UpdateIdentifier: {get_param: UpdateIdentifier}
792 type: OS::Heat::ResourceGroup
795 count: {get_param: CephStorageCount}
797 type: OS::TripleO::CephStorage
799 Image: {get_param: CephStorageImage}
800 KeyName: {get_param: KeyName}
801 Flavor: {get_param: OvercloudCephStorageFlavor}
802 NtpServer: {get_param: NtpServer}
803 ServiceNetMap: {get_param: ServiceNetMap}
804 UpdateIdentifier: {get_param: UpdateIdentifier}
807 type: OS::TripleO::Network::Ports::NetIpListMap
809 ExternalIpList: {get_attr: [Controller, external_ip_address]}
810 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
811 StorageIpList: {get_attr: [Controller, storage_ip_address]}
812 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
813 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
816 type: OS::TripleO::AllNodes::SoftwareConfig
818 compute_hosts: {get_attr: [Compute, hosts_entry]}
819 controller_hosts: {get_attr: [Controller, hosts_entry]}
820 controller_ips: {get_attr: [Controller, ip_address]}
821 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
822 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
823 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
824 controller_names: {get_attr: [Controller, hostname]}
825 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
826 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
827 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
828 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
829 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
830 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
831 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
832 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
833 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
834 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
835 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
836 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
837 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
838 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
839 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
840 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
841 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
844 type: OS::Heat::RandomString
848 MysqlClusterUniquePart:
849 type: OS::Heat::RandomString
854 type: OS::Heat::RandomString
857 salt: {get_param: RabbitCookieSalt}
859 # creates the network architecture
861 type: OS::TripleO::Network
864 type: OS::Neutron::Port
867 name: control_virtual_ip
868 network_id: {get_param: NeutronControlPlaneID}
869 fixed_ips: {get_param: ControlFixedIPs}
870 replacement_policy: AUTO
874 type: OS::Neutron::Port
877 name: public_virtual_ip
878 network: {get_param: PublicVirtualNetwork}
879 fixed_ips: {get_param: PublicVirtualFixedIPs}
880 replacement_policy: AUTO
882 InternalApiVirtualIP:
884 type: OS::TripleO::Controller::Ports::InternalApiPort
886 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
887 PortName: internal_api_virtual_ip
891 type: OS::TripleO::Controller::Ports::StoragePort
893 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
894 PortName: storage_virtual_ip
896 StorageMgmtVirtualIP:
898 type: OS::TripleO::Controller::Ports::StorageMgmtPort
900 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
901 PortName: storage_management_virtual_ip
904 type: OS::TripleO::Network::Ports::NetIpMap
906 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
907 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
908 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
909 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
910 # No tenant VIP required
913 type: OS::TripleO::VipConfig
916 type: OS::Heat::StructuredDeployments
918 config: {get_resource: VipConfig}
919 servers: {get_attr: [Controller, attributes, nova_server_resource]}
921 # service VIP mappings
922 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
923 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
924 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
925 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
926 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
927 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
928 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
929 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
930 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
931 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
932 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
933 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
934 redis_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
935 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
936 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
937 # direct configuration of Virtual IPs for each network
938 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
939 public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
940 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
941 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
942 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
944 ControllerBootstrapNodeConfig:
945 type: OS::TripleO::BootstrapNode::SoftwareConfig
947 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
948 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
950 ControllerBootstrapNodeDeployment:
951 type: OS::Heat::StructuredDeployments
953 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
954 servers: {get_attr: [Controller, attributes, nova_server_resource]}
955 signal_transport: NO_SIGNAL
957 ControllerSwiftDeployment:
958 type: OS::Heat::StructuredDeployments
960 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
961 servers: {get_attr: [Controller, attributes, nova_server_resource]}
962 signal_transport: NO_SIGNAL
964 ObjectStorageSwiftDeployment:
965 type: OS::Heat::StructuredDeployments
967 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
968 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
969 signal_transport: NO_SIGNAL
971 SwiftDevicesAndProxyConfig:
972 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
974 controller_swift_devices: {get_attr: [Controller, swift_device]}
975 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
976 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
978 ComputeCephDeployment:
979 type: OS::Heat::StructuredDeployments
981 config: {get_attr: [CephClusterConfig, config_id]}
982 servers: {get_attr: [Compute, attributes, nova_server_resource]}
984 ControllerCephDeployment:
985 type: OS::Heat::StructuredDeployments
987 config: {get_attr: [CephClusterConfig, config_id]}
988 servers: {get_attr: [Controller, attributes, nova_server_resource]}
990 CephStorageCephDeployment:
991 type: OS::Heat::StructuredDeployments
993 config: {get_attr: [CephClusterConfig, config_id]}
994 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
997 type: OS::TripleO::CephClusterConfig::SoftwareConfig
999 ceph_fsid: {get_param: CephClusterFSID}
1000 ceph_mon_key: {get_param: CephMonKey}
1001 ceph_admin_key: {get_param: CephAdminKey}
1002 ceph_mon_names: {get_attr: [Controller, hostname]}
1003 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1005 ControllerClusterConfig:
1006 type: OS::Heat::StructuredConfig
1010 nodes: {get_attr: [Controller, corosync_node]}
1014 nodes: {get_attr: [Controller, hostname]}
1016 nodes: {get_attr: [Controller, corosync_node]}
1018 nodes: {get_attr: [Controller, corosync_node]}
1020 ControllerClusterDeployment:
1021 type: OS::Heat::StructuredDeployments
1023 config: {get_resource: ControllerClusterConfig}
1024 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1025 signal_transport: NO_SIGNAL
1027 ControllerAllNodesDeployment:
1028 type: OS::Heat::StructuredDeployments
1030 config: {get_attr: [allNodesConfig, config_id]}
1031 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1033 ComputeAllNodesDeployment:
1034 type: OS::Heat::StructuredDeployments
1036 config: {get_attr: [allNodesConfig, config_id]}
1037 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1039 BlockStorageAllNodesDeployment:
1040 type: OS::Heat::StructuredDeployments
1042 config: {get_attr: [allNodesConfig, config_id]}
1043 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1045 ObjectStorageAllNodesDeployment:
1046 type: OS::Heat::StructuredDeployments
1048 config: {get_attr: [allNodesConfig, config_id]}
1049 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1051 CephStorageAllNodesDeployment:
1052 type: OS::Heat::StructuredDeployments
1054 config: {get_attr: [allNodesConfig, config_id]}
1055 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1057 # Nested stack deployment runs after all other controller deployments
1058 ControllerNodesPostDeployment:
1059 type: OS::TripleO::ControllerPostDeployment
1060 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1062 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1064 ComputeNodesPostDeployment:
1065 type: OS::TripleO::ComputePostDeployment
1066 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1068 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1070 ObjectStorageNodesPostDeployment:
1071 type: OS::TripleO::ObjectStoragePostDeployment
1072 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1074 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1076 BlockStorageNodesPostDeployment:
1077 type: OS::TripleO::BlockStoragePostDeployment
1078 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1080 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1082 CephStorageNodesPostDeployment:
1083 type: OS::TripleO::CephStoragePostDeployment
1084 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1086 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1090 description: URL for the Overcloud Keystone service
1095 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}