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).
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: external
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: external
515 MemcachedNetwork: internal_api
516 RabbitMqNetwork: internal_api
517 RedisNetwork: internal_api
518 MysqlNetwork: internal_api
519 description: Mapping of service_name -> network name. Typically set
520 via parameter_defaults in the resource registry.
523 # Block storage specific parameters
528 default: overcloud-cinder-volume
530 OvercloudBlockStorageFlavor:
531 description: Flavor for block storage nodes to request when deploying.
534 - custom_constraint: nova.flavor
536 # Object storage specific parameters
540 OvercloudSwiftStorageFlavor:
541 description: Flavor for Swift storage nodes to request when deploying.
544 - custom_constraint: nova.flavor
546 default: overcloud-swift-storage
549 # Ceph storage specific parameters
554 default: overcloud-ceph-storage
556 OvercloudCephStorageFlavor:
558 description: Flavor for Ceph storage nodes to request when deploying.
561 - custom_constraint: nova.flavor
565 HeatAuthEncryptionKey:
566 type: OS::Heat::RandomString
569 type: OS::Heat::RandomString
574 type: OS::Heat::RandomString
579 type: OS::Heat::ResourceGroup
582 count: {get_param: ControllerCount}
584 type: OS::TripleO::Controller
586 AdminPassword: {get_param: AdminPassword}
587 AdminToken: {get_param: AdminToken}
588 CeilometerBackend: {get_param: CeilometerBackend}
589 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
590 CeilometerPassword: {get_param: CeilometerPassword}
591 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
592 CinderPassword: {get_param: CinderPassword}
593 CinderISCSIHelper: {get_param: CinderISCSIHelper}
594 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
595 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
596 CloudName: {get_param: CloudName}
597 ControlVirtualInterface: {get_param: ControlVirtualInterface}
598 ControllerExtraConfig: {get_param: controllerExtraConfig}
599 Debug: {get_param: Debug}
600 EnableGalera: {get_param: EnableGalera}
601 EnablePacemaker: {get_param: EnablePacemaker}
602 EnableCephStorage: {get_param: ControllerEnableCephStorage}
603 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
604 ExtraConfig: {get_param: ExtraConfig}
605 Flavor: {get_param: OvercloudControlFlavor}
606 GlancePort: {get_param: GlancePort}
607 GlanceProtocol: {get_param: GlanceProtocol}
608 GlancePassword: {get_param: GlancePassword}
609 GlanceBackend: {get_param: GlanceBackend}
610 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
611 GlanceLogFile: {get_param: GlanceLogFile}
612 HeatPassword: {get_param: HeatPassword}
613 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
614 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
615 HorizonSecret: {get_resource: HorizonSecret}
616 Image: {get_param: controllerImage}
617 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
618 KeyName: {get_param: KeyName}
619 KeystoneCACertificate: {get_param: KeystoneCACertificate}
620 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
621 KeystoneSigningKey: {get_param: KeystoneSigningKey}
622 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
623 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
624 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
625 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
626 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
627 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
628 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
629 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
630 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
631 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
632 NeutronPublicInterface: {get_param: NeutronPublicInterface}
633 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
634 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
635 NeutronPassword: {get_param: NeutronPassword}
636 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
637 NeutronDVR: {get_param: NeutronDVR}
638 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
639 NeutronAgentMode: {get_param: NeutronAgentMode}
640 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
641 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
642 NeutronL3HA: {get_param: NeutronL3HA}
643 NeutronNetworkType: {get_param: NeutronNetworkType}
644 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
645 NovaPassword: {get_param: NovaPassword}
646 NtpServer: {get_param: NtpServer}
647 PcsdPassword: {get_resource: PcsdPassword}
648 PublicVirtualInterface: {get_param: PublicVirtualInterface}
649 RabbitPassword: {get_param: RabbitPassword}
650 RabbitUserName: {get_param: RabbitUserName}
651 RabbitCookie: {get_attr: [RabbitCookie, value]}
652 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
653 RabbitClientPort: {get_param: RabbitClientPort}
654 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
655 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
656 SSLCertificate: {get_param: SSLCertificate}
657 SSLKey: {get_param: SSLKey}
658 SSLCACertificate: {get_param: SSLCACertificate}
659 SwiftHashSuffix: {get_param: SwiftHashSuffix}
660 SwiftMountCheck: {get_param: SwiftMountCheck}
661 SwiftMinPartHours: {get_param: SwiftMinPartHours}
662 SwiftPartPower: {get_param: SwiftPartPower}
663 SwiftPassword: {get_param: SwiftPassword}
664 SwiftReplicas: { get_param: SwiftReplicas}
665 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
666 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
667 ServiceNetMap: {get_param: ServiceNetMap}
670 type: OS::Heat::ResourceGroup
673 count: {get_param: ComputeCount}
675 type: OS::TripleO::Compute
677 AdminPassword: {get_param: AdminPassword}
678 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
679 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
680 CeilometerPassword: {get_param: CeilometerPassword}
681 Debug: {get_param: Debug}
682 ExtraConfig: {get_param: ExtraConfig}
683 Flavor: {get_param: OvercloudComputeFlavor}
684 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
685 GlancePort: {get_param: GlancePort}
686 GlanceProtocol: {get_param: GlanceProtocol}
687 Image: {get_param: NovaImage}
688 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
689 KeyName: {get_param: KeyName}
690 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
691 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
692 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
693 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
694 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
695 NeutronNetworkType: {get_param: NeutronNetworkType}
696 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
697 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
698 NeutronPassword: {get_param: NeutronPassword}
699 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
700 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
701 NeutronDVR: {get_param: NeutronDVR}
702 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
703 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
704 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
705 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
706 # L3 HA and Failover is not relevant for Computes, should be removed
707 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
708 NeutronL3HA: {get_param: NeutronL3HA}
709 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
710 NovaComputeDriver: {get_param: NovaComputeDriver}
711 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
712 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
713 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
714 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
715 NovaPassword: {get_param: NovaPassword}
716 NtpServer: {get_param: NtpServer}
717 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
718 RabbitPassword: {get_param: RabbitPassword}
719 RabbitUserName: {get_param: RabbitUserName}
720 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
721 RabbitClientPort: {get_param: RabbitClientPort}
722 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
723 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
724 ServiceNetMap: {get_param: ServiceNetMap}
727 type: OS::Heat::ResourceGroup
730 count: {get_param: BlockStorageCount}
732 type: OS::TripleO::BlockStorage
734 Debug: {get_param: Debug}
735 Image: {get_param: BlockStorageImage}
736 CinderISCSIHelper: {get_param: CinderISCSIHelper}
737 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
738 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
739 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
740 CinderPassword: {get_param: CinderPassword}
741 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
742 KeyName: {get_param: KeyName}
743 Flavor: {get_param: OvercloudBlockStorageFlavor}
744 RabbitPassword: {get_param: RabbitPassword}
745 RabbitUserName: {get_param: RabbitUserName}
746 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
747 RabbitClientPort: {get_param: RabbitClientPort}
748 NtpServer: {get_param: NtpServer}
751 type: OS::Heat::ResourceGroup
754 count: {get_param: ObjectStorageCount}
756 type: OS::TripleO::ObjectStorage
758 KeyName: {get_param: KeyName}
759 Flavor: {get_param: OvercloudSwiftStorageFlavor}
760 HashSuffix: {get_param: SwiftHashSuffix}
761 MountCheck: {get_param: SwiftMountCheck}
762 MinPartHours: {get_param: SwiftMinPartHours}
763 PartPower: {get_param: SwiftPartPower}
764 Image: {get_param: SwiftStorageImage}
765 Replicas: { get_param: SwiftReplicas}
766 NtpServer: {get_param: NtpServer}
769 type: OS::Heat::ResourceGroup
772 count: {get_param: CephStorageCount}
774 type: OS::TripleO::CephStorage
776 Image: {get_param: CephStorageImage}
777 KeyName: {get_param: KeyName}
778 Flavor: {get_param: OvercloudCephStorageFlavor}
779 NtpServer: {get_param: NtpServer}
782 type: OS::TripleO::Network::Ports::NetIpListMap
784 ExternalIpList: {get_attr: [Controller, external_ip_address]}
785 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
786 StorageIpList: {get_attr: [Controller, storage_ip_address]}
787 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
788 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
791 type: OS::TripleO::AllNodes::SoftwareConfig
793 compute_hosts: {get_attr: [Compute, hosts_entry]}
794 controller_hosts: {get_attr: [Controller, hosts_entry]}
795 controller_ips: {get_attr: [Controller, ip_address]}
796 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
797 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
798 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
799 controller_names: {get_attr: [Controller, hostname]}
800 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
801 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
802 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
803 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
804 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
805 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
806 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
807 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
808 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
809 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
810 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
811 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
812 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
813 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
814 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
815 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
816 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
819 type: OS::Heat::RandomString
823 MysqlClusterUniquePart:
824 type: OS::Heat::RandomString
829 type: OS::Heat::RandomString
832 salt: {get_param: RabbitCookieSalt}
834 # creates the network architecture
836 type: OS::TripleO::Network
839 type: OS::Neutron::Port
842 name: control_virtual_ip
843 network_id: {get_param: NeutronControlPlaneID}
844 fixed_ips: {get_param: ControlFixedIPs}
845 replacement_policy: AUTO
849 type: OS::Neutron::Port
852 name: public_virtual_ip
853 network: {get_param: PublicVirtualNetwork}
854 fixed_ips: {get_param: PublicVirtualFixedIPs}
855 replacement_policy: AUTO
857 InternalApiVirtualIP:
859 type: OS::TripleO::Controller::Ports::InternalApiPort
861 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
862 PortName: internal_api_virtual_ip
866 type: OS::TripleO::Controller::Ports::StoragePort
868 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
869 PortName: storage_virtual_ip
871 StorageMgmtVirtualIP:
873 type: OS::TripleO::Controller::Ports::StorageMgmtPort
875 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
876 PortName: storage_management_virtual_ip
879 type: OS::TripleO::Network::Ports::NetIpMap
881 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
882 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
883 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
884 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
885 # No tenant VIP required
888 type: OS::TripleO::VipConfig
891 type: OS::Heat::StructuredDeployments
893 config: {get_resource: VipConfig}
894 servers: {get_attr: [Controller, attributes, nova_server_resource]}
896 # service VIP mappings
897 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
898 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
899 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
900 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
901 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
902 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
903 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
904 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
905 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
906 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
907 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
908 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
909 redis_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
910 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
911 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
912 # direct configuration of Virtual IPs for each network
913 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
914 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
915 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
917 ControllerBootstrapNodeConfig:
918 type: OS::TripleO::BootstrapNode::SoftwareConfig
920 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
921 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
923 ControllerBootstrapNodeDeployment:
924 type: OS::Heat::StructuredDeployments
926 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
927 servers: {get_attr: [Controller, attributes, nova_server_resource]}
928 signal_transport: NO_SIGNAL
930 ControllerSwiftDeployment:
931 type: OS::Heat::StructuredDeployments
933 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
934 servers: {get_attr: [Controller, attributes, nova_server_resource]}
935 signal_transport: NO_SIGNAL
937 ObjectStorageSwiftDeployment:
938 type: OS::Heat::StructuredDeployments
940 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
941 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
942 signal_transport: NO_SIGNAL
944 SwiftDevicesAndProxyConfig:
945 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
947 controller_swift_devices: {get_attr: [Controller, swift_device]}
948 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
949 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
951 ComputeCephDeployment:
952 type: OS::Heat::StructuredDeployments
954 config: {get_attr: [CephClusterConfig, config_id]}
955 servers: {get_attr: [Compute, attributes, nova_server_resource]}
957 ControllerCephDeployment:
958 type: OS::Heat::StructuredDeployments
960 config: {get_attr: [CephClusterConfig, config_id]}
961 servers: {get_attr: [Controller, attributes, nova_server_resource]}
963 CephStorageCephDeployment:
964 type: OS::Heat::StructuredDeployments
966 config: {get_attr: [CephClusterConfig, config_id]}
967 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
970 type: OS::TripleO::CephClusterConfig::SoftwareConfig
972 ceph_fsid: {get_param: CephClusterFSID}
973 ceph_mon_key: {get_param: CephMonKey}
974 ceph_admin_key: {get_param: CephAdminKey}
975 ceph_mon_names: {get_attr: [Controller, hostname]}
976 ceph_mon_ips: {get_attr: [Controller, ip_address]}
978 ControllerClusterConfig:
979 type: OS::Heat::StructuredConfig
983 nodes: {get_attr: [Controller, corosync_node]}
987 nodes: {get_attr: [Controller, hostname]}
989 nodes: {get_attr: [Controller, corosync_node]}
991 nodes: {get_attr: [Controller, corosync_node]}
993 ControllerClusterDeployment:
994 type: OS::Heat::StructuredDeployments
996 config: {get_resource: ControllerClusterConfig}
997 servers: {get_attr: [Controller, attributes, nova_server_resource]}
998 signal_transport: NO_SIGNAL
1000 ControllerAllNodesDeployment:
1001 type: OS::Heat::StructuredDeployments
1003 config: {get_attr: [allNodesConfig, config_id]}
1004 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1006 ComputeAllNodesDeployment:
1007 type: OS::Heat::StructuredDeployments
1009 config: {get_attr: [allNodesConfig, config_id]}
1010 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1012 BlockStorageAllNodesDeployment:
1013 type: OS::Heat::StructuredDeployments
1015 config: {get_attr: [allNodesConfig, config_id]}
1016 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1018 ObjectStorageAllNodesDeployment:
1019 type: OS::Heat::StructuredDeployments
1021 config: {get_attr: [allNodesConfig, config_id]}
1022 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1024 CephStorageAllNodesDeployment:
1025 type: OS::Heat::StructuredDeployments
1027 config: {get_attr: [allNodesConfig, config_id]}
1028 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1030 # Nested stack deployment runs after all other controller deployments
1031 ControllerNodesPostDeployment:
1032 type: OS::TripleO::ControllerPostDeployment
1033 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1035 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1037 ComputeNodesPostDeployment:
1038 type: OS::TripleO::ComputePostDeployment
1039 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1041 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1043 ObjectStorageNodesPostDeployment:
1044 type: OS::TripleO::ObjectStoragePostDeployment
1045 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1047 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1049 BlockStorageNodesPostDeployment:
1050 type: OS::TripleO::BlockStoragePostDeployment
1051 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1053 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1055 CephStorageNodesPostDeployment:
1056 type: OS::TripleO::CephStoragePostDeployment
1057 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1059 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1063 description: URL for the Overcloud Keystone service
1068 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}