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 NovaVncProxyNetwork: internal_api
516 SwiftMgmtNetwork: storage_mgmt
517 SwiftProxyNetwork: storage
518 HorizonNetwork: internal_api
519 MemcachedNetwork: internal_api
520 RabbitMqNetwork: internal_api
521 RedisNetwork: internal_api
522 MysqlNetwork: internal_api
523 CephClusterNetwork: storage_mgmt
524 CephPublicNetwork: storage
525 description: Mapping of service_name -> network name. Typically set
526 via parameter_defaults in the resource registry.
529 # Block storage specific parameters
534 default: overcloud-cinder-volume
536 OvercloudBlockStorageFlavor:
537 description: Flavor for block storage nodes to request when deploying.
540 - custom_constraint: nova.flavor
542 # Object storage specific parameters
546 OvercloudSwiftStorageFlavor:
547 description: Flavor for Swift storage nodes to request when deploying.
550 - custom_constraint: nova.flavor
552 default: overcloud-swift-storage
555 # Ceph storage specific parameters
560 default: overcloud-ceph-storage
562 OvercloudCephStorageFlavor:
564 description: Flavor for Ceph storage nodes to request when deploying.
567 - custom_constraint: nova.flavor
569 # Identifiers to trigger tasks on nodes
574 Setting to a previously unused value during stack-update will trigger
575 package update on all nodes
579 HeatAuthEncryptionKey:
580 type: OS::Heat::RandomString
583 type: OS::Heat::RandomString
588 type: OS::Heat::RandomString
593 type: OS::Heat::ResourceGroup
596 count: {get_param: ControllerCount}
598 type: OS::TripleO::Controller
600 AdminPassword: {get_param: AdminPassword}
601 AdminToken: {get_param: AdminToken}
602 CeilometerBackend: {get_param: CeilometerBackend}
603 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
604 CeilometerPassword: {get_param: CeilometerPassword}
605 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
606 CinderPassword: {get_param: CinderPassword}
607 CinderISCSIHelper: {get_param: CinderISCSIHelper}
608 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
609 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
610 CloudName: {get_param: CloudName}
611 ControlVirtualInterface: {get_param: ControlVirtualInterface}
612 ControllerExtraConfig: {get_param: controllerExtraConfig}
613 Debug: {get_param: Debug}
614 EnableGalera: {get_param: EnableGalera}
615 EnablePacemaker: {get_param: EnablePacemaker}
616 EnableCephStorage: {get_param: ControllerEnableCephStorage}
617 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
618 ExtraConfig: {get_param: ExtraConfig}
619 Flavor: {get_param: OvercloudControlFlavor}
620 GlancePort: {get_param: GlancePort}
621 GlanceProtocol: {get_param: GlanceProtocol}
622 GlancePassword: {get_param: GlancePassword}
623 GlanceBackend: {get_param: GlanceBackend}
624 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
625 GlanceLogFile: {get_param: GlanceLogFile}
626 HeatPassword: {get_param: HeatPassword}
627 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
628 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
629 HorizonSecret: {get_resource: HorizonSecret}
630 Image: {get_param: controllerImage}
631 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
632 KeyName: {get_param: KeyName}
633 KeystoneCACertificate: {get_param: KeystoneCACertificate}
634 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
635 KeystoneSigningKey: {get_param: KeystoneSigningKey}
636 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
637 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
638 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
639 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
640 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
641 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
642 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
643 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
644 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
645 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
646 NeutronPublicInterface: {get_param: NeutronPublicInterface}
647 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
648 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
649 NeutronPassword: {get_param: NeutronPassword}
650 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
651 NeutronDVR: {get_param: NeutronDVR}
652 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
653 NeutronAgentMode: {get_param: NeutronAgentMode}
654 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
655 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
656 NeutronL3HA: {get_param: NeutronL3HA}
657 NeutronNetworkType: {get_param: NeutronNetworkType}
658 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
659 NovaPassword: {get_param: NovaPassword}
660 NtpServer: {get_param: NtpServer}
661 PcsdPassword: {get_resource: PcsdPassword}
662 PublicVirtualInterface: {get_param: PublicVirtualInterface}
663 RabbitPassword: {get_param: RabbitPassword}
664 RabbitUserName: {get_param: RabbitUserName}
665 RabbitCookie: {get_attr: [RabbitCookie, value]}
666 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
667 RabbitClientPort: {get_param: RabbitClientPort}
668 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
669 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
670 RedisVirtualIP: {get_param: RedisVirtualIP}
671 SSLCertificate: {get_param: SSLCertificate}
672 SSLKey: {get_param: SSLKey}
673 SSLCACertificate: {get_param: SSLCACertificate}
674 SwiftHashSuffix: {get_param: SwiftHashSuffix}
675 SwiftMountCheck: {get_param: SwiftMountCheck}
676 SwiftMinPartHours: {get_param: SwiftMinPartHours}
677 SwiftPartPower: {get_param: SwiftPartPower}
678 SwiftPassword: {get_param: SwiftPassword}
679 SwiftReplicas: { get_param: SwiftReplicas}
680 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
681 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
682 ServiceNetMap: {get_param: ServiceNetMap}
683 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
684 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
685 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
686 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
687 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
688 UpdateIdentifier: {get_param: UpdateIdentifier}
691 type: OS::Heat::ResourceGroup
694 count: {get_param: ComputeCount}
696 type: OS::TripleO::Compute
698 AdminPassword: {get_param: AdminPassword}
699 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
700 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
701 CeilometerPassword: {get_param: CeilometerPassword}
702 Debug: {get_param: Debug}
703 ExtraConfig: {get_param: ExtraConfig}
704 Flavor: {get_param: OvercloudComputeFlavor}
705 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
706 GlancePort: {get_param: GlancePort}
707 GlanceProtocol: {get_param: GlanceProtocol}
708 Image: {get_param: NovaImage}
709 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
710 KeyName: {get_param: KeyName}
711 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
712 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
713 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
714 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
715 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
716 NeutronNetworkType: {get_param: NeutronNetworkType}
717 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
718 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
719 NeutronPassword: {get_param: NeutronPassword}
720 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
721 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
722 NeutronDVR: {get_param: NeutronDVR}
723 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
724 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
725 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
726 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
727 # L3 HA and Failover is not relevant for Computes, should be removed
728 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
729 NeutronL3HA: {get_param: NeutronL3HA}
730 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
731 NovaComputeDriver: {get_param: NovaComputeDriver}
732 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
733 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
734 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
735 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
736 NovaPassword: {get_param: NovaPassword}
737 NtpServer: {get_param: NtpServer}
738 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
739 RabbitPassword: {get_param: RabbitPassword}
740 RabbitUserName: {get_param: RabbitUserName}
741 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
742 RabbitClientPort: {get_param: RabbitClientPort}
743 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
744 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
745 ServiceNetMap: {get_param: ServiceNetMap}
746 UpdateIdentifier: {get_param: UpdateIdentifier}
749 type: OS::Heat::ResourceGroup
752 count: {get_param: BlockStorageCount}
754 type: OS::TripleO::BlockStorage
756 Debug: {get_param: Debug}
757 Image: {get_param: BlockStorageImage}
758 CinderISCSIHelper: {get_param: CinderISCSIHelper}
759 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
760 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
761 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
762 CinderPassword: {get_param: CinderPassword}
763 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
764 KeyName: {get_param: KeyName}
765 Flavor: {get_param: OvercloudBlockStorageFlavor}
766 RabbitPassword: {get_param: RabbitPassword}
767 RabbitUserName: {get_param: RabbitUserName}
768 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
769 RabbitClientPort: {get_param: RabbitClientPort}
770 NtpServer: {get_param: NtpServer}
771 UpdateIdentifier: {get_param: UpdateIdentifier}
774 type: OS::Heat::ResourceGroup
777 count: {get_param: ObjectStorageCount}
779 type: OS::TripleO::ObjectStorage
781 KeyName: {get_param: KeyName}
782 Flavor: {get_param: OvercloudSwiftStorageFlavor}
783 HashSuffix: {get_param: SwiftHashSuffix}
784 MountCheck: {get_param: SwiftMountCheck}
785 MinPartHours: {get_param: SwiftMinPartHours}
786 PartPower: {get_param: SwiftPartPower}
787 Image: {get_param: SwiftStorageImage}
788 Replicas: { get_param: SwiftReplicas}
789 NtpServer: {get_param: NtpServer}
790 UpdateIdentifier: {get_param: UpdateIdentifier}
793 type: OS::Heat::ResourceGroup
796 count: {get_param: CephStorageCount}
798 type: OS::TripleO::CephStorage
800 Image: {get_param: CephStorageImage}
801 KeyName: {get_param: KeyName}
802 Flavor: {get_param: OvercloudCephStorageFlavor}
803 NtpServer: {get_param: NtpServer}
804 ServiceNetMap: {get_param: ServiceNetMap}
805 UpdateIdentifier: {get_param: UpdateIdentifier}
808 type: OS::TripleO::Network::Ports::NetIpListMap
810 ExternalIpList: {get_attr: [Controller, external_ip_address]}
811 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
812 StorageIpList: {get_attr: [Controller, storage_ip_address]}
813 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
814 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
817 type: OS::TripleO::AllNodes::SoftwareConfig
819 compute_hosts: {get_attr: [Compute, hosts_entry]}
820 controller_hosts: {get_attr: [Controller, hosts_entry]}
821 controller_ips: {get_attr: [Controller, ip_address]}
822 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
823 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
824 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
825 controller_names: {get_attr: [Controller, hostname]}
826 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
827 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
828 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
829 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
830 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
831 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
832 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
833 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
834 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
835 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
836 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
837 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
838 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
839 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
840 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
841 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
842 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
845 type: OS::Heat::RandomString
849 MysqlClusterUniquePart:
850 type: OS::Heat::RandomString
855 type: OS::Heat::RandomString
858 salt: {get_param: RabbitCookieSalt}
860 # creates the network architecture
862 type: OS::TripleO::Network
865 type: OS::Neutron::Port
868 name: control_virtual_ip
869 network_id: {get_param: NeutronControlPlaneID}
870 fixed_ips: {get_param: ControlFixedIPs}
871 replacement_policy: AUTO
875 type: OS::Neutron::Port
878 name: public_virtual_ip
879 network: {get_param: PublicVirtualNetwork}
880 fixed_ips: {get_param: PublicVirtualFixedIPs}
881 replacement_policy: AUTO
883 InternalApiVirtualIP:
885 type: OS::TripleO::Controller::Ports::InternalApiPort
887 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
888 PortName: internal_api_virtual_ip
892 type: OS::TripleO::Controller::Ports::StoragePort
894 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
895 PortName: storage_virtual_ip
897 StorageMgmtVirtualIP:
899 type: OS::TripleO::Controller::Ports::StorageMgmtPort
901 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
902 PortName: storage_management_virtual_ip
905 type: OS::TripleO::Network::Ports::NetIpMap
907 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
908 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
909 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
910 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
911 # No tenant VIP required
914 type: OS::TripleO::VipConfig
917 type: OS::Heat::StructuredDeployments
919 config: {get_resource: VipConfig}
920 servers: {get_attr: [Controller, attributes, nova_server_resource]}
922 # service VIP mappings
923 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
924 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
925 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
926 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
927 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
928 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
929 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
930 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
931 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
932 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
933 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
934 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
935 redis_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
936 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
937 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
938 # direct configuration of Virtual IPs for each network
939 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
940 public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
941 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
942 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
943 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
945 ControllerBootstrapNodeConfig:
946 type: OS::TripleO::BootstrapNode::SoftwareConfig
948 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
949 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
951 ControllerBootstrapNodeDeployment:
952 type: OS::Heat::StructuredDeployments
954 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
955 servers: {get_attr: [Controller, attributes, nova_server_resource]}
956 signal_transport: NO_SIGNAL
958 ControllerSwiftDeployment:
959 type: OS::Heat::StructuredDeployments
961 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
962 servers: {get_attr: [Controller, attributes, nova_server_resource]}
963 signal_transport: NO_SIGNAL
965 ObjectStorageSwiftDeployment:
966 type: OS::Heat::StructuredDeployments
968 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
969 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
970 signal_transport: NO_SIGNAL
972 SwiftDevicesAndProxyConfig:
973 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
975 controller_swift_devices: {get_attr: [Controller, swift_device]}
976 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
977 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
979 ComputeCephDeployment:
980 type: OS::Heat::StructuredDeployments
982 config: {get_attr: [CephClusterConfig, config_id]}
983 servers: {get_attr: [Compute, attributes, nova_server_resource]}
985 ControllerCephDeployment:
986 type: OS::Heat::StructuredDeployments
988 config: {get_attr: [CephClusterConfig, config_id]}
989 servers: {get_attr: [Controller, attributes, nova_server_resource]}
991 CephStorageCephDeployment:
992 type: OS::Heat::StructuredDeployments
994 config: {get_attr: [CephClusterConfig, config_id]}
995 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
998 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1000 ceph_fsid: {get_param: CephClusterFSID}
1001 ceph_mon_key: {get_param: CephMonKey}
1002 ceph_admin_key: {get_param: CephAdminKey}
1003 ceph_mon_names: {get_attr: [Controller, hostname]}
1004 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1006 ControllerClusterConfig:
1007 type: OS::Heat::StructuredConfig
1011 nodes: {get_attr: [Controller, corosync_node]}
1015 nodes: {get_attr: [Controller, hostname]}
1017 nodes: {get_attr: [Controller, corosync_node]}
1019 nodes: {get_attr: [Controller, corosync_node]}
1021 ControllerClusterDeployment:
1022 type: OS::Heat::StructuredDeployments
1024 config: {get_resource: ControllerClusterConfig}
1025 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1026 signal_transport: NO_SIGNAL
1028 ControllerAllNodesDeployment:
1029 type: OS::Heat::StructuredDeployments
1031 config: {get_attr: [allNodesConfig, config_id]}
1032 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1034 ComputeAllNodesDeployment:
1035 type: OS::Heat::StructuredDeployments
1037 config: {get_attr: [allNodesConfig, config_id]}
1038 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1040 BlockStorageAllNodesDeployment:
1041 type: OS::Heat::StructuredDeployments
1043 config: {get_attr: [allNodesConfig, config_id]}
1044 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1046 ObjectStorageAllNodesDeployment:
1047 type: OS::Heat::StructuredDeployments
1049 config: {get_attr: [allNodesConfig, config_id]}
1050 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1052 CephStorageAllNodesDeployment:
1053 type: OS::Heat::StructuredDeployments
1055 config: {get_attr: [allNodesConfig, config_id]}
1056 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1058 # Nested stack deployment runs after all other controller deployments
1059 ControllerNodesPostDeployment:
1060 type: OS::TripleO::ControllerPostDeployment
1061 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1063 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1065 ComputeNodesPostDeployment:
1066 type: OS::TripleO::ComputePostDeployment
1067 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1069 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1071 ObjectStorageNodesPostDeployment:
1072 type: OS::TripleO::ObjectStoragePostDeployment
1073 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1075 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1077 BlockStorageNodesPostDeployment:
1078 type: OS::TripleO::BlockStoragePostDeployment
1079 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1081 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1083 CephStorageNodesPostDeployment:
1084 type: OS::TripleO::CephStoragePostDeployment
1085 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1087 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1091 description: URL for the Overcloud Keystone service
1096 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}