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 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
409 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
414 description: If set, the contents of an SSL certificate authority file.
418 description: A random string to be used as a salt when hashing to determine mappings in the ring.
423 description: The password for the swift service account, used by the swift proxy services.
428 description: Value of mount_check in Swift account/container/object -server.conf
433 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
436 description: Partition Power to use when building Swift rings
441 description: How many replicas to use in the swift rings.
443 # Compute-specific params
444 CeilometerComputeAgent:
445 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
449 - allowed_values: ['', Present]
453 HypervisorNeutronPhysicalBridge:
456 An OVS bridge to create on each hypervisor. This defaults to br-ex the
457 same as the control plane nodes, as we have a uniform configuration of
458 the openvswitch agent. Typically should not need to be changed.
460 HypervisorNeutronPublicInterface:
462 description: What interface to add to the HypervisorNeutronPhysicalBridge.
464 NeutronNetworkVLANRanges:
465 default: 'datacentre'
467 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
468 Neutron documentation for permitted values. Defaults to permitting any
469 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
470 type: comma_delimited_list
473 default: libvirt.LibvirtDriver
474 NovaComputeExtraConfig:
477 NovaCompute specific configuration to inject into the cluster. Same
478 structure as ExtraConfig.
480 NovaComputeLibvirtType:
483 NovaEnableRbdBackend:
485 description: Whether to enable or not the Rbd backend for Nova
489 default: overcloud-compute
491 - custom_constraint: glance.image
492 OvercloudComputeFlavor:
493 description: Use this flavor
496 - custom_constraint: nova.flavor
499 NeutronLocalIp: tenant
500 CeilometerApiNetwork: internal_api
501 MongoDbNetwork: internal_api
502 CinderApiNetwork: internal_api
503 CinderIscsiNetwork: storage
504 GlanceApiNetwork: storage
505 GlanceRegistryNetwork: internal_api
506 KeystoneAdminApiNetwork: internal_api
507 KeystonePublicApiNetwork: internal_api
508 NeutronApiNetwork: internal_api
509 HeatApiNetwork: internal_api
510 NovaApiNetwork: internal_api
511 NovaMetadataNetwork: internal_api
512 SwiftMgmtNetwork: storage_mgmt
513 SwiftProxyNetwork: storage
514 HorizonNetwork: internal_api
515 MemcachedNetwork: internal_api
516 RabbitMqNetwork: internal_api
517 RedisNetwork: internal_api
518 MysqlNetwork: internal_api
519 CephClusterNetwork: storage_mgmt
520 CephPublicNetwork: storage
521 description: Mapping of service_name -> network name. Typically set
522 via parameter_defaults in the resource registry.
525 # Block storage specific parameters
530 default: overcloud-cinder-volume
532 OvercloudBlockStorageFlavor:
533 description: Flavor for block storage nodes to request when deploying.
536 - custom_constraint: nova.flavor
538 # Object storage specific parameters
542 OvercloudSwiftStorageFlavor:
543 description: Flavor for Swift storage nodes to request when deploying.
546 - custom_constraint: nova.flavor
548 default: overcloud-swift-storage
551 # Ceph storage specific parameters
556 default: overcloud-ceph-storage
558 OvercloudCephStorageFlavor:
560 description: Flavor for Ceph storage nodes to request when deploying.
563 - custom_constraint: nova.flavor
565 # Identifiers to trigger tasks on nodes
570 Setting to a previously unused value during stack-update will trigger
571 package update on all nodes
575 HeatAuthEncryptionKey:
576 type: OS::Heat::RandomString
579 type: OS::Heat::RandomString
584 type: OS::Heat::RandomString
589 type: OS::Heat::ResourceGroup
592 count: {get_param: ControllerCount}
594 type: OS::TripleO::Controller
596 AdminPassword: {get_param: AdminPassword}
597 AdminToken: {get_param: AdminToken}
598 CeilometerBackend: {get_param: CeilometerBackend}
599 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
600 CeilometerPassword: {get_param: CeilometerPassword}
601 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
602 CinderPassword: {get_param: CinderPassword}
603 CinderISCSIHelper: {get_param: CinderISCSIHelper}
604 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
605 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
606 CloudName: {get_param: CloudName}
607 ControlVirtualInterface: {get_param: ControlVirtualInterface}
608 ControllerExtraConfig: {get_param: controllerExtraConfig}
609 Debug: {get_param: Debug}
610 EnableGalera: {get_param: EnableGalera}
611 EnablePacemaker: {get_param: EnablePacemaker}
612 EnableCephStorage: {get_param: ControllerEnableCephStorage}
613 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
614 ExtraConfig: {get_param: ExtraConfig}
615 Flavor: {get_param: OvercloudControlFlavor}
616 GlancePort: {get_param: GlancePort}
617 GlanceProtocol: {get_param: GlanceProtocol}
618 GlancePassword: {get_param: GlancePassword}
619 GlanceBackend: {get_param: GlanceBackend}
620 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
621 GlanceLogFile: {get_param: GlanceLogFile}
622 HeatPassword: {get_param: HeatPassword}
623 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
624 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
625 HorizonSecret: {get_resource: HorizonSecret}
626 Image: {get_param: controllerImage}
627 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
628 KeyName: {get_param: KeyName}
629 KeystoneCACertificate: {get_param: KeystoneCACertificate}
630 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
631 KeystoneSigningKey: {get_param: KeystoneSigningKey}
632 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
633 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
634 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
635 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
636 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
637 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
638 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
639 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
640 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
641 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
642 NeutronPublicInterface: {get_param: NeutronPublicInterface}
643 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
644 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
645 NeutronPassword: {get_param: NeutronPassword}
646 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
647 NeutronDVR: {get_param: NeutronDVR}
648 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
649 NeutronAgentMode: {get_param: NeutronAgentMode}
650 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
651 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
652 NeutronL3HA: {get_param: NeutronL3HA}
653 NeutronNetworkType: {get_param: NeutronNetworkType}
654 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
655 NovaPassword: {get_param: NovaPassword}
656 NtpServer: {get_param: NtpServer}
657 PcsdPassword: {get_resource: PcsdPassword}
658 PublicVirtualInterface: {get_param: PublicVirtualInterface}
659 RabbitPassword: {get_param: RabbitPassword}
660 RabbitUserName: {get_param: RabbitUserName}
661 RabbitCookie: {get_attr: [RabbitCookie, value]}
662 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
663 RabbitClientPort: {get_param: RabbitClientPort}
664 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
665 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
666 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
667 SSLCertificate: {get_param: SSLCertificate}
668 SSLKey: {get_param: SSLKey}
669 SSLCACertificate: {get_param: SSLCACertificate}
670 SwiftHashSuffix: {get_param: SwiftHashSuffix}
671 SwiftMountCheck: {get_param: SwiftMountCheck}
672 SwiftMinPartHours: {get_param: SwiftMinPartHours}
673 SwiftPartPower: {get_param: SwiftPartPower}
674 SwiftPassword: {get_param: SwiftPassword}
675 SwiftReplicas: { get_param: SwiftReplicas}
676 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
677 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
678 ServiceNetMap: {get_param: ServiceNetMap}
679 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
680 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
681 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
682 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
683 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
684 UpdateIdentifier: {get_param: UpdateIdentifier}
687 type: OS::Heat::ResourceGroup
690 count: {get_param: ComputeCount}
692 type: OS::TripleO::Compute
694 AdminPassword: {get_param: AdminPassword}
695 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
696 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
697 CeilometerPassword: {get_param: CeilometerPassword}
698 Debug: {get_param: Debug}
699 ExtraConfig: {get_param: ExtraConfig}
700 Flavor: {get_param: OvercloudComputeFlavor}
701 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
702 GlancePort: {get_param: GlancePort}
703 GlanceProtocol: {get_param: GlanceProtocol}
704 Image: {get_param: NovaImage}
705 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
706 KeyName: {get_param: KeyName}
707 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
708 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
709 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
710 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
711 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
712 NeutronNetworkType: {get_param: NeutronNetworkType}
713 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
714 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
715 NeutronPassword: {get_param: NeutronPassword}
716 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
717 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
718 NeutronDVR: {get_param: NeutronDVR}
719 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
720 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
721 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
722 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
723 # L3 HA and Failover is not relevant for Computes, should be removed
724 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
725 NeutronL3HA: {get_param: NeutronL3HA}
726 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
727 NovaComputeDriver: {get_param: NovaComputeDriver}
728 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
729 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
730 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
731 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
732 NovaPassword: {get_param: NovaPassword}
733 NtpServer: {get_param: NtpServer}
734 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
735 RabbitPassword: {get_param: RabbitPassword}
736 RabbitUserName: {get_param: RabbitUserName}
737 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
738 RabbitClientPort: {get_param: RabbitClientPort}
739 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
740 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
741 ServiceNetMap: {get_param: ServiceNetMap}
742 UpdateIdentifier: {get_param: UpdateIdentifier}
745 type: OS::Heat::ResourceGroup
748 count: {get_param: BlockStorageCount}
750 type: OS::TripleO::BlockStorage
752 Debug: {get_param: Debug}
753 Image: {get_param: BlockStorageImage}
754 CinderISCSIHelper: {get_param: CinderISCSIHelper}
755 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
756 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
757 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
758 CinderPassword: {get_param: CinderPassword}
759 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
760 KeyName: {get_param: KeyName}
761 Flavor: {get_param: OvercloudBlockStorageFlavor}
762 RabbitPassword: {get_param: RabbitPassword}
763 RabbitUserName: {get_param: RabbitUserName}
764 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
765 RabbitClientPort: {get_param: RabbitClientPort}
766 NtpServer: {get_param: NtpServer}
767 UpdateIdentifier: {get_param: UpdateIdentifier}
770 type: OS::Heat::ResourceGroup
773 count: {get_param: ObjectStorageCount}
775 type: OS::TripleO::ObjectStorage
777 KeyName: {get_param: KeyName}
778 Flavor: {get_param: OvercloudSwiftStorageFlavor}
779 HashSuffix: {get_param: SwiftHashSuffix}
780 MountCheck: {get_param: SwiftMountCheck}
781 MinPartHours: {get_param: SwiftMinPartHours}
782 PartPower: {get_param: SwiftPartPower}
783 Image: {get_param: SwiftStorageImage}
784 Replicas: { get_param: SwiftReplicas}
785 NtpServer: {get_param: NtpServer}
786 UpdateIdentifier: {get_param: UpdateIdentifier}
789 type: OS::Heat::ResourceGroup
792 count: {get_param: CephStorageCount}
794 type: OS::TripleO::CephStorage
796 Image: {get_param: CephStorageImage}
797 KeyName: {get_param: KeyName}
798 Flavor: {get_param: OvercloudCephStorageFlavor}
799 NtpServer: {get_param: NtpServer}
800 ServiceNetMap: {get_param: ServiceNetMap}
801 UpdateIdentifier: {get_param: UpdateIdentifier}
804 type: OS::TripleO::Network::Ports::NetIpListMap
806 ExternalIpList: {get_attr: [Controller, external_ip_address]}
807 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
808 StorageIpList: {get_attr: [Controller, storage_ip_address]}
809 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
810 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
813 type: OS::TripleO::AllNodes::SoftwareConfig
815 compute_hosts: {get_attr: [Compute, hosts_entry]}
816 controller_hosts: {get_attr: [Controller, hosts_entry]}
817 controller_ips: {get_attr: [Controller, ip_address]}
818 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
819 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
820 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
821 controller_names: {get_attr: [Controller, hostname]}
822 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
823 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
824 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
825 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
826 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
827 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
828 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
829 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
830 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
831 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
832 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
833 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
834 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
835 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
836 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
837 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
838 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
841 type: OS::Heat::RandomString
845 MysqlClusterUniquePart:
846 type: OS::Heat::RandomString
851 type: OS::Heat::RandomString
854 salt: {get_param: RabbitCookieSalt}
856 # creates the network architecture
858 type: OS::TripleO::Network
861 type: OS::Neutron::Port
864 name: control_virtual_ip
865 network_id: {get_param: NeutronControlPlaneID}
866 fixed_ips: {get_param: ControlFixedIPs}
867 replacement_policy: AUTO
871 type: OS::TripleO::Controller::Ports::RedisVipPort
873 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
874 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
875 PortName: redis_virtual_ip
876 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
880 type: OS::Neutron::Port
883 name: public_virtual_ip
884 network: {get_param: PublicVirtualNetwork}
885 fixed_ips: {get_param: PublicVirtualFixedIPs}
886 replacement_policy: AUTO
888 InternalApiVirtualIP:
890 type: OS::TripleO::Controller::Ports::InternalApiPort
892 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
893 PortName: internal_api_virtual_ip
897 type: OS::TripleO::Controller::Ports::StoragePort
899 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
900 PortName: storage_virtual_ip
902 StorageMgmtVirtualIP:
904 type: OS::TripleO::Controller::Ports::StorageMgmtPort
906 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
907 PortName: storage_management_virtual_ip
910 type: OS::TripleO::Network::Ports::NetIpMap
912 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
913 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
914 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
915 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
916 # No tenant VIP required
919 type: OS::TripleO::VipConfig
922 type: OS::Heat::StructuredDeployments
924 config: {get_resource: VipConfig}
925 servers: {get_attr: [Controller, attributes, nova_server_resource]}
927 # service VIP mappings
928 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
929 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
930 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
931 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
932 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
933 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
934 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
935 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
936 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
937 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
938 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
939 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
940 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
941 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
942 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
943 # direct configuration of Virtual IPs for each network
944 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
945 public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
946 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
947 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
948 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
950 ControllerBootstrapNodeConfig:
951 type: OS::TripleO::BootstrapNode::SoftwareConfig
953 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
954 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
956 ControllerBootstrapNodeDeployment:
957 type: OS::Heat::StructuredDeployments
959 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
960 servers: {get_attr: [Controller, attributes, nova_server_resource]}
961 signal_transport: NO_SIGNAL
963 ControllerSwiftDeployment:
964 type: OS::Heat::StructuredDeployments
966 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
967 servers: {get_attr: [Controller, attributes, nova_server_resource]}
968 signal_transport: NO_SIGNAL
970 ObjectStorageSwiftDeployment:
971 type: OS::Heat::StructuredDeployments
973 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
974 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
975 signal_transport: NO_SIGNAL
977 SwiftDevicesAndProxyConfig:
978 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
980 controller_swift_devices: {get_attr: [Controller, swift_device]}
981 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
982 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
984 ComputeCephDeployment:
985 type: OS::Heat::StructuredDeployments
987 config: {get_attr: [CephClusterConfig, config_id]}
988 servers: {get_attr: [Compute, attributes, nova_server_resource]}
990 ControllerCephDeployment:
991 type: OS::Heat::StructuredDeployments
993 config: {get_attr: [CephClusterConfig, config_id]}
994 servers: {get_attr: [Controller, attributes, nova_server_resource]}
996 CephStorageCephDeployment:
997 type: OS::Heat::StructuredDeployments
999 config: {get_attr: [CephClusterConfig, config_id]}
1000 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1003 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1005 ceph_fsid: {get_param: CephClusterFSID}
1006 ceph_mon_key: {get_param: CephMonKey}
1007 ceph_admin_key: {get_param: CephAdminKey}
1008 ceph_mon_names: {get_attr: [Controller, hostname]}
1009 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1011 ControllerClusterConfig:
1012 type: OS::Heat::StructuredConfig
1016 nodes: {get_attr: [Controller, corosync_node]}
1020 nodes: {get_attr: [Controller, hostname]}
1022 nodes: {get_attr: [Controller, corosync_node]}
1024 nodes: {get_attr: [Controller, corosync_node]}
1026 ControllerClusterDeployment:
1027 type: OS::Heat::StructuredDeployments
1029 config: {get_resource: ControllerClusterConfig}
1030 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1031 signal_transport: NO_SIGNAL
1033 ControllerAllNodesDeployment:
1034 type: OS::Heat::StructuredDeployments
1036 config: {get_attr: [allNodesConfig, config_id]}
1037 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1039 ComputeAllNodesDeployment:
1040 type: OS::Heat::StructuredDeployments
1042 config: {get_attr: [allNodesConfig, config_id]}
1043 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1045 BlockStorageAllNodesDeployment:
1046 type: OS::Heat::StructuredDeployments
1048 config: {get_attr: [allNodesConfig, config_id]}
1049 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1051 ObjectStorageAllNodesDeployment:
1052 type: OS::Heat::StructuredDeployments
1054 config: {get_attr: [allNodesConfig, config_id]}
1055 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1057 CephStorageAllNodesDeployment:
1058 type: OS::Heat::StructuredDeployments
1060 config: {get_attr: [allNodesConfig, config_id]}
1061 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1063 # Nested stack deployment runs after all other controller deployments
1064 ControllerNodesPostDeployment:
1065 type: OS::TripleO::ControllerPostDeployment
1066 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1068 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1070 ComputeNodesPostDeployment:
1071 type: OS::TripleO::ComputePostDeployment
1072 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1074 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1076 ObjectStorageNodesPostDeployment:
1077 type: OS::TripleO::ObjectStoragePostDeployment
1078 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1080 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1082 BlockStorageNodesPostDeployment:
1083 type: OS::TripleO::BlockStoragePostDeployment
1084 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1086 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1088 CephStorageNodesPostDeployment:
1089 type: OS::TripleO::CephStoragePostDeployment
1090 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1092 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1096 description: URL for the Overcloud Keystone service
1101 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}