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
64 CinderEnableRbdBackend:
66 description: Whether to enable or not the Rbd backend for Cinder
70 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
74 description: Should be used for arbitrary ips.
78 description: Set to True to enable debugging on all services.
82 description: Glance port.
86 description: Protocol to use when connecting to glance, set to https for SSL.
90 description: Syslog address where HAproxy will send its log
94 description: A list of IP/Hostname allowed to connect to horizon
95 type: comma_delimited_list
97 default: 'REBUILD_PRESERVE_EPHEMERAL'
98 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
102 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
105 - custom_constraint: nova.keypair
106 NeutronExternalNetworkBridge:
107 description: Name of bridge used for external network traffic.
110 NeutronBridgeMappings:
112 The OVS logical->physical bridge mappings to use. See the Neutron
113 documentation for details. Defaults to mapping br-ex - the external
114 bridge on hosts - to a physical name 'datacentre' which can be used
115 to create provider networks (and we use this for the default floating
116 network) - if changing this either use different post-install network
117 scripts or be sure to keep 'datacentre' as a mapping network name.
119 default: "datacentre:br-ex"
120 NeutronControlPlaneID:
123 description: Neutron ID for ctlplane network.
124 NeutronEnableTunnelling:
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron, either gre or vxlan.
139 description: The password for the neutron service account, used by neutron agents.
142 NeutronPublicInterface:
144 description: What interface to bridge onto br-ex for network nodes.
146 NeutronPublicInterfaceTag:
149 VLAN tag for creating a public VLAN. The tag will be used to
150 create an access port on the exterior bridge for each control plane node,
151 and that port will be given the IP address returned by neutron from the
152 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
153 overcloud.yaml to include the deployment of VLAN ports to the control
156 NeutronComputeAgentMode:
158 description: Agent mode for the neutron-l3-agent on the compute hosts
162 description: Agent mode for the neutron-l3-agent on the controller hosts
166 description: Whether to configure Neutron Distributed Virtual Routers
168 NeutronMetadataProxySharedSecret:
170 description: Shared secret to prevent spoofing
176 The tunnel types for the Neutron tenant network. To specify multiple
177 values, use a comma separated string, like so: 'gre,vxlan'
179 NeutronTunnelIdRanges:
181 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
182 of GRE tunnel IDs that are available for tenant network allocation
183 default: ["1:1000", ]
184 type: comma_delimited_list
187 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
188 of VXLAN VNI IDs that are available for tenant network allocation
189 default: ["1:1000", ]
190 type: comma_delimited_list
194 The core plugin for Neutron. The value should be the entrypoint to be loaded
195 from neutron.core_plugins namespace.
197 NeutronServicePlugins:
200 Comma-separated list of service plugin entrypoints to be loaded from the
201 neutron.service_plugins namespace.
202 type: comma_delimited_list
204 default: "vxlan,vlan,flat,gre"
206 Comma-separated list of network type driver entrypoints to be loaded.
207 type: comma_delimited_list
208 NeutronMechanismDrivers:
209 default: 'openvswitch'
211 The mechanism drivers for the Neutron tenant network. To specify multiple
212 values, use a comma separated string, like so: 'openvswitch,l2_population'
214 NeutronAllowL3AgentFailover:
216 description: Allow automatic l3-agent failover
220 description: Whether to enable l3-agent HA
222 NeutronDhcpAgentsPerNetwork:
225 description: The number of neutron dhcp agents to schedule per network
228 description: The password for the nova service account, used by nova-api.
236 description: Should MongoDb journaling be disabled
238 PublicVirtualFixedIPs:
241 Control the IP allocation for the PublicVirtualInterface port. E.g.
242 [{'ip_address':'1.2.3.4'}]
247 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
248 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
251 description: The username for RabbitMQ
255 description: The password for RabbitMQ
261 Rabbit client subscriber parameter to specify
262 an SSL connection to the RabbitMQ host.
266 description: Set rabbit subscriber port, change this if using SSL
268 # We need to set this as string because 'unlimited' is a valid setting
271 description: Configures RabbitMQ FD limit
273 SnmpdReadonlyUserName:
274 default: ro_snmp_user
275 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
277 SnmpdReadonlyUserPassword:
279 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
283 # Controller-specific params
286 description: The keystone auth secret.
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 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
899 Debug: {get_param: Debug}
900 ExtraConfig: {get_param: ExtraConfig}
901 Flavor: {get_param: OvercloudComputeFlavor}
902 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
903 GlancePort: {get_param: GlancePort}
904 GlanceProtocol: {get_param: GlanceProtocol}
905 Image: {get_param: NovaImage}
906 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
907 KeyName: {get_param: KeyName}
908 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
909 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
910 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
911 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
912 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
913 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
914 NeutronNetworkType: {get_param: NeutronNetworkType}
915 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
916 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
917 NeutronPassword: {get_param: NeutronPassword}
918 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
919 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
920 NeutronDVR: {get_param: NeutronDVR}
921 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
922 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
923 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
924 NeutronCorePlugin: {get_param: NeutronCorePlugin}
925 NeutronServicePlugins: {get_param: NeutronServicePlugins}
926 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
927 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
928 # L3 HA and Failover is not relevant for Computes, should be removed
929 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
930 NeutronL3HA: {get_param: NeutronL3HA}
931 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
932 NovaComputeDriver: {get_param: NovaComputeDriver}
933 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
934 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
935 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
936 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
937 NovaPassword: {get_param: NovaPassword}
938 NtpServer: {get_param: NtpServer}
939 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
940 RabbitPassword: {get_param: RabbitPassword}
941 RabbitUserName: {get_param: RabbitUserName}
942 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
943 RabbitClientPort: {get_param: RabbitClientPort}
944 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
945 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
946 ServiceNetMap: {get_param: ServiceNetMap}
947 UpdateIdentifier: {get_param: UpdateIdentifier}
950 template: {get_param: ComputeHostnameFormat}
952 '%stackname%': {get_param: 'OS::stack_name'}
955 type: OS::Heat::ResourceGroup
958 count: {get_param: BlockStorageCount}
959 removal_policies: {get_param: BlockStorageRemovalPolicies}
961 type: OS::TripleO::BlockStorage
963 Debug: {get_param: Debug}
964 Image: {get_param: BlockStorageImage}
965 CinderISCSIHelper: {get_param: CinderISCSIHelper}
966 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
967 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
968 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
969 CinderPassword: {get_param: CinderPassword}
970 KeyName: {get_param: KeyName}
971 Flavor: {get_param: OvercloudBlockStorageFlavor}
972 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
973 GlancePort: {get_param: GlancePort}
974 GlanceProtocol: {get_param: GlanceProtocol}
975 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
976 RabbitPassword: {get_param: RabbitPassword}
977 RabbitUserName: {get_param: RabbitUserName}
978 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
979 RabbitClientPort: {get_param: RabbitClientPort}
980 NtpServer: {get_param: NtpServer}
981 UpdateIdentifier: {get_param: UpdateIdentifier}
984 template: {get_param: BlockStorageHostnameFormat}
986 '%stackname%': {get_param: 'OS::stack_name'}
987 ServiceNetMap: {get_param: ServiceNetMap}
988 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
989 ExtraConfig: {get_param: ExtraConfig}
990 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
993 type: OS::Heat::ResourceGroup
996 count: {get_param: ObjectStorageCount}
997 removal_policies: {get_param: ObjectStorageRemovalPolicies}
999 type: OS::TripleO::ObjectStorage
1001 KeyName: {get_param: KeyName}
1002 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1003 HashSuffix: {get_param: SwiftHashSuffix}
1004 MountCheck: {get_param: SwiftMountCheck}
1005 MinPartHours: {get_param: SwiftMinPartHours}
1006 PartPower: {get_param: SwiftPartPower}
1007 Image: {get_param: SwiftStorageImage}
1008 Replicas: { get_param: SwiftReplicas}
1009 NtpServer: {get_param: NtpServer}
1010 UpdateIdentifier: {get_param: UpdateIdentifier}
1011 ServiceNetMap: {get_param: ServiceNetMap}
1014 template: {get_param: ObjectStorageHostnameFormat}
1016 '%stackname%': {get_param: 'OS::stack_name'}
1017 ExtraConfig: {get_param: ExtraConfig}
1018 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1021 type: OS::Heat::ResourceGroup
1022 depends_on: Networks
1024 count: {get_param: CephStorageCount}
1025 removal_policies: {get_param: CephStorageRemovalPolicies}
1027 type: OS::TripleO::CephStorage
1029 Image: {get_param: CephStorageImage}
1030 KeyName: {get_param: KeyName}
1031 Flavor: {get_param: OvercloudCephStorageFlavor}
1032 NtpServer: {get_param: NtpServer}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 UpdateIdentifier: {get_param: UpdateIdentifier}
1037 template: {get_param: CephStorageHostnameFormat}
1039 '%stackname%': {get_param: 'OS::stack_name'}
1040 ExtraConfig: {get_param: ExtraConfig}
1041 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1043 ControllerIpListMap:
1044 type: OS::TripleO::Network::Ports::NetIpListMap
1046 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1047 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1048 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1049 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1050 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1051 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1054 type: OS::TripleO::AllNodes::SoftwareConfig
1056 compute_hosts: {get_attr: [Compute, hosts_entry]}
1057 controller_hosts: {get_attr: [Controller, hosts_entry]}
1058 controller_ips: {get_attr: [Controller, ip_address]}
1059 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1060 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1061 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1062 controller_names: {get_attr: [Controller, hostname]}
1063 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1064 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1065 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1066 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1067 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1068 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1069 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1070 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1071 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1072 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1073 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1074 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1075 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1076 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1077 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1078 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1079 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1082 type: OS::Heat::RandomString
1086 MysqlClusterUniquePart:
1087 type: OS::Heat::RandomString
1092 type: OS::Heat::RandomString
1095 salt: {get_param: RabbitCookieSalt}
1097 # creates the network architecture
1099 type: OS::TripleO::Network
1102 type: OS::Neutron::Port
1103 depends_on: Networks
1105 name: control_virtual_ip
1106 network_id: {get_param: NeutronControlPlaneID}
1107 fixed_ips: {get_param: ControlFixedIPs}
1108 replacement_policy: AUTO
1111 depends_on: Networks
1112 type: OS::TripleO::Controller::Ports::RedisVipPort
1114 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1115 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1116 PortName: redis_virtual_ip
1117 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1119 # The public VIP is on the External net, falls back to ctlplane
1121 depends_on: Networks
1122 type: OS::TripleO::Controller::Ports::ExternalPort
1124 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1125 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1126 PortName: public_virtual_ip
1127 FixedIPs: {get_param: PublicVirtualFixedIPs}
1129 InternalApiVirtualIP:
1130 depends_on: Networks
1131 type: OS::TripleO::Controller::Ports::InternalApiPort
1133 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1134 PortName: internal_api_virtual_ip
1137 depends_on: Networks
1138 type: OS::TripleO::Controller::Ports::StoragePort
1140 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1141 PortName: storage_virtual_ip
1143 StorageMgmtVirtualIP:
1144 depends_on: Networks
1145 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1147 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1148 PortName: storage_management_virtual_ip
1151 type: OS::TripleO::Network::Ports::NetIpMap
1153 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1154 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1155 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1156 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1157 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1158 # No tenant VIP required
1161 type: OS::TripleO::VipConfig
1164 type: OS::Heat::StructuredDeployments
1166 config: {get_resource: VipConfig}
1167 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1169 # service VIP mappings
1170 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1171 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1172 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1173 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1174 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1175 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1176 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1177 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1178 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1179 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1180 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1181 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1182 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1183 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1184 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1185 # direct configuration of Virtual IPs for each network
1186 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1187 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1188 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1189 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1190 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1192 ControllerBootstrapNodeConfig:
1193 type: OS::TripleO::BootstrapNode::SoftwareConfig
1195 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1196 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1198 ControllerBootstrapNodeDeployment:
1199 type: OS::Heat::StructuredDeployments
1201 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1202 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1204 ControllerSwiftDeployment:
1205 type: OS::Heat::StructuredDeployments
1207 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1208 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1210 ObjectStorageSwiftDeployment:
1211 type: OS::Heat::StructuredDeployments
1213 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1214 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1216 SwiftDevicesAndProxyConfig:
1217 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1219 controller_swift_devices: {get_attr: [Controller, swift_device]}
1220 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1221 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1223 ComputeCephDeployment:
1224 type: OS::Heat::StructuredDeployments
1226 config: {get_attr: [CephClusterConfig, config_id]}
1227 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1229 ControllerCephDeployment:
1230 type: OS::Heat::StructuredDeployments
1232 config: {get_attr: [CephClusterConfig, config_id]}
1233 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1235 CephStorageCephDeployment:
1236 type: OS::Heat::StructuredDeployments
1238 config: {get_attr: [CephClusterConfig, config_id]}
1239 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1242 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1244 ceph_storage_count: {get_param: CephStorageCount}
1245 ceph_fsid: {get_param: CephClusterFSID}
1246 ceph_mon_key: {get_param: CephMonKey}
1247 ceph_admin_key: {get_param: CephAdminKey}
1248 ceph_client_key: {get_param: CephClientKey}
1249 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1250 ceph_mon_names: {get_attr: [Controller, hostname]}
1251 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1253 ControllerClusterConfig:
1254 type: OS::Heat::StructuredConfig
1256 group: os-apply-config
1259 nodes: {get_attr: [Controller, corosync_node]}
1263 nodes: {get_attr: [Controller, hostname]}
1265 nodes: {get_attr: [Controller, corosync_node]}
1267 nodes: {get_attr: [Controller, corosync_node]}
1269 ControllerClusterDeployment:
1270 type: OS::Heat::StructuredDeployments
1272 config: {get_resource: ControllerClusterConfig}
1273 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1275 ControllerAllNodesDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 config: {get_attr: [allNodesConfig, config_id]}
1279 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1281 ComputeAllNodesDeployment:
1282 type: OS::Heat::StructuredDeployments
1284 config: {get_attr: [allNodesConfig, config_id]}
1285 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1287 BlockStorageAllNodesDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 config: {get_attr: [allNodesConfig, config_id]}
1291 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1293 ObjectStorageAllNodesDeployment:
1294 type: OS::Heat::StructuredDeployments
1296 config: {get_attr: [allNodesConfig, config_id]}
1297 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1299 CephStorageAllNodesDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 config: {get_attr: [allNodesConfig, config_id]}
1303 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1305 # All Nodes Validations
1306 AllNodesValidationConfig:
1307 type: OS::TripleO::AllNodes::Validation
1312 - - {get_attr: [Controller, resource.0.external_ip_address]}
1313 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1314 - {get_attr: [Controller, resource.0.storage_ip_address]}
1315 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1316 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1318 ControllerAllNodesValidationDeployment:
1319 type: OS::Heat::StructuredDeployments
1320 depends_on: ControllerAllNodesDeployment
1322 config: {get_resource: AllNodesValidationConfig}
1323 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1325 ComputeAllNodesValidationDeployment:
1326 type: OS::Heat::StructuredDeployments
1327 depends_on: ComputeAllNodesDeployment
1329 config: {get_resource: AllNodesValidationConfig}
1330 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1332 BlockStorageAllNodesValidationDeployment:
1333 type: OS::Heat::StructuredDeployments
1334 depends_on: BlockStorageAllNodesDeployment
1336 config: {get_resource: AllNodesValidationConfig}
1337 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1339 ObjectStorageAllNodesValidationDeployment:
1340 type: OS::Heat::StructuredDeployments
1341 depends_on: ObjectStorageAllNodesDeployment
1343 config: {get_resource: AllNodesValidationConfig}
1344 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1346 CephStorageAllNodesValidationDeployment:
1347 type: OS::Heat::StructuredDeployments
1348 depends_on: CephStorageAllNodesDeployment
1350 config: {get_resource: AllNodesValidationConfig}
1351 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1353 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1354 # the nested template may configure each role differently (or not at all)
1355 AllNodesExtraConfig:
1356 type: OS::TripleO::AllNodesExtraConfig
1358 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1359 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1360 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1361 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1362 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1364 # Nested stack deployment runs after all other controller deployments
1365 ControllerNodesPostDeployment:
1366 type: OS::TripleO::ControllerPostDeployment
1367 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 NodeConfigIdentifiers:
1371 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1372 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1374 ComputeNodesPostDeployment:
1375 type: OS::TripleO::ComputePostDeployment
1376 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1378 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1379 NodeConfigIdentifiers:
1380 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1381 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1383 ObjectStorageNodesPostDeployment:
1384 type: OS::TripleO::ObjectStoragePostDeployment
1385 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1387 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1388 NodeConfigIdentifiers:
1389 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1390 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1392 BlockStorageNodesPostDeployment:
1393 type: OS::TripleO::BlockStoragePostDeployment
1394 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1396 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1397 NodeConfigIdentifiers:
1398 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1399 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1401 CephStorageNodesPostDeployment:
1402 type: OS::TripleO::CephStoragePostDeployment
1403 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1405 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1406 NodeConfigIdentifiers:
1407 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1408 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1412 description: URL for the Overcloud Keystone service
1417 - {get_attr: [PublicVirtualIP, ip_address]}
1420 description: Keystone Admin VIP endpoint
1421 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1423 description: Controller VIP for public API endpoints
1424 value: {get_attr: [PublicVirtualIP, ip_address]}
1425 CeilometerInternalVip:
1426 description: VIP for Ceilometer API internal endpoint
1427 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1429 description: VIP for Cinder API internal endpoint
1430 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1432 description: VIP for Glance API internal endpoint
1433 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1435 description: VIP for Heat API internal endpoint
1436 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1437 KeystoneInternalVip:
1438 description: VIP for Keystone API internal endpoint
1439 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1441 description: VIP for Neutron API internal endpoint
1442 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1444 description: VIP for Nova API internal endpoint
1445 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1447 description: VIP for Swift Proxy internal endpoint
1448 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}