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.
44 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
47 CinderEnableNfsBackend:
49 description: Whether to enable or not the NFS backend for Cinder
53 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.
59 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
60 CinderEnableIscsiBackend:
62 description: Whether to enable or not the Iscsi backend for Cinder
66 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
70 description: Should be used for arbitrary ips.
74 description: Set to True to enable debugging on all services.
78 description: Glance port.
82 description: Protocol to use when connecting to glance, set to https for SSL.
86 description: Syslog address where HAproxy will send its log
90 description: A list of IP/Hostname allowed to connect to horizon
91 type: comma_delimited_list
93 default: 'REBUILD_PRESERVE_EPHEMERAL'
94 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
98 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
101 - custom_constraint: nova.keypair
102 NeutronExternalNetworkBridge:
103 description: Name of bridge used for external network traffic.
106 NeutronBridgeMappings:
108 The OVS logical->physical bridge mappings to use. See the Neutron
109 documentation for details. Defaults to mapping br-ex - the external
110 bridge on hosts - to a physical name 'datacentre' which can be used
111 to create provider networks (and we use this for the default floating
112 network) - if changing this either use different post-install network
113 scripts or be sure to keep 'datacentre' as a mapping network name.
115 default: "datacentre:br-ex"
116 NeutronControlPlaneID:
119 description: Neutron ID for ctlplane network.
120 NeutronEnableTunnelling:
125 default: 'datacentre'
127 If set, flat networks to configure in neutron plugins. Defaults to
128 'datacentre' to permit external network creation.
131 description: The tenant network type for Neutron, either gre or vxlan.
135 description: The password for the neutron service account, used by neutron agents.
138 NeutronPublicInterface:
140 description: What interface to bridge onto br-ex for network nodes.
142 NeutronPublicInterfaceTag:
145 VLAN tag for creating a public VLAN. The tag will be used to
146 create an access port on the exterior bridge for each control plane node,
147 and that port will be given the IP address returned by neutron from the
148 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
149 overcloud.yaml to include the deployment of VLAN ports to the control
152 NeutronComputeAgentMode:
154 description: Agent mode for the neutron-l3-agent on the compute hosts
158 description: Agent mode for the neutron-l3-agent on the controller hosts
162 description: Whether to configure Neutron Distributed Virtual Routers
164 NeutronMetadataProxySharedSecret:
166 description: Shared secret to prevent spoofing
172 The tunnel types for the Neutron tenant network. To specify multiple
173 values, use a comma separated string, like so: 'gre,vxlan'
175 NeutronTunnelIdRanges:
177 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
178 of GRE tunnel IDs that are available for tenant network allocation
179 default: ["1:1000", ]
180 type: comma_delimited_list
183 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
184 of VXLAN VNI IDs that are available for tenant network allocation
185 default: ["1:1000", ]
186 type: comma_delimited_list
190 The core plugin for Neutron. The value should be the entrypoint to be loaded
191 from neutron.core_plugins namespace.
193 NeutronServicePlugins:
196 Comma-separated list of service plugin entrypoints to be loaded from the
197 neutron.service_plugins namespace.
198 type: comma_delimited_list
200 default: "vxlan,vlan,flat,gre"
202 Comma-separated list of network type driver entrypoints to be loaded.
203 type: comma_delimited_list
204 NeutronMechanismDrivers:
205 default: 'openvswitch'
207 The mechanism drivers for the Neutron tenant network. To specify multiple
208 values, use a comma separated string, like so: 'openvswitch,l2_population'
210 NeutronAllowL3AgentFailover:
212 description: Allow automatic l3-agent failover
216 description: Whether to enable l3-agent HA
218 NeutronDhcpAgentsPerNetwork:
221 description: The number of neutron dhcp agents to schedule per network
224 description: The password for the nova service account, used by nova-api.
232 description: Should MongoDb journaling be disabled
234 PublicVirtualFixedIPs:
237 Control the IP allocation for the PublicVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
243 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
244 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
247 description: The username for RabbitMQ
251 description: The password for RabbitMQ
257 Rabbit client subscriber parameter to specify
258 an SSL connection to the RabbitMQ host.
262 description: Set rabbit subscriber port, change this if using SSL
264 # We need to set this as string because 'unlimited' is a valid setting
267 description: Configures RabbitMQ FD limit
269 SnmpdReadonlyUserName:
270 default: ro_snmp_user
271 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
273 SnmpdReadonlyUserPassword:
275 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
279 # Controller-specific params
282 description: The keystone auth secret.
285 CinderEnableRbdBackend:
287 description: Whether to enable or not the Rbd backend for Cinder
289 CinderLVMLoopDeviceSize:
291 description: The size of the loopback file used by the cinder LVM driver.
293 CinderNfsMountOptions:
296 Mount options for NFS mounts used by Cinder NFS backend. Effective
297 when CinderEnableNfsBackend is true.
302 NFS servers used by Cinder NFS backend. Effective when
303 CinderEnableNfsBackend is true.
304 type: comma_delimited_list
307 description: The password for the cinder service account, used by cinder-api.
312 description: The iSCSI helper to use with cinder.
317 controllerExtraConfig:
320 Controller specific configuration to inject into the cluster. Same
321 structure as ExtraConfig.
325 default: overcloud-control
327 - custom_constraint: glance.image
328 OvercloudControlFlavor:
329 description: Flavor for control nodes to request when deploying.
332 - custom_constraint: nova.flavor
333 ControlVirtualInterface:
335 description: Interface where virtual ip will be assigned.
339 description: Whether to enable fencing in Pacemaker or not.
343 description: Whether to use Galera instead of regular MariaDB.
345 ControllerEnableCephStorage:
347 description: Whether to deploy Ceph Storage (OSD) on the Controller
349 ControllerEnableSwiftStorage:
351 description: Whether to enable Swift Storage on the Controller
356 Additional configuration to inject into the cluster. The format required
357 may be implementation specific, e.g puppet hieradata. Any role specific
358 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
363 Pacemaker fencing configuration. The JSON should have
364 the following structure:
368 "agent": "AGENT_NAME",
369 "host_mac": "HOST_MAC_ADDRESS",
370 "params": {"PARAM_NAME": "PARAM_VALUE"}
378 "agent": "fence_xvm",
379 "host_mac": "52:54:00:aa:bb:cc",
381 "multicast_address": "225.0.0.12",
382 "port": "baremetal_0",
384 "manage_key_file": true,
385 "key_file": "/etc/fence_xvm.key",
386 "key_file_password": "abcdef"
393 description: The filepath of the file to use for logging messages from Glance.
396 GlanceNotifierStrategy:
397 description: Strategy to use for Glance notification queue
402 description: The password for the glance service account, used by the glance services.
407 description: The short name of the Glance backend to use. Should be one
408 of swift, rbd or file
411 - allowed_values: ['swift', 'file', 'rbd']
414 description: The password for the Heat service account, used by the Heat services.
417 HeatStackDomainAdminPassword:
418 description: Password for heat_domain_admin user.
422 KeystoneCACertificate:
424 description: Keystone self-signed certificate authority certificate.
426 KeystoneSigningCertificate:
428 description: Keystone certificate for verifying token validity.
432 description: Keystone key for signing tokens.
435 KeystoneSSLCertificate:
437 description: Keystone certificate for verifying token validity.
439 KeystoneSSLCertificateKey:
441 description: Keystone key for signing tokens.
444 KeystoneNotificationDriver:
445 description: Comma-separated list of Oslo notification drivers used by Keystone
446 default: ['messaging']
447 type: comma_delimited_list
448 KeystoneNotificationFormat:
449 description: The Keystone notification format
453 - allowed_values: [ 'basic', 'cadf' ]
454 MysqlInnodbBufferPoolSize:
456 Specifies the size of the buffer pool in megabytes. Setting to
457 zero should be interpreted as "no value" and will defer to the
462 description: Configures MySQL max_connections config setting
465 NeutronDnsmasqOptions:
466 default: 'dhcp-option-force=26,1400'
467 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
469 NeutronPublicInterfaceDefaultRoute:
471 description: A custom default route for the NeutronPublicInterface.
473 NeutronPublicInterfaceIP:
475 description: A custom IP address to put onto the NeutronPublicInterface.
477 NeutronPublicInterfaceRawDevice:
479 description: If set, the public interface is a vlan with this device as the raw device.
481 PublicVirtualInterface:
484 Specifies the interface where the public-facing virtual ip will be assigned.
485 This should be int_public when a VLAN is being used.
489 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
494 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
499 description: If set, the contents of an SSL certificate authority file.
503 description: A random string to be used as a salt when hashing to determine mappings in the ring.
508 description: The password for the swift service account, used by the swift proxy services.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaEnableRbdBackend:
570 description: Whether to enable or not the Rbd backend for Nova
574 default: overcloud-compute
576 - custom_constraint: glance.image
577 OvercloudComputeFlavor:
578 description: Use this flavor
581 - custom_constraint: nova.flavor
584 NeutronTenantNetwork: tenant
585 CeilometerApiNetwork: internal_api
586 MongoDbNetwork: internal_api
587 CinderApiNetwork: internal_api
588 CinderIscsiNetwork: storage
589 GlanceApiNetwork: storage
590 GlanceRegistryNetwork: internal_api
591 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
592 KeystonePublicApiNetwork: internal_api
593 NeutronApiNetwork: internal_api
594 HeatApiNetwork: internal_api
595 NovaApiNetwork: internal_api
596 NovaMetadataNetwork: internal_api
597 NovaVncProxyNetwork: internal_api
598 SwiftMgmtNetwork: storage_mgmt
599 SwiftProxyNetwork: storage
600 HorizonNetwork: internal_api
601 MemcachedNetwork: internal_api
602 RabbitMqNetwork: internal_api
603 RedisNetwork: internal_api
604 MysqlNetwork: internal_api
605 CephClusterNetwork: storage_mgmt
606 CephPublicNetwork: storage
607 ControllerHostnameResolveNetwork: internal_api
608 ComputeHostnameResolveNetwork: internal_api
609 BlockStorageHostnameResolveNetwork: internal_api
610 ObjectStorageHostnameResolveNetwork: internal_api
611 CephStorageHostnameResolveNetwork: storage
612 description: Mapping of service_name -> network name. Typically set
613 via parameter_defaults in the resource registry.
616 # Block storage specific parameters
621 default: overcloud-cinder-volume
623 OvercloudBlockStorageFlavor:
624 description: Flavor for block storage nodes to request when deploying.
627 - custom_constraint: nova.flavor
628 BlockStorageExtraConfig:
631 BlockStorage specific configuration to inject into the cluster. Same
632 structure as ExtraConfig.
635 # Object storage specific parameters
639 OvercloudSwiftStorageFlavor:
640 description: Flavor for Swift storage nodes to request when deploying.
643 - custom_constraint: nova.flavor
645 default: overcloud-swift-storage
647 ObjectStorageExtraConfig:
650 ObjectStorage specific configuration to inject into the cluster. Same
651 structure as ExtraConfig.
655 # Ceph storage specific parameters
660 default: overcloud-ceph-storage
662 OvercloudCephStorageFlavor:
664 description: Flavor for Ceph storage nodes to request when deploying.
667 - custom_constraint: nova.flavor
668 CephStorageExtraConfig:
671 CephStorage specific configuration to inject into the cluster. Same
672 structure as ExtraConfig.
675 # Hostname format for each role
676 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
677 # and %stackname% is replaced with OS::stack_name in the template below.
678 # If you want to use the heat generated names, pass '' (empty string).
679 ControllerHostnameFormat:
681 description: Format for Controller node hostnames
682 default: '%stackname%-controller-%index%'
683 ComputeHostnameFormat:
685 description: Format for Compute node hostnames
686 default: '%stackname%-novacompute-%index%'
687 BlockStorageHostnameFormat:
689 description: Format for BlockStorage node hostnames
690 default: '%stackname%-blockstorage-%index%'
691 ObjectStorageHostnameFormat:
693 description: Format for SwiftStorage node hostnames
694 default: '%stackname%-objectstorage-%index%'
695 CephStorageHostnameFormat:
697 description: Format for CephStorage node hostnames
698 default: '%stackname%-cephstorage-%index%'
700 # Identifiers to trigger tasks on nodes
705 Setting to a previously unused value during stack-update will trigger
706 package update on all nodes
708 # If you want to remove a specific node from a resource group, you can pass
709 # the node name or id as a <Group>RemovalPolicies parameter, for example:
710 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
711 ControllerRemovalPolicies:
715 List of resources to be removed from ControllerResourceGroup when
716 doing an update which requires removal of specific resources.
717 ComputeRemovalPolicies:
721 List of resources to be removed from ComputeResourceGroup when
722 doing an update which requires removal of specific resources.
723 BlockStorageRemovalPolicies:
727 List of resources to be removed from BlockStorageResourceGroup when
728 doing an update which requires removal of specific resources.
729 ObjectStorageRemovalPolicies:
733 List of resources to be removed from ObjectStorageResourceGroup when
734 doing an update which requires removal of specific resources.
735 CephStorageRemovalPolicies:
739 List of resources to be removed from CephStorageResourceGroup when
740 doing an update which requires removal of specific resources.
745 HeatAuthEncryptionKey:
746 type: OS::Heat::RandomString
749 type: OS::Heat::RandomString
754 type: OS::Heat::RandomString
759 type: OS::Heat::ResourceGroup
762 count: {get_param: ControllerCount}
763 removal_policies: {get_param: ControllerRemovalPolicies}
765 type: OS::TripleO::Controller
767 AdminPassword: {get_param: AdminPassword}
768 AdminToken: {get_param: AdminToken}
769 CeilometerBackend: {get_param: CeilometerBackend}
770 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
771 CeilometerPassword: {get_param: CeilometerPassword}
772 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
773 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
774 CinderNfsServers: {get_param: CinderNfsServers}
775 CinderPassword: {get_param: CinderPassword}
776 CinderISCSIHelper: {get_param: CinderISCSIHelper}
777 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
778 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
779 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
780 CloudName: {get_param: CloudName}
781 ControlVirtualInterface: {get_param: ControlVirtualInterface}
782 ControllerExtraConfig: {get_param: controllerExtraConfig}
783 Debug: {get_param: Debug}
784 EnableFencing: {get_param: EnableFencing}
785 EnableGalera: {get_param: EnableGalera}
786 EnableCephStorage: {get_param: ControllerEnableCephStorage}
787 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
788 ExtraConfig: {get_param: ExtraConfig}
789 FencingConfig: {get_param: FencingConfig}
790 Flavor: {get_param: OvercloudControlFlavor}
791 GlancePort: {get_param: GlancePort}
792 GlanceProtocol: {get_param: GlanceProtocol}
793 GlancePassword: {get_param: GlancePassword}
794 GlanceBackend: {get_param: GlanceBackend}
795 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
796 GlanceLogFile: {get_param: GlanceLogFile}
797 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
798 HeatPassword: {get_param: HeatPassword}
799 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
800 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
801 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
802 HorizonSecret: {get_resource: HorizonSecret}
803 Image: {get_param: controllerImage}
804 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
805 KeyName: {get_param: KeyName}
806 KeystoneCACertificate: {get_param: KeystoneCACertificate}
807 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
808 KeystoneSigningKey: {get_param: KeystoneSigningKey}
809 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
810 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
811 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
812 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
813 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
814 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
815 MysqlMaxConnections: {get_param: MysqlMaxConnections}
816 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
817 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
818 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
819 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
820 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
821 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
822 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
823 NeutronPublicInterface: {get_param: NeutronPublicInterface}
824 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
825 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
826 NeutronPassword: {get_param: NeutronPassword}
827 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
828 NeutronDVR: {get_param: NeutronDVR}
829 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
830 NeutronAgentMode: {get_param: NeutronAgentMode}
831 NeutronCorePlugin: {get_param: NeutronCorePlugin}
832 NeutronServicePlugins: {get_param: NeutronServicePlugins}
833 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
834 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
835 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
836 NeutronL3HA: {get_param: NeutronL3HA}
837 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
838 NeutronNetworkType: {get_param: NeutronNetworkType}
839 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
840 NovaPassword: {get_param: NovaPassword}
841 NtpServer: {get_param: NtpServer}
842 MongoDbNoJournal: {get_param: MongoDbNoJournal}
843 PcsdPassword: {get_resource: PcsdPassword}
844 PublicVirtualInterface: {get_param: PublicVirtualInterface}
845 RabbitPassword: {get_param: RabbitPassword}
846 RabbitUserName: {get_param: RabbitUserName}
847 RabbitCookie: {get_attr: [RabbitCookie, value]}
848 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
849 RabbitClientPort: {get_param: RabbitClientPort}
850 RabbitFDLimit: {get_param: RabbitFDLimit}
851 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
852 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
853 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
854 SSLCertificate: {get_param: SSLCertificate}
855 SSLKey: {get_param: SSLKey}
856 SSLCACertificate: {get_param: SSLCACertificate}
857 SwiftHashSuffix: {get_param: SwiftHashSuffix}
858 SwiftMountCheck: {get_param: SwiftMountCheck}
859 SwiftMinPartHours: {get_param: SwiftMinPartHours}
860 SwiftPartPower: {get_param: SwiftPartPower}
861 SwiftPassword: {get_param: SwiftPassword}
862 SwiftReplicas: { get_param: SwiftReplicas}
863 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
864 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
865 ServiceNetMap: {get_param: ServiceNetMap}
866 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
867 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
868 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
869 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
870 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
871 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
872 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
873 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
874 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
875 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
876 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
877 UpdateIdentifier: {get_param: UpdateIdentifier}
880 template: {get_param: ControllerHostnameFormat}
882 '%stackname%': {get_param: 'OS::stack_name'}
885 type: OS::Heat::ResourceGroup
888 count: {get_param: ComputeCount}
889 removal_policies: {get_param: ComputeRemovalPolicies}
891 type: OS::TripleO::Compute
893 AdminPassword: {get_param: AdminPassword}
894 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
895 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
896 CeilometerPassword: {get_param: CeilometerPassword}
897 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
898 Debug: {get_param: Debug}
899 ExtraConfig: {get_param: ExtraConfig}
900 Flavor: {get_param: OvercloudComputeFlavor}
901 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
902 GlancePort: {get_param: GlancePort}
903 GlanceProtocol: {get_param: GlanceProtocol}
904 Image: {get_param: NovaImage}
905 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
906 KeyName: {get_param: KeyName}
907 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
908 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
909 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
910 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
911 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
912 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
913 NeutronNetworkType: {get_param: NeutronNetworkType}
914 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
915 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
916 NeutronPassword: {get_param: NeutronPassword}
917 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
918 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
919 NeutronDVR: {get_param: NeutronDVR}
920 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
921 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
922 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
923 NeutronCorePlugin: {get_param: NeutronCorePlugin}
924 NeutronServicePlugins: {get_param: NeutronServicePlugins}
925 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
926 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
927 # L3 HA and Failover is not relevant for Computes, should be removed
928 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
929 NeutronL3HA: {get_param: NeutronL3HA}
930 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
931 NovaComputeDriver: {get_param: NovaComputeDriver}
932 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
933 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
934 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
935 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
936 NovaPassword: {get_param: NovaPassword}
937 NtpServer: {get_param: NtpServer}
938 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
939 RabbitPassword: {get_param: RabbitPassword}
940 RabbitUserName: {get_param: RabbitUserName}
941 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
942 RabbitClientPort: {get_param: RabbitClientPort}
943 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
944 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
945 ServiceNetMap: {get_param: ServiceNetMap}
946 UpdateIdentifier: {get_param: UpdateIdentifier}
949 template: {get_param: ComputeHostnameFormat}
951 '%stackname%': {get_param: 'OS::stack_name'}
954 type: OS::Heat::ResourceGroup
957 count: {get_param: BlockStorageCount}
958 removal_policies: {get_param: BlockStorageRemovalPolicies}
960 type: OS::TripleO::BlockStorage
962 Debug: {get_param: Debug}
963 Image: {get_param: BlockStorageImage}
964 CinderISCSIHelper: {get_param: CinderISCSIHelper}
965 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
966 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
967 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
968 CinderPassword: {get_param: CinderPassword}
969 KeyName: {get_param: KeyName}
970 Flavor: {get_param: OvercloudBlockStorageFlavor}
971 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
972 GlancePort: {get_param: GlancePort}
973 GlanceProtocol: {get_param: GlanceProtocol}
974 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
975 RabbitPassword: {get_param: RabbitPassword}
976 RabbitUserName: {get_param: RabbitUserName}
977 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
978 RabbitClientPort: {get_param: RabbitClientPort}
979 NtpServer: {get_param: NtpServer}
980 UpdateIdentifier: {get_param: UpdateIdentifier}
983 template: {get_param: BlockStorageHostnameFormat}
985 '%stackname%': {get_param: 'OS::stack_name'}
986 ServiceNetMap: {get_param: ServiceNetMap}
987 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
988 ExtraConfig: {get_param: ExtraConfig}
989 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
992 type: OS::Heat::ResourceGroup
995 count: {get_param: ObjectStorageCount}
996 removal_policies: {get_param: ObjectStorageRemovalPolicies}
998 type: OS::TripleO::ObjectStorage
1000 KeyName: {get_param: KeyName}
1001 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1002 HashSuffix: {get_param: SwiftHashSuffix}
1003 MountCheck: {get_param: SwiftMountCheck}
1004 MinPartHours: {get_param: SwiftMinPartHours}
1005 PartPower: {get_param: SwiftPartPower}
1006 Image: {get_param: SwiftStorageImage}
1007 Replicas: { get_param: SwiftReplicas}
1008 NtpServer: {get_param: NtpServer}
1009 UpdateIdentifier: {get_param: UpdateIdentifier}
1010 ServiceNetMap: {get_param: ServiceNetMap}
1013 template: {get_param: ObjectStorageHostnameFormat}
1015 '%stackname%': {get_param: 'OS::stack_name'}
1016 ExtraConfig: {get_param: ExtraConfig}
1017 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1020 type: OS::Heat::ResourceGroup
1021 depends_on: Networks
1023 count: {get_param: CephStorageCount}
1024 removal_policies: {get_param: CephStorageRemovalPolicies}
1026 type: OS::TripleO::CephStorage
1028 Image: {get_param: CephStorageImage}
1029 KeyName: {get_param: KeyName}
1030 Flavor: {get_param: OvercloudCephStorageFlavor}
1031 NtpServer: {get_param: NtpServer}
1032 ServiceNetMap: {get_param: ServiceNetMap}
1033 UpdateIdentifier: {get_param: UpdateIdentifier}
1036 template: {get_param: CephStorageHostnameFormat}
1038 '%stackname%': {get_param: 'OS::stack_name'}
1039 ExtraConfig: {get_param: ExtraConfig}
1040 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1042 ControllerIpListMap:
1043 type: OS::TripleO::Network::Ports::NetIpListMap
1045 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1046 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1047 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1048 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1049 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1050 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1053 type: OS::TripleO::AllNodes::SoftwareConfig
1055 compute_hosts: {get_attr: [Compute, hosts_entry]}
1056 controller_hosts: {get_attr: [Controller, hosts_entry]}
1057 controller_ips: {get_attr: [Controller, ip_address]}
1058 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1059 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1060 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1061 controller_names: {get_attr: [Controller, hostname]}
1062 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1063 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1064 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1065 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1066 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1067 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1068 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1069 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1070 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1071 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1072 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1073 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1074 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1075 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1076 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1077 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1078 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1081 type: OS::Heat::RandomString
1085 MysqlClusterUniquePart:
1086 type: OS::Heat::RandomString
1091 type: OS::Heat::RandomString
1094 salt: {get_param: RabbitCookieSalt}
1096 # creates the network architecture
1098 type: OS::TripleO::Network
1101 type: OS::Neutron::Port
1102 depends_on: Networks
1104 name: control_virtual_ip
1105 network_id: {get_param: NeutronControlPlaneID}
1106 fixed_ips: {get_param: ControlFixedIPs}
1107 replacement_policy: AUTO
1110 depends_on: Networks
1111 type: OS::TripleO::Controller::Ports::RedisVipPort
1113 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1114 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1115 PortName: redis_virtual_ip
1116 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1118 # The public VIP is on the External net, falls back to ctlplane
1120 depends_on: Networks
1121 type: OS::TripleO::Controller::Ports::ExternalPort
1123 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1124 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1125 PortName: public_virtual_ip
1126 FixedIPs: {get_param: PublicVirtualFixedIPs}
1128 InternalApiVirtualIP:
1129 depends_on: Networks
1130 type: OS::TripleO::Controller::Ports::InternalApiPort
1132 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1133 PortName: internal_api_virtual_ip
1136 depends_on: Networks
1137 type: OS::TripleO::Controller::Ports::StoragePort
1139 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1140 PortName: storage_virtual_ip
1142 StorageMgmtVirtualIP:
1143 depends_on: Networks
1144 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1146 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1147 PortName: storage_management_virtual_ip
1150 type: OS::TripleO::Network::Ports::NetIpMap
1152 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1153 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1154 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1155 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1156 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1157 # No tenant VIP required
1160 type: OS::TripleO::VipConfig
1163 type: OS::Heat::StructuredDeployments
1165 config: {get_resource: VipConfig}
1166 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1168 # service VIP mappings
1169 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1170 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1171 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1172 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1173 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1174 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1175 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1176 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1177 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1178 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1179 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1180 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1181 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1182 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1183 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1184 # direct configuration of Virtual IPs for each network
1185 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1186 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1187 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1188 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1189 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1191 ControllerBootstrapNodeConfig:
1192 type: OS::TripleO::BootstrapNode::SoftwareConfig
1194 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1195 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1197 ControllerBootstrapNodeDeployment:
1198 type: OS::Heat::StructuredDeployments
1200 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1201 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1203 ControllerSwiftDeployment:
1204 type: OS::Heat::StructuredDeployments
1206 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1207 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1209 ObjectStorageSwiftDeployment:
1210 type: OS::Heat::StructuredDeployments
1212 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1213 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1215 SwiftDevicesAndProxyConfig:
1216 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1218 controller_swift_devices: {get_attr: [Controller, swift_device]}
1219 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1220 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1222 ComputeCephDeployment:
1223 type: OS::Heat::StructuredDeployments
1225 config: {get_attr: [CephClusterConfig, config_id]}
1226 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1228 ControllerCephDeployment:
1229 type: OS::Heat::StructuredDeployments
1231 config: {get_attr: [CephClusterConfig, config_id]}
1232 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1234 CephStorageCephDeployment:
1235 type: OS::Heat::StructuredDeployments
1237 config: {get_attr: [CephClusterConfig, config_id]}
1238 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1241 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1243 ceph_storage_count: {get_param: CephStorageCount}
1244 ceph_fsid: {get_param: CephClusterFSID}
1245 ceph_mon_key: {get_param: CephMonKey}
1246 ceph_admin_key: {get_param: CephAdminKey}
1247 ceph_client_key: {get_param: CephClientKey}
1248 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1249 ceph_mon_names: {get_attr: [Controller, hostname]}
1250 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1252 ControllerClusterConfig:
1253 type: OS::Heat::StructuredConfig
1255 group: os-apply-config
1258 nodes: {get_attr: [Controller, corosync_node]}
1262 nodes: {get_attr: [Controller, hostname]}
1264 nodes: {get_attr: [Controller, corosync_node]}
1266 nodes: {get_attr: [Controller, corosync_node]}
1268 ControllerClusterDeployment:
1269 type: OS::Heat::StructuredDeployments
1271 config: {get_resource: ControllerClusterConfig}
1272 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1274 ControllerAllNodesDeployment:
1275 type: OS::Heat::StructuredDeployments
1277 config: {get_attr: [allNodesConfig, config_id]}
1278 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1280 ComputeAllNodesDeployment:
1281 type: OS::Heat::StructuredDeployments
1283 config: {get_attr: [allNodesConfig, config_id]}
1284 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1286 BlockStorageAllNodesDeployment:
1287 type: OS::Heat::StructuredDeployments
1289 config: {get_attr: [allNodesConfig, config_id]}
1290 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1292 ObjectStorageAllNodesDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 config: {get_attr: [allNodesConfig, config_id]}
1296 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1298 CephStorageAllNodesDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 config: {get_attr: [allNodesConfig, config_id]}
1302 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1304 # All Nodes Validations
1305 AllNodesValidationConfig:
1306 type: OS::TripleO::AllNodes::Validation
1311 - - {get_attr: [Controller, resource.0.external_ip_address]}
1312 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1313 - {get_attr: [Controller, resource.0.storage_ip_address]}
1314 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1315 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1317 ControllerAllNodesValidationDeployment:
1318 type: OS::Heat::StructuredDeployments
1319 depends_on: ControllerAllNodesDeployment
1321 config: {get_resource: AllNodesValidationConfig}
1322 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1324 ComputeAllNodesValidationDeployment:
1325 type: OS::Heat::StructuredDeployments
1326 depends_on: ComputeAllNodesDeployment
1328 config: {get_resource: AllNodesValidationConfig}
1329 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1331 BlockStorageAllNodesValidationDeployment:
1332 type: OS::Heat::StructuredDeployments
1333 depends_on: BlockStorageAllNodesDeployment
1335 config: {get_resource: AllNodesValidationConfig}
1336 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1338 ObjectStorageAllNodesValidationDeployment:
1339 type: OS::Heat::StructuredDeployments
1340 depends_on: ObjectStorageAllNodesDeployment
1342 config: {get_resource: AllNodesValidationConfig}
1343 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1345 CephStorageAllNodesValidationDeployment:
1346 type: OS::Heat::StructuredDeployments
1347 depends_on: CephStorageAllNodesDeployment
1349 config: {get_resource: AllNodesValidationConfig}
1350 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1352 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1353 # the nested template may configure each role differently (or not at all)
1354 AllNodesExtraConfig:
1355 type: OS::TripleO::AllNodesExtraConfig
1357 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1359 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1360 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1361 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1363 # Nested stack deployment runs after all other controller deployments
1364 ControllerNodesPostDeployment:
1365 type: OS::TripleO::ControllerPostDeployment
1366 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1368 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1369 NodeConfigIdentifiers:
1370 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1371 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1373 ComputeNodesPostDeployment:
1374 type: OS::TripleO::ComputePostDeployment
1375 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1377 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1378 NodeConfigIdentifiers:
1379 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1380 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1382 ObjectStorageNodesPostDeployment:
1383 type: OS::TripleO::ObjectStoragePostDeployment
1384 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1386 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1387 NodeConfigIdentifiers:
1388 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1389 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1391 BlockStorageNodesPostDeployment:
1392 type: OS::TripleO::BlockStoragePostDeployment
1393 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1395 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1396 NodeConfigIdentifiers:
1397 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1398 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1400 CephStorageNodesPostDeployment:
1401 type: OS::TripleO::CephStoragePostDeployment
1402 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1404 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1405 NodeConfigIdentifiers:
1406 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1407 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1411 description: URL for the Overcloud Keystone service
1416 - {get_attr: [PublicVirtualIP, ip_address]}
1419 description: Keystone Admin VIP endpoint
1420 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1422 description: Controller VIP for public API endpoints
1423 value: {get_attr: [PublicVirtualIP, ip_address]}
1424 CeilometerInternalVip:
1425 description: VIP for Ceilometer API internal endpoint
1426 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1428 description: VIP for Cinder API internal endpoint
1429 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1431 description: VIP for Glance API internal endpoint
1432 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1434 description: VIP for Heat API internal endpoint
1435 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1436 KeystoneInternalVip:
1437 description: VIP for Keystone API internal endpoint
1438 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1440 description: VIP for Neutron API internal endpoint
1441 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1443 description: VIP for Nova API internal endpoint
1444 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1446 description: VIP for Swift Proxy internal endpoint
1447 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}