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.
270 ControllerEnableCephStorage:
272 description: Whether to deploy Ceph Storage (OSD) on the Controller
274 ControllerEnableSwiftStorage:
276 description: Whether to enable Swift Storage on the Controller
281 Additional configuration to inject into the cluster. The JSON should have
282 the following structure:
285 [{"section": "SECTIONNAME",
287 [{"option": "OPTIONNAME",
298 [{"section": "default",
300 [{"option": "force_config_drive",
307 [{"option": "driver",
308 "value": "nova.cells.rpc_driver.CellsRPCDriver"
317 description: The filepath of the file to use for logging messages from Glance.
320 GlanceNotifierStrategy:
321 description: Strategy to use for Glance notification queue
326 description: The password for the glance service account, used by the glance services.
331 description: The short name of the Glance backend to use. Should be one
332 of swift, rbd or file
335 - allowed_values: ['swift', 'file', 'rbd']
338 description: The password for the Heat service account, used by the Heat services.
341 HeatStackDomainAdminPassword:
342 description: Password for heat_domain_admin user.
346 KeystoneCACertificate:
348 description: Keystone self-signed certificate authority certificate.
350 KeystoneSigningCertificate:
352 description: Keystone certificate for verifying token validity.
356 description: Keystone key for signing tokens.
359 KeystoneSSLCertificate:
361 description: Keystone certificate for verifying token validity.
363 KeystoneSSLCertificateKey:
365 description: Keystone key for signing tokens.
368 MysqlInnodbBufferPoolSize:
370 Specifies the size of the buffer pool in megabytes. Setting to
371 zero should be interpreted as "no value" and will defer to the
375 NeutronDnsmasqOptions:
376 default: 'dhcp-option-force=26,1400'
377 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
379 NeutronPublicInterfaceDefaultRoute:
381 description: A custom default route for the NeutronPublicInterface.
383 NeutronPublicInterfaceIP:
385 description: A custom IP address to put onto the NeutronPublicInterface.
387 NeutronPublicInterfaceRawDevice:
389 description: If set, the public interface is a vlan with this device as the raw device.
391 PublicVirtualInterface:
394 Specifies the interface where the public-facing virtual ip will be assigned.
395 This should be int_public when a VLAN is being used.
399 default: '' # Has to be here because of the ignored empty value bug
402 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
407 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
412 description: If set, the contents of an SSL certificate authority file.
416 description: A random string to be used as a salt when hashing to determine mappings in the ring.
421 description: The password for the swift service account, used by the swift proxy services.
426 description: Value of mount_check in Swift account/container/object -server.conf
431 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
434 description: Partition Power to use when building Swift rings
439 description: How many replicas to use in the swift rings.
441 # Compute-specific params
442 CeilometerComputeAgent:
443 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
447 - allowed_values: ['', Present]
451 HypervisorNeutronPhysicalBridge:
454 An OVS bridge to create on each hypervisor. This defaults to br-ex the
455 same as the control plane nodes, as we have a uniform configuration of
456 the openvswitch agent. Typically should not need to be changed.
458 HypervisorNeutronPublicInterface:
460 description: What interface to add to the HypervisorNeutronPhysicalBridge.
462 NeutronNetworkVLANRanges:
463 default: 'datacentre'
465 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
466 Neutron documentation for permitted values. Defaults to permitting any
467 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
468 type: comma_delimited_list
471 default: libvirt.LibvirtDriver
472 NovaComputeExtraConfig:
475 NovaCompute specific configuration to inject into the cluster. Same
476 structure as ExtraConfig.
478 NovaComputeLibvirtType:
481 NovaEnableRbdBackend:
483 description: Whether to enable or not the Rbd backend for Nova
487 default: overcloud-compute
489 - custom_constraint: glance.image
490 OvercloudComputeFlavor:
491 description: Use this flavor
494 - custom_constraint: nova.flavor
497 NeutronLocalIp: tenant
498 CeilometerApiNetwork: internal_api
499 MongoDbNetwork: internal_api
500 CinderApiNetwork: internal_api
501 CinderIscsiNetwork: storage
502 GlanceApiNetwork: storage
503 GlanceRegistryNetwork: internal_api
504 KeystoneAdminApiNetwork: internal_api
505 KeystonePublicApiNetwork: internal_api
506 NeutronApiNetwork: internal_api
507 HeatApiNetwork: internal_api
508 NovaApiNetwork: internal_api
509 NovaMetadataNetwork: internal_api
510 NovaVncProxyNetwork: internal_api
511 SwiftMgmtNetwork: storage_mgmt
512 SwiftProxyNetwork: storage
513 HorizonNetwork: internal_api
514 MemcachedNetwork: internal_api
515 RabbitMqNetwork: internal_api
516 RedisNetwork: internal_api
517 MysqlNetwork: internal_api
518 CephClusterNetwork: storage_mgmt
519 CephPublicNetwork: storage
520 description: Mapping of service_name -> network name. Typically set
521 via parameter_defaults in the resource registry.
524 # Block storage specific parameters
529 default: overcloud-cinder-volume
531 OvercloudBlockStorageFlavor:
532 description: Flavor for block storage nodes to request when deploying.
535 - custom_constraint: nova.flavor
537 # Object storage specific parameters
541 OvercloudSwiftStorageFlavor:
542 description: Flavor for Swift storage nodes to request when deploying.
545 - custom_constraint: nova.flavor
547 default: overcloud-swift-storage
550 # Ceph storage specific parameters
555 default: overcloud-ceph-storage
557 OvercloudCephStorageFlavor:
559 description: Flavor for Ceph storage nodes to request when deploying.
562 - custom_constraint: nova.flavor
564 # Hostname format for each role
565 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
566 # and %stackname% is replaced with OS::stack_name in the template below.
567 # If you want to use the heat generated names, pass '' (empty string).
568 ControllerHostnameFormat:
570 description: Format for Controller node hostnames
571 default: '%stackname%-controller-%index%'
572 ComputeHostnameFormat:
574 description: Format for Compute node hostnames
575 default: '%stackname%-novacompute-%index%'
576 BlockStorageHostnameFormat:
578 description: Format for BlockStorage node hostnames
579 default: '%stackname%-blockstorage-%index%'
580 ObjectStorageHostnameFormat:
582 description: Format for SwiftStorage node hostnames
583 default: '%stackname%-objectstorage-%index%'
584 CephStorageHostnameFormat:
586 description: Format for CephStorage node hostnames
587 default: '%stackname%-cephstorage-%index%'
589 # Identifiers to trigger tasks on nodes
594 Setting to a previously unused value during stack-update will trigger
595 package update on all nodes
601 HeatAuthEncryptionKey:
602 type: OS::Heat::RandomString
605 type: OS::Heat::RandomString
610 type: OS::Heat::RandomString
615 type: OS::Heat::ResourceGroup
618 count: {get_param: ControllerCount}
620 type: OS::TripleO::Controller
622 AdminPassword: {get_param: AdminPassword}
623 AdminToken: {get_param: AdminToken}
624 CeilometerBackend: {get_param: CeilometerBackend}
625 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
626 CeilometerPassword: {get_param: CeilometerPassword}
627 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
628 CinderPassword: {get_param: CinderPassword}
629 CinderISCSIHelper: {get_param: CinderISCSIHelper}
630 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
631 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
632 CloudName: {get_param: CloudName}
633 ControlVirtualInterface: {get_param: ControlVirtualInterface}
634 ControllerExtraConfig: {get_param: controllerExtraConfig}
635 Debug: {get_param: Debug}
636 EnableGalera: {get_param: EnableGalera}
637 EnableCephStorage: {get_param: ControllerEnableCephStorage}
638 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
639 ExtraConfig: {get_param: ExtraConfig}
640 Flavor: {get_param: OvercloudControlFlavor}
641 GlancePort: {get_param: GlancePort}
642 GlanceProtocol: {get_param: GlanceProtocol}
643 GlancePassword: {get_param: GlancePassword}
644 GlanceBackend: {get_param: GlanceBackend}
645 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
646 GlanceLogFile: {get_param: GlanceLogFile}
647 HeatPassword: {get_param: HeatPassword}
648 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
649 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
650 HorizonSecret: {get_resource: HorizonSecret}
651 Image: {get_param: controllerImage}
652 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
653 KeyName: {get_param: KeyName}
654 KeystoneCACertificate: {get_param: KeystoneCACertificate}
655 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
656 KeystoneSigningKey: {get_param: KeystoneSigningKey}
657 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
658 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
659 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
660 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
661 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
662 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
663 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
664 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
665 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
666 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
667 NeutronPublicInterface: {get_param: NeutronPublicInterface}
668 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
669 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
670 NeutronPassword: {get_param: NeutronPassword}
671 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
672 NeutronDVR: {get_param: NeutronDVR}
673 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
674 NeutronAgentMode: {get_param: NeutronAgentMode}
675 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
676 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
677 NeutronL3HA: {get_param: NeutronL3HA}
678 NeutronNetworkType: {get_param: NeutronNetworkType}
679 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
680 NovaPassword: {get_param: NovaPassword}
681 NtpServer: {get_param: NtpServer}
682 PcsdPassword: {get_resource: PcsdPassword}
683 PublicVirtualInterface: {get_param: PublicVirtualInterface}
684 RabbitPassword: {get_param: RabbitPassword}
685 RabbitUserName: {get_param: RabbitUserName}
686 RabbitCookie: {get_attr: [RabbitCookie, value]}
687 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
688 RabbitClientPort: {get_param: RabbitClientPort}
689 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
690 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
691 RedisVirtualIP: {get_param: RedisVirtualIP}
692 SSLCertificate: {get_param: SSLCertificate}
693 SSLKey: {get_param: SSLKey}
694 SSLCACertificate: {get_param: SSLCACertificate}
695 SwiftHashSuffix: {get_param: SwiftHashSuffix}
696 SwiftMountCheck: {get_param: SwiftMountCheck}
697 SwiftMinPartHours: {get_param: SwiftMinPartHours}
698 SwiftPartPower: {get_param: SwiftPartPower}
699 SwiftPassword: {get_param: SwiftPassword}
700 SwiftReplicas: { get_param: SwiftReplicas}
701 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
702 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
703 ServiceNetMap: {get_param: ServiceNetMap}
704 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
705 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
706 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
707 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
708 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
709 UpdateIdentifier: {get_param: UpdateIdentifier}
712 template: {get_param: ControllerHostnameFormat}
714 '%stackname%': {get_param: 'OS::stack_name'}
717 type: OS::Heat::ResourceGroup
720 count: {get_param: ComputeCount}
722 type: OS::TripleO::Compute
724 AdminPassword: {get_param: AdminPassword}
725 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
726 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
727 CeilometerPassword: {get_param: CeilometerPassword}
728 Debug: {get_param: Debug}
729 ExtraConfig: {get_param: ExtraConfig}
730 Flavor: {get_param: OvercloudComputeFlavor}
731 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
732 GlancePort: {get_param: GlancePort}
733 GlanceProtocol: {get_param: GlanceProtocol}
734 Image: {get_param: NovaImage}
735 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
736 KeyName: {get_param: KeyName}
737 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
738 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
739 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
740 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
741 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
742 NeutronNetworkType: {get_param: NeutronNetworkType}
743 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
744 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
745 NeutronPassword: {get_param: NeutronPassword}
746 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
747 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
748 NeutronDVR: {get_param: NeutronDVR}
749 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
750 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
751 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
752 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
753 # L3 HA and Failover is not relevant for Computes, should be removed
754 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
755 NeutronL3HA: {get_param: NeutronL3HA}
756 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
757 NovaComputeDriver: {get_param: NovaComputeDriver}
758 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
759 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
760 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
761 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
762 NovaPassword: {get_param: NovaPassword}
763 NtpServer: {get_param: NtpServer}
764 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
765 RabbitPassword: {get_param: RabbitPassword}
766 RabbitUserName: {get_param: RabbitUserName}
767 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
768 RabbitClientPort: {get_param: RabbitClientPort}
769 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
770 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
771 ServiceNetMap: {get_param: ServiceNetMap}
772 UpdateIdentifier: {get_param: UpdateIdentifier}
775 template: {get_param: ComputeHostnameFormat}
777 '%stackname%': {get_param: 'OS::stack_name'}
780 type: OS::Heat::ResourceGroup
783 count: {get_param: BlockStorageCount}
785 type: OS::TripleO::BlockStorage
787 Debug: {get_param: Debug}
788 Image: {get_param: BlockStorageImage}
789 CinderISCSIHelper: {get_param: CinderISCSIHelper}
790 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
791 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
792 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
793 CinderPassword: {get_param: CinderPassword}
794 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
795 KeyName: {get_param: KeyName}
796 Flavor: {get_param: OvercloudBlockStorageFlavor}
797 RabbitPassword: {get_param: RabbitPassword}
798 RabbitUserName: {get_param: RabbitUserName}
799 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
800 RabbitClientPort: {get_param: RabbitClientPort}
801 NtpServer: {get_param: NtpServer}
802 UpdateIdentifier: {get_param: UpdateIdentifier}
805 template: {get_param: BlockStorageHostnameFormat}
807 '%stackname%': {get_param: 'OS::stack_name'}
810 type: OS::Heat::ResourceGroup
813 count: {get_param: ObjectStorageCount}
815 type: OS::TripleO::ObjectStorage
817 KeyName: {get_param: KeyName}
818 Flavor: {get_param: OvercloudSwiftStorageFlavor}
819 HashSuffix: {get_param: SwiftHashSuffix}
820 MountCheck: {get_param: SwiftMountCheck}
821 MinPartHours: {get_param: SwiftMinPartHours}
822 PartPower: {get_param: SwiftPartPower}
823 Image: {get_param: SwiftStorageImage}
824 Replicas: { get_param: SwiftReplicas}
825 NtpServer: {get_param: NtpServer}
826 UpdateIdentifier: {get_param: UpdateIdentifier}
827 ServiceNetMap: {get_param: ServiceNetMap}
830 template: {get_param: ObjectStorageHostnameFormat}
832 '%stackname%': {get_param: 'OS::stack_name'}
835 type: OS::Heat::ResourceGroup
838 count: {get_param: CephStorageCount}
840 type: OS::TripleO::CephStorage
842 Image: {get_param: CephStorageImage}
843 KeyName: {get_param: KeyName}
844 Flavor: {get_param: OvercloudCephStorageFlavor}
845 NtpServer: {get_param: NtpServer}
846 ServiceNetMap: {get_param: ServiceNetMap}
847 UpdateIdentifier: {get_param: UpdateIdentifier}
850 template: {get_param: CephStorageHostnameFormat}
852 '%stackname%': {get_param: 'OS::stack_name'}
855 type: OS::TripleO::Network::Ports::NetIpListMap
857 ExternalIpList: {get_attr: [Controller, external_ip_address]}
858 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
859 StorageIpList: {get_attr: [Controller, storage_ip_address]}
860 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
861 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
864 type: OS::TripleO::AllNodes::SoftwareConfig
866 compute_hosts: {get_attr: [Compute, hosts_entry]}
867 controller_hosts: {get_attr: [Controller, hosts_entry]}
868 controller_ips: {get_attr: [Controller, ip_address]}
869 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
870 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
871 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
872 controller_names: {get_attr: [Controller, hostname]}
873 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
874 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
875 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
876 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
877 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
878 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
879 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
880 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
881 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
882 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
883 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
884 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
885 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
886 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
887 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
888 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
889 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
892 type: OS::Heat::RandomString
896 MysqlClusterUniquePart:
897 type: OS::Heat::RandomString
902 type: OS::Heat::RandomString
905 salt: {get_param: RabbitCookieSalt}
907 # creates the network architecture
909 type: OS::TripleO::Network
912 type: OS::Neutron::Port
915 name: control_virtual_ip
916 network_id: {get_param: NeutronControlPlaneID}
917 fixed_ips: {get_param: ControlFixedIPs}
918 replacement_policy: AUTO
922 type: OS::Neutron::Port
925 name: public_virtual_ip
926 network: {get_param: PublicVirtualNetwork}
927 fixed_ips: {get_param: PublicVirtualFixedIPs}
928 replacement_policy: AUTO
930 InternalApiVirtualIP:
932 type: OS::TripleO::Controller::Ports::InternalApiPort
934 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
935 PortName: internal_api_virtual_ip
939 type: OS::TripleO::Controller::Ports::StoragePort
941 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
942 PortName: storage_virtual_ip
944 StorageMgmtVirtualIP:
946 type: OS::TripleO::Controller::Ports::StorageMgmtPort
948 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
949 PortName: storage_management_virtual_ip
952 type: OS::TripleO::Network::Ports::NetIpMap
954 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
955 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
956 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
957 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
958 # No tenant VIP required
961 type: OS::TripleO::VipConfig
964 type: OS::Heat::StructuredDeployments
966 config: {get_resource: VipConfig}
967 servers: {get_attr: [Controller, attributes, nova_server_resource]}
969 # service VIP mappings
970 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
971 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
972 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
973 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
974 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
975 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
976 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
977 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
978 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
979 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
980 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
981 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
982 redis_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
983 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
984 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
985 # direct configuration of Virtual IPs for each network
986 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
987 public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
988 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
989 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
990 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
992 ControllerBootstrapNodeConfig:
993 type: OS::TripleO::BootstrapNode::SoftwareConfig
995 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
996 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
998 ControllerBootstrapNodeDeployment:
999 type: OS::Heat::StructuredDeployments
1001 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1002 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1003 signal_transport: NO_SIGNAL
1005 ControllerSwiftDeployment:
1006 type: OS::Heat::StructuredDeployments
1008 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1009 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1010 signal_transport: NO_SIGNAL
1012 ObjectStorageSwiftDeployment:
1013 type: OS::Heat::StructuredDeployments
1015 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1016 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1017 signal_transport: NO_SIGNAL
1019 SwiftDevicesAndProxyConfig:
1020 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1022 controller_swift_devices: {get_attr: [Controller, swift_device]}
1023 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1024 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1026 ComputeCephDeployment:
1027 type: OS::Heat::StructuredDeployments
1029 config: {get_attr: [CephClusterConfig, config_id]}
1030 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1032 ControllerCephDeployment:
1033 type: OS::Heat::StructuredDeployments
1035 config: {get_attr: [CephClusterConfig, config_id]}
1036 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1038 CephStorageCephDeployment:
1039 type: OS::Heat::StructuredDeployments
1041 config: {get_attr: [CephClusterConfig, config_id]}
1042 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1045 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1047 ceph_fsid: {get_param: CephClusterFSID}
1048 ceph_mon_key: {get_param: CephMonKey}
1049 ceph_admin_key: {get_param: CephAdminKey}
1050 ceph_mon_names: {get_attr: [Controller, hostname]}
1051 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1053 ControllerClusterConfig:
1054 type: OS::Heat::StructuredConfig
1058 nodes: {get_attr: [Controller, corosync_node]}
1062 nodes: {get_attr: [Controller, hostname]}
1064 nodes: {get_attr: [Controller, corosync_node]}
1066 nodes: {get_attr: [Controller, corosync_node]}
1068 ControllerClusterDeployment:
1069 type: OS::Heat::StructuredDeployments
1071 config: {get_resource: ControllerClusterConfig}
1072 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1073 signal_transport: NO_SIGNAL
1075 ControllerAllNodesDeployment:
1076 type: OS::Heat::StructuredDeployments
1078 config: {get_attr: [allNodesConfig, config_id]}
1079 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1081 ComputeAllNodesDeployment:
1082 type: OS::Heat::StructuredDeployments
1084 config: {get_attr: [allNodesConfig, config_id]}
1085 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1087 BlockStorageAllNodesDeployment:
1088 type: OS::Heat::StructuredDeployments
1090 config: {get_attr: [allNodesConfig, config_id]}
1091 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1093 ObjectStorageAllNodesDeployment:
1094 type: OS::Heat::StructuredDeployments
1096 config: {get_attr: [allNodesConfig, config_id]}
1097 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1099 CephStorageAllNodesDeployment:
1100 type: OS::Heat::StructuredDeployments
1102 config: {get_attr: [allNodesConfig, config_id]}
1103 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1105 # Nested stack deployment runs after all other controller deployments
1106 ControllerNodesPostDeployment:
1107 type: OS::TripleO::ControllerPostDeployment
1108 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1110 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1112 ComputeNodesPostDeployment:
1113 type: OS::TripleO::ComputePostDeployment
1114 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1116 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1118 ObjectStorageNodesPostDeployment:
1119 type: OS::TripleO::ObjectStoragePostDeployment
1120 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1122 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1124 BlockStorageNodesPostDeployment:
1125 type: OS::TripleO::BlockStoragePostDeployment
1126 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1128 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1130 CephStorageNodesPostDeployment:
1131 type: OS::TripleO::CephStoragePostDeployment
1132 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1134 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1138 description: URL for the Overcloud Keystone service
1143 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}