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 CinderEnableNfsBackend:
47 description: Whether to enable or not the NFS backend for Cinder
51 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
56 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
57 CinderEnableIscsiBackend:
59 description: Whether to enable or not the Iscsi backend for Cinder
63 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
67 description: Should be used for arbitrary ips.
71 description: Set to True to enable debugging on all services.
75 description: Glance port.
79 description: Protocol to use when connecting to glance, set to https for SSL.
83 description: Syslog address where HAproxy will send its log
87 description: A list of IP/Hostname allowed to connect to horizon
88 type: comma_delimited_list
90 default: 'REBUILD_PRESERVE_EPHEMERAL'
91 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
98 - custom_constraint: nova.keypair
99 NeutronExternalNetworkBridge:
100 description: Name of bridge used for external network traffic.
103 NeutronBridgeMappings:
105 The OVS logical->physical bridge mappings to use. See the Neutron
106 documentation for details. Defaults to mapping br-ex - the external
107 bridge on hosts - to a physical name 'datacentre' which can be used
108 to create provider networks (and we use this for the default floating
109 network) - if changing this either use different post-install network
110 scripts or be sure to keep 'datacentre' as a mapping network name.
112 default: "datacentre:br-ex"
113 NeutronControlPlaneID:
116 description: Neutron ID for ctlplane network.
117 NeutronEnableTunnelling:
122 default: 'datacentre'
124 If set, flat networks to configure in neutron plugins. Defaults to
125 'datacentre' to permit external network creation.
128 description: The tenant network type for Neutron, either gre or vxlan.
132 description: The password for the neutron service account, used by neutron agents.
135 NeutronPublicInterface:
137 description: What interface to bridge onto br-ex for network nodes.
139 NeutronPublicInterfaceTag:
142 VLAN tag for creating a public VLAN. The tag will be used to
143 create an access port on the exterior bridge for each control plane node,
144 and that port will be given the IP address returned by neutron from the
145 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
146 overcloud.yaml to include the deployment of VLAN ports to the control
149 NeutronComputeAgentMode:
151 description: Agent mode for the neutron-l3-agent on the compute hosts
155 description: Agent mode for the neutron-l3-agent on the controller hosts
159 description: Whether to configure Neutron Distributed Virtual Routers
161 NeutronMetadataProxySharedSecret:
163 description: Shared secret to prevent spoofing
168 The tunnel types for the Neutron tenant network. To specify multiple
169 values, use a comma separated string, like so: 'gre,vxlan'
171 NeutronTunnelIdRanges:
173 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
174 of GRE tunnel IDs that are available for tenant network allocation
175 default: ["1:1000", ]
176 type: comma_delimited_list
179 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
180 of VXLAN VNI IDs that are available for tenant network allocation
181 default: ["1:1000", ]
182 type: comma_delimited_list
186 The core plugin for Neutron. The value should be the entrypoint to be loaded
187 from neutron.core_plugins namespace.
189 NeutronServicePlugins:
192 Comma-separated list of service plugin entrypoints to be loaded from the
193 neutron.service_plugins namespace.
194 type: comma_delimited_list
196 default: "vxlan,vlan,flat,gre"
198 Comma-separated list of network type driver entrypoints to be loaded.
199 type: comma_delimited_list
200 NeutronMechanismDrivers:
201 default: 'openvswitch'
203 The mechanism drivers for the Neutron tenant network. To specify multiple
204 values, use a comma separated string, like so: 'openvswitch,l2_population'
206 NeutronAllowL3AgentFailover:
208 description: Allow automatic l3-agent failover
212 description: Whether to enable l3-agent HA
214 NeutronDhcpAgentsPerNetwork:
217 description: The number of neutron dhcp agents to schedule per network
220 description: The password for the nova service account, used by nova-api.
228 description: Should MongoDb journaling be disabled
230 PublicVirtualFixedIPs:
233 Control the IP allocation for the PublicVirtualInterface port. E.g.
234 [{'ip_address':'1.2.3.4'}]
239 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
240 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
243 description: The username for RabbitMQ
247 description: The password for RabbitMQ
253 Rabbit client subscriber parameter to specify
254 an SSL connection to the RabbitMQ host.
258 description: Set rabbit subscriber port, change this if using SSL
260 SnmpdReadonlyUserName:
261 default: ro_snmp_user
262 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
264 SnmpdReadonlyUserPassword:
266 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
270 # Controller-specific params
273 description: The keystone auth secret.
276 CinderEnableRbdBackend:
278 description: Whether to enable or not the Rbd backend for Cinder
280 CinderLVMLoopDeviceSize:
282 description: The size of the loopback file used by the cinder LVM driver.
284 CinderNfsMountOptions:
287 Mount options for NFS mounts used by Cinder NFS backend. Effective
288 when CinderEnableNfsBackend is true.
293 NFS servers used by Cinder NFS backend. Effective when
294 CinderEnableNfsBackend is true.
295 type: comma_delimited_list
298 description: The password for the cinder service account, used by cinder-api.
303 description: The iSCSI helper to use with cinder.
308 controllerExtraConfig:
311 Controller specific configuration to inject into the cluster. Same
312 structure as ExtraConfig.
316 default: overcloud-control
318 - custom_constraint: glance.image
319 OvercloudControlFlavor:
320 description: Flavor for control nodes to request when deploying.
323 - custom_constraint: nova.flavor
324 ControlVirtualInterface:
326 description: Interface where virtual ip will be assigned.
330 description: Whether to enable fencing in Pacemaker or not.
334 description: Whether to use Galera instead of regular MariaDB.
336 ControllerEnableCephStorage:
338 description: Whether to deploy Ceph Storage (OSD) on the Controller
340 ControllerEnableSwiftStorage:
342 description: Whether to enable Swift Storage on the Controller
347 Additional configuration to inject into the cluster. The format required
348 may be implementation specific, e.g puppet hieradata. Any role specific
349 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
354 Pacemaker fencing configuration. The JSON should have
355 the following structure:
359 "agent": "AGENT_NAME",
360 "host_mac": "HOST_MAC_ADDRESS",
361 "params": {"PARAM_NAME": "PARAM_VALUE"}
369 "agent": "fence_xvm",
370 "host_mac": "52:54:00:aa:bb:cc",
372 "multicast_address": "225.0.0.12",
373 "port": "baremetal_0",
375 "manage_key_file": true,
376 "key_file": "/etc/fence_xvm.key",
377 "key_file_password": "abcdef"
384 description: The filepath of the file to use for logging messages from Glance.
387 GlanceNotifierStrategy:
388 description: Strategy to use for Glance notification queue
393 description: The password for the glance service account, used by the glance services.
398 description: The short name of the Glance backend to use. Should be one
399 of swift, rbd or file
402 - allowed_values: ['swift', 'file', 'rbd']
405 description: The password for the Heat service account, used by the Heat services.
408 HeatStackDomainAdminPassword:
409 description: Password for heat_domain_admin user.
413 KeystoneCACertificate:
415 description: Keystone self-signed certificate authority certificate.
417 KeystoneSigningCertificate:
419 description: Keystone certificate for verifying token validity.
423 description: Keystone key for signing tokens.
426 KeystoneSSLCertificate:
428 description: Keystone certificate for verifying token validity.
430 KeystoneSSLCertificateKey:
432 description: Keystone key for signing tokens.
435 KeystoneNotificationDriver:
436 description: Comma-separated list of Oslo notification drivers used by Keystone
437 default: ['messaging']
438 type: comma_delimited_list
439 KeystoneNotificationFormat:
440 description: The Keystone notification format
444 - allowed_values: [ 'basic', 'cadf' ]
445 MysqlInnodbBufferPoolSize:
447 Specifies the size of the buffer pool in megabytes. Setting to
448 zero should be interpreted as "no value" and will defer to the
453 description: Configures MySQL max_connections config setting
456 NeutronDnsmasqOptions:
457 default: 'dhcp-option-force=26,1400'
458 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
460 NeutronPublicInterfaceDefaultRoute:
462 description: A custom default route for the NeutronPublicInterface.
464 NeutronPublicInterfaceIP:
466 description: A custom IP address to put onto the NeutronPublicInterface.
468 NeutronPublicInterfaceRawDevice:
470 description: If set, the public interface is a vlan with this device as the raw device.
472 PublicVirtualInterface:
475 Specifies the interface where the public-facing virtual ip will be assigned.
476 This should be int_public when a VLAN is being used.
480 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
485 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
490 description: If set, the contents of an SSL certificate authority file.
494 description: A random string to be used as a salt when hashing to determine mappings in the ring.
499 description: The password for the swift service account, used by the swift proxy services.
504 description: Value of mount_check in Swift account/container/object -server.conf
509 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
512 description: Partition Power to use when building Swift rings
517 description: How many replicas to use in the swift rings.
519 # Compute-specific params
520 CeilometerComputeAgent:
521 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
525 - allowed_values: ['', Present]
529 HypervisorNeutronPhysicalBridge:
532 An OVS bridge to create on each hypervisor. This defaults to br-ex the
533 same as the control plane nodes, as we have a uniform configuration of
534 the openvswitch agent. Typically should not need to be changed.
536 HypervisorNeutronPublicInterface:
538 description: What interface to add to the HypervisorNeutronPhysicalBridge.
540 NeutronNetworkVLANRanges:
541 default: 'datacentre'
543 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
544 Neutron documentation for permitted values. Defaults to permitting any
545 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
546 type: comma_delimited_list
549 default: libvirt.LibvirtDriver
550 NovaComputeExtraConfig:
553 NovaCompute specific configuration to inject into the cluster. Same
554 structure as ExtraConfig.
556 NovaComputeLibvirtType:
559 NovaEnableRbdBackend:
561 description: Whether to enable or not the Rbd backend for Nova
565 default: overcloud-compute
567 - custom_constraint: glance.image
568 OvercloudComputeFlavor:
569 description: Use this flavor
572 - custom_constraint: nova.flavor
575 NeutronTenantNetwork: tenant
576 CeilometerApiNetwork: internal_api
577 MongoDbNetwork: internal_api
578 CinderApiNetwork: internal_api
579 CinderIscsiNetwork: storage
580 GlanceApiNetwork: storage
581 GlanceRegistryNetwork: internal_api
582 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
583 KeystonePublicApiNetwork: internal_api
584 NeutronApiNetwork: internal_api
585 HeatApiNetwork: internal_api
586 NovaApiNetwork: internal_api
587 NovaMetadataNetwork: internal_api
588 NovaVncProxyNetwork: internal_api
589 SwiftMgmtNetwork: storage_mgmt
590 SwiftProxyNetwork: storage
591 HorizonNetwork: internal_api
592 MemcachedNetwork: internal_api
593 RabbitMqNetwork: internal_api
594 RedisNetwork: internal_api
595 MysqlNetwork: internal_api
596 CephClusterNetwork: storage_mgmt
597 CephPublicNetwork: storage
598 ControllerHostnameResolveNetwork: internal_api
599 ComputeHostnameResolveNetwork: internal_api
600 BlockStorageHostnameResolveNetwork: internal_api
601 ObjectStorageHostnameResolveNetwork: internal_api
602 CephStorageHostnameResolveNetwork: storage
603 description: Mapping of service_name -> network name. Typically set
604 via parameter_defaults in the resource registry.
607 # Block storage specific parameters
612 default: overcloud-cinder-volume
614 OvercloudBlockStorageFlavor:
615 description: Flavor for block storage nodes to request when deploying.
618 - custom_constraint: nova.flavor
619 BlockStorageExtraConfig:
622 BlockStorage specific configuration to inject into the cluster. Same
623 structure as ExtraConfig.
626 # Object storage specific parameters
630 OvercloudSwiftStorageFlavor:
631 description: Flavor for Swift storage nodes to request when deploying.
634 - custom_constraint: nova.flavor
636 default: overcloud-swift-storage
638 ObjectStorageExtraConfig:
641 ObjectStorage specific configuration to inject into the cluster. Same
642 structure as ExtraConfig.
646 # Ceph storage specific parameters
651 default: overcloud-ceph-storage
653 OvercloudCephStorageFlavor:
655 description: Flavor for Ceph storage nodes to request when deploying.
658 - custom_constraint: nova.flavor
659 CephStorageExtraConfig:
662 CephStorage specific configuration to inject into the cluster. Same
663 structure as ExtraConfig.
666 # Hostname format for each role
667 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
668 # and %stackname% is replaced with OS::stack_name in the template below.
669 # If you want to use the heat generated names, pass '' (empty string).
670 ControllerHostnameFormat:
672 description: Format for Controller node hostnames
673 default: '%stackname%-controller-%index%'
674 ComputeHostnameFormat:
676 description: Format for Compute node hostnames
677 default: '%stackname%-novacompute-%index%'
678 BlockStorageHostnameFormat:
680 description: Format for BlockStorage node hostnames
681 default: '%stackname%-blockstorage-%index%'
682 ObjectStorageHostnameFormat:
684 description: Format for SwiftStorage node hostnames
685 default: '%stackname%-objectstorage-%index%'
686 CephStorageHostnameFormat:
688 description: Format for CephStorage node hostnames
689 default: '%stackname%-cephstorage-%index%'
691 # Identifiers to trigger tasks on nodes
696 Setting to a previously unused value during stack-update will trigger
697 package update on all nodes
699 # If you want to remove a specific node from a resource group, you can pass
700 # the node name or id as a <Group>RemovalPolicies parameter, for example:
701 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
702 ControllerRemovalPolicies:
706 List of resources to be removed from ControllerResourceGroup when
707 doing an update which requires removal of specific resources.
708 ComputeRemovalPolicies:
712 List of resources to be removed from ComputeResourceGroup when
713 doing an update which requires removal of specific resources.
714 BlockStorageRemovalPolicies:
718 List of resources to be removed from BlockStorageResourceGroup when
719 doing an update which requires removal of specific resources.
720 ObjectStorageRemovalPolicies:
724 List of resources to be removed from ObjectStorageResourceGroup when
725 doing an update which requires removal of specific resources.
726 CephStorageRemovalPolicies:
730 List of resources to be removed from CephStorageResourceGroup when
731 doing an update which requires removal of specific resources.
736 HeatAuthEncryptionKey:
737 type: OS::Heat::RandomString
740 type: OS::Heat::RandomString
745 type: OS::Heat::RandomString
750 type: OS::Heat::ResourceGroup
753 count: {get_param: ControllerCount}
754 removal_policies: {get_param: ControllerRemovalPolicies}
756 type: OS::TripleO::Controller
758 AdminPassword: {get_param: AdminPassword}
759 AdminToken: {get_param: AdminToken}
760 CeilometerBackend: {get_param: CeilometerBackend}
761 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
762 CeilometerPassword: {get_param: CeilometerPassword}
763 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
764 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
765 CinderNfsServers: {get_param: CinderNfsServers}
766 CinderPassword: {get_param: CinderPassword}
767 CinderISCSIHelper: {get_param: CinderISCSIHelper}
768 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
769 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
770 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
771 CloudName: {get_param: CloudName}
772 ControlVirtualInterface: {get_param: ControlVirtualInterface}
773 ControllerExtraConfig: {get_param: controllerExtraConfig}
774 Debug: {get_param: Debug}
775 EnableFencing: {get_param: EnableFencing}
776 EnableGalera: {get_param: EnableGalera}
777 EnableCephStorage: {get_param: ControllerEnableCephStorage}
778 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
779 ExtraConfig: {get_param: ExtraConfig}
780 FencingConfig: {get_param: FencingConfig}
781 Flavor: {get_param: OvercloudControlFlavor}
782 GlancePort: {get_param: GlancePort}
783 GlanceProtocol: {get_param: GlanceProtocol}
784 GlancePassword: {get_param: GlancePassword}
785 GlanceBackend: {get_param: GlanceBackend}
786 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
787 GlanceLogFile: {get_param: GlanceLogFile}
788 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
789 HeatPassword: {get_param: HeatPassword}
790 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
791 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
792 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
793 HorizonSecret: {get_resource: HorizonSecret}
794 Image: {get_param: controllerImage}
795 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
796 KeyName: {get_param: KeyName}
797 KeystoneCACertificate: {get_param: KeystoneCACertificate}
798 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
799 KeystoneSigningKey: {get_param: KeystoneSigningKey}
800 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
801 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
802 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
803 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
804 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
805 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
806 MysqlMaxConnections: {get_param: MysqlMaxConnections}
807 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
808 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
809 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
810 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
811 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
812 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
813 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
814 NeutronPublicInterface: {get_param: NeutronPublicInterface}
815 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
816 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
817 NeutronPassword: {get_param: NeutronPassword}
818 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
819 NeutronDVR: {get_param: NeutronDVR}
820 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
821 NeutronAgentMode: {get_param: NeutronAgentMode}
822 NeutronCorePlugin: {get_param: NeutronCorePlugin}
823 NeutronServicePlugins: {get_param: NeutronServicePlugins}
824 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
825 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
826 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
827 NeutronL3HA: {get_param: NeutronL3HA}
828 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
829 NeutronNetworkType: {get_param: NeutronNetworkType}
830 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
831 NovaPassword: {get_param: NovaPassword}
832 NtpServer: {get_param: NtpServer}
833 MongoDbNoJournal: {get_param: MongoDbNoJournal}
834 PcsdPassword: {get_resource: PcsdPassword}
835 PublicVirtualInterface: {get_param: PublicVirtualInterface}
836 RabbitPassword: {get_param: RabbitPassword}
837 RabbitUserName: {get_param: RabbitUserName}
838 RabbitCookie: {get_attr: [RabbitCookie, value]}
839 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
840 RabbitClientPort: {get_param: RabbitClientPort}
841 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
842 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
843 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
844 SSLCertificate: {get_param: SSLCertificate}
845 SSLKey: {get_param: SSLKey}
846 SSLCACertificate: {get_param: SSLCACertificate}
847 SwiftHashSuffix: {get_param: SwiftHashSuffix}
848 SwiftMountCheck: {get_param: SwiftMountCheck}
849 SwiftMinPartHours: {get_param: SwiftMinPartHours}
850 SwiftPartPower: {get_param: SwiftPartPower}
851 SwiftPassword: {get_param: SwiftPassword}
852 SwiftReplicas: { get_param: SwiftReplicas}
853 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
854 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
855 ServiceNetMap: {get_param: ServiceNetMap}
856 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
857 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
858 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
859 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
860 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
861 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
862 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
863 UpdateIdentifier: {get_param: UpdateIdentifier}
866 template: {get_param: ControllerHostnameFormat}
868 '%stackname%': {get_param: 'OS::stack_name'}
871 type: OS::Heat::ResourceGroup
874 count: {get_param: ComputeCount}
875 removal_policies: {get_param: ComputeRemovalPolicies}
877 type: OS::TripleO::Compute
879 AdminPassword: {get_param: AdminPassword}
880 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
881 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
882 CeilometerPassword: {get_param: CeilometerPassword}
883 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
884 Debug: {get_param: Debug}
885 ExtraConfig: {get_param: ExtraConfig}
886 Flavor: {get_param: OvercloudComputeFlavor}
887 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
888 GlancePort: {get_param: GlancePort}
889 GlanceProtocol: {get_param: GlanceProtocol}
890 Image: {get_param: NovaImage}
891 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
892 KeyName: {get_param: KeyName}
893 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
894 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
895 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
896 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
897 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
898 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
899 NeutronNetworkType: {get_param: NeutronNetworkType}
900 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
901 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
902 NeutronPassword: {get_param: NeutronPassword}
903 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
904 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
905 NeutronDVR: {get_param: NeutronDVR}
906 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
907 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
908 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
909 NeutronCorePlugin: {get_param: NeutronCorePlugin}
910 NeutronServicePlugins: {get_param: NeutronServicePlugins}
911 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
912 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
913 # L3 HA and Failover is not relevant for Computes, should be removed
914 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
915 NeutronL3HA: {get_param: NeutronL3HA}
916 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
917 NovaComputeDriver: {get_param: NovaComputeDriver}
918 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
919 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
920 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
921 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
922 NovaPassword: {get_param: NovaPassword}
923 NtpServer: {get_param: NtpServer}
924 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
925 RabbitPassword: {get_param: RabbitPassword}
926 RabbitUserName: {get_param: RabbitUserName}
927 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
928 RabbitClientPort: {get_param: RabbitClientPort}
929 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
930 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
931 ServiceNetMap: {get_param: ServiceNetMap}
932 UpdateIdentifier: {get_param: UpdateIdentifier}
935 template: {get_param: ComputeHostnameFormat}
937 '%stackname%': {get_param: 'OS::stack_name'}
940 type: OS::Heat::ResourceGroup
943 count: {get_param: BlockStorageCount}
944 removal_policies: {get_param: BlockStorageRemovalPolicies}
946 type: OS::TripleO::BlockStorage
948 Debug: {get_param: Debug}
949 Image: {get_param: BlockStorageImage}
950 CinderISCSIHelper: {get_param: CinderISCSIHelper}
951 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
952 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
953 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
954 CinderPassword: {get_param: CinderPassword}
955 KeyName: {get_param: KeyName}
956 Flavor: {get_param: OvercloudBlockStorageFlavor}
957 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
958 GlancePort: {get_param: GlancePort}
959 GlanceProtocol: {get_param: GlanceProtocol}
960 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
961 RabbitPassword: {get_param: RabbitPassword}
962 RabbitUserName: {get_param: RabbitUserName}
963 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
964 RabbitClientPort: {get_param: RabbitClientPort}
965 NtpServer: {get_param: NtpServer}
966 UpdateIdentifier: {get_param: UpdateIdentifier}
969 template: {get_param: BlockStorageHostnameFormat}
971 '%stackname%': {get_param: 'OS::stack_name'}
972 ServiceNetMap: {get_param: ServiceNetMap}
973 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
974 ExtraConfig: {get_param: ExtraConfig}
975 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
978 type: OS::Heat::ResourceGroup
981 count: {get_param: ObjectStorageCount}
982 removal_policies: {get_param: ObjectStorageRemovalPolicies}
984 type: OS::TripleO::ObjectStorage
986 KeyName: {get_param: KeyName}
987 Flavor: {get_param: OvercloudSwiftStorageFlavor}
988 HashSuffix: {get_param: SwiftHashSuffix}
989 MountCheck: {get_param: SwiftMountCheck}
990 MinPartHours: {get_param: SwiftMinPartHours}
991 PartPower: {get_param: SwiftPartPower}
992 Image: {get_param: SwiftStorageImage}
993 Replicas: { get_param: SwiftReplicas}
994 NtpServer: {get_param: NtpServer}
995 UpdateIdentifier: {get_param: UpdateIdentifier}
996 ServiceNetMap: {get_param: ServiceNetMap}
999 template: {get_param: ObjectStorageHostnameFormat}
1001 '%stackname%': {get_param: 'OS::stack_name'}
1002 ExtraConfig: {get_param: ExtraConfig}
1003 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1006 type: OS::Heat::ResourceGroup
1007 depends_on: Networks
1009 count: {get_param: CephStorageCount}
1010 removal_policies: {get_param: CephStorageRemovalPolicies}
1012 type: OS::TripleO::CephStorage
1014 Image: {get_param: CephStorageImage}
1015 KeyName: {get_param: KeyName}
1016 Flavor: {get_param: OvercloudCephStorageFlavor}
1017 NtpServer: {get_param: NtpServer}
1018 ServiceNetMap: {get_param: ServiceNetMap}
1019 UpdateIdentifier: {get_param: UpdateIdentifier}
1022 template: {get_param: CephStorageHostnameFormat}
1024 '%stackname%': {get_param: 'OS::stack_name'}
1025 ExtraConfig: {get_param: ExtraConfig}
1026 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1028 ControllerIpListMap:
1029 type: OS::TripleO::Network::Ports::NetIpListMap
1031 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1032 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1033 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1034 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1035 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1036 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1039 type: OS::TripleO::AllNodes::SoftwareConfig
1041 compute_hosts: {get_attr: [Compute, hosts_entry]}
1042 controller_hosts: {get_attr: [Controller, hosts_entry]}
1043 controller_ips: {get_attr: [Controller, ip_address]}
1044 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1045 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1046 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1047 controller_names: {get_attr: [Controller, hostname]}
1048 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1049 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1050 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1051 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1052 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1053 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1054 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1055 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1056 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1057 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1058 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1059 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1060 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1061 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1062 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1063 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1064 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1067 type: OS::Heat::RandomString
1071 MysqlClusterUniquePart:
1072 type: OS::Heat::RandomString
1077 type: OS::Heat::RandomString
1080 salt: {get_param: RabbitCookieSalt}
1082 # creates the network architecture
1084 type: OS::TripleO::Network
1087 type: OS::Neutron::Port
1088 depends_on: Networks
1090 name: control_virtual_ip
1091 network_id: {get_param: NeutronControlPlaneID}
1092 fixed_ips: {get_param: ControlFixedIPs}
1093 replacement_policy: AUTO
1096 depends_on: Networks
1097 type: OS::TripleO::Controller::Ports::RedisVipPort
1099 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1100 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1101 PortName: redis_virtual_ip
1102 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1104 # The public VIP is on the External net, falls back to ctlplane
1106 depends_on: Networks
1107 type: OS::TripleO::Controller::Ports::ExternalPort
1109 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1110 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1111 PortName: public_virtual_ip
1112 FixedIPs: {get_param: PublicVirtualFixedIPs}
1114 InternalApiVirtualIP:
1115 depends_on: Networks
1116 type: OS::TripleO::Controller::Ports::InternalApiPort
1118 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1119 PortName: internal_api_virtual_ip
1122 depends_on: Networks
1123 type: OS::TripleO::Controller::Ports::StoragePort
1125 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1126 PortName: storage_virtual_ip
1128 StorageMgmtVirtualIP:
1129 depends_on: Networks
1130 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1132 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1133 PortName: storage_management_virtual_ip
1136 type: OS::TripleO::Network::Ports::NetIpMap
1138 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1139 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1140 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1141 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1142 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1143 # No tenant VIP required
1146 type: OS::TripleO::VipConfig
1149 type: OS::Heat::StructuredDeployments
1151 config: {get_resource: VipConfig}
1152 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1154 # service VIP mappings
1155 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1156 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1157 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1158 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1159 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1160 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1161 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1162 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1163 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1164 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1165 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1166 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1167 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1168 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1169 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1170 # direct configuration of Virtual IPs for each network
1171 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1172 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1173 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1174 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1175 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1177 ControllerBootstrapNodeConfig:
1178 type: OS::TripleO::BootstrapNode::SoftwareConfig
1180 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1181 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1183 ControllerBootstrapNodeDeployment:
1184 type: OS::Heat::StructuredDeployments
1186 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1187 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1189 ControllerSwiftDeployment:
1190 type: OS::Heat::StructuredDeployments
1192 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1193 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1195 ObjectStorageSwiftDeployment:
1196 type: OS::Heat::StructuredDeployments
1198 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1199 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1201 SwiftDevicesAndProxyConfig:
1202 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1204 controller_swift_devices: {get_attr: [Controller, swift_device]}
1205 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1206 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1208 ComputeCephDeployment:
1209 type: OS::Heat::StructuredDeployments
1211 config: {get_attr: [CephClusterConfig, config_id]}
1212 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1214 ControllerCephDeployment:
1215 type: OS::Heat::StructuredDeployments
1217 config: {get_attr: [CephClusterConfig, config_id]}
1218 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1220 CephStorageCephDeployment:
1221 type: OS::Heat::StructuredDeployments
1223 config: {get_attr: [CephClusterConfig, config_id]}
1224 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1227 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1229 ceph_storage_count: {get_param: CephStorageCount}
1230 ceph_fsid: {get_param: CephClusterFSID}
1231 ceph_mon_key: {get_param: CephMonKey}
1232 ceph_admin_key: {get_param: CephAdminKey}
1233 ceph_client_key: {get_param: CephClientKey}
1234 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1235 ceph_mon_names: {get_attr: [Controller, hostname]}
1236 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1238 ControllerClusterConfig:
1239 type: OS::Heat::StructuredConfig
1241 group: os-apply-config
1244 nodes: {get_attr: [Controller, corosync_node]}
1248 nodes: {get_attr: [Controller, hostname]}
1250 nodes: {get_attr: [Controller, corosync_node]}
1252 nodes: {get_attr: [Controller, corosync_node]}
1254 ControllerClusterDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 config: {get_resource: ControllerClusterConfig}
1258 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1260 ControllerAllNodesDeployment:
1261 type: OS::Heat::StructuredDeployments
1263 config: {get_attr: [allNodesConfig, config_id]}
1264 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1266 ComputeAllNodesDeployment:
1267 type: OS::Heat::StructuredDeployments
1269 config: {get_attr: [allNodesConfig, config_id]}
1270 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1272 BlockStorageAllNodesDeployment:
1273 type: OS::Heat::StructuredDeployments
1275 config: {get_attr: [allNodesConfig, config_id]}
1276 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1278 ObjectStorageAllNodesDeployment:
1279 type: OS::Heat::StructuredDeployments
1281 config: {get_attr: [allNodesConfig, config_id]}
1282 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1284 CephStorageAllNodesDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 config: {get_attr: [allNodesConfig, config_id]}
1288 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1290 # All Nodes Validations
1291 AllNodesValidationConfig:
1292 type: OS::TripleO::AllNodes::Validation
1297 - - {get_attr: [Controller, resource.0.external_ip_address]}
1298 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1299 - {get_attr: [Controller, resource.0.storage_ip_address]}
1300 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1301 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1303 ControllerAllNodesValidationDeployment:
1304 type: OS::Heat::StructuredDeployments
1305 depends_on: ControllerAllNodesDeployment
1307 config: {get_resource: AllNodesValidationConfig}
1308 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1310 ComputeAllNodesValidationDeployment:
1311 type: OS::Heat::StructuredDeployments
1312 depends_on: ComputeAllNodesDeployment
1314 config: {get_resource: AllNodesValidationConfig}
1315 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1317 BlockStorageAllNodesValidationDeployment:
1318 type: OS::Heat::StructuredDeployments
1319 depends_on: BlockStorageAllNodesDeployment
1321 config: {get_resource: AllNodesValidationConfig}
1322 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1324 ObjectStorageAllNodesValidationDeployment:
1325 type: OS::Heat::StructuredDeployments
1326 depends_on: ObjectStorageAllNodesDeployment
1328 config: {get_resource: AllNodesValidationConfig}
1329 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1331 CephStorageAllNodesValidationDeployment:
1332 type: OS::Heat::StructuredDeployments
1333 depends_on: CephStorageAllNodesDeployment
1335 config: {get_resource: AllNodesValidationConfig}
1336 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1338 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1339 # the nested template may configure each role differently (or not at all)
1340 AllNodesExtraConfig:
1341 type: OS::TripleO::AllNodesExtraConfig
1343 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1344 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1345 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1346 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1347 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1349 # Nested stack deployment runs after all other controller deployments
1350 ControllerNodesPostDeployment:
1351 type: OS::TripleO::ControllerPostDeployment
1352 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1354 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1355 NodeConfigIdentifiers:
1356 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1357 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1359 ComputeNodesPostDeployment:
1360 type: OS::TripleO::ComputePostDeployment
1361 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1363 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1364 NodeConfigIdentifiers:
1365 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1366 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1368 ObjectStorageNodesPostDeployment:
1369 type: OS::TripleO::ObjectStoragePostDeployment
1370 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1372 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1373 NodeConfigIdentifiers:
1374 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1375 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1377 BlockStorageNodesPostDeployment:
1378 type: OS::TripleO::BlockStoragePostDeployment
1379 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1381 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1382 NodeConfigIdentifiers:
1383 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1384 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1386 CephStorageNodesPostDeployment:
1387 type: OS::TripleO::CephStoragePostDeployment
1388 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1390 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1391 NodeConfigIdentifiers:
1392 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1393 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1397 description: URL for the Overcloud Keystone service
1402 - {get_attr: [PublicVirtualIP, ip_address]}
1405 description: Keystone Admin VIP endpoint
1406 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1408 description: Controller VIP for public API endpoints
1409 value: {get_attr: [PublicVirtualIP, ip_address]}
1410 CeilometerInternalVip:
1411 description: VIP for Ceilometer API internal endpoint
1412 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1414 description: VIP for Cinder API internal endpoint
1415 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1417 description: VIP for Glance API internal endpoint
1418 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1420 description: VIP for Heat API internal endpoint
1421 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1422 KeystoneInternalVip:
1423 description: VIP for Keystone API internal endpoint
1424 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1426 description: VIP for Neutron API internal endpoint
1427 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1429 description: VIP for Nova API internal endpoint
1430 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1432 description: VIP for Swift Proxy internal endpoint
1433 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}