1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
17 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service account.
34 # This has to be an UUID so for now we generate it outside the template
38 description: The Ceph cluster FSID. Must be a UUID.
41 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
46 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
49 CinderEnableNfsBackend:
51 description: Whether to enable or not the NFS backend for Cinder
55 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.
61 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
62 CinderEnableIscsiBackend:
64 description: Whether to enable or not the Iscsi backend for Cinder
66 CinderEnableRbdBackend:
68 description: Whether to enable or not the Rbd backend for Cinder
72 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
76 description: Should be used for arbitrary ips.
80 description: Set to True to enable debugging on all services.
84 description: Glance port.
88 description: Protocol to use when connecting to glance, set to https for SSL.
92 description: Syslog address where HAproxy will send its log
96 description: A list of IP/Hostname allowed to connect to horizon
97 type: comma_delimited_list
99 default: 'REBUILD_PRESERVE_EPHEMERAL'
100 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
104 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
107 - custom_constraint: nova.keypair
108 NeutronExternalNetworkBridge:
109 description: Name of bridge used for external network traffic.
112 NeutronBridgeMappings:
114 The OVS logical->physical bridge mappings to use. See the Neutron
115 documentation for details. Defaults to mapping br-ex - the external
116 bridge on hosts - to a physical name 'datacentre' which can be used
117 to create provider networks (and we use this for the default floating
118 network) - if changing this either use different post-install network
119 scripts or be sure to keep 'datacentre' as a mapping network name.
121 default: "datacentre:br-ex"
122 NeutronControlPlaneID:
125 description: Neutron ID or name for ctlplane network.
126 NeutronEnableTunnelling:
131 default: 'datacentre'
133 If set, flat networks to configure in neutron plugins. Defaults to
134 'datacentre' to permit external network creation.
137 description: The tenant network type for Neutron, either gre or vxlan.
141 description: The password for the neutron service account, used by neutron agents.
144 NeutronPublicInterface:
146 description: What interface to bridge onto br-ex for network nodes.
148 NeutronPublicInterfaceTag:
151 VLAN tag for creating a public VLAN. The tag will be used to
152 create an access port on the exterior bridge for each control plane node,
153 and that port will be given the IP address returned by neutron from the
154 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
155 overcloud.yaml to include the deployment of VLAN ports to the control
158 NeutronComputeAgentMode:
160 description: Agent mode for the neutron-l3-agent on the compute hosts
164 description: Agent mode for the neutron-l3-agent on the controller hosts
168 description: Whether to configure Neutron Distributed Virtual Routers
170 NeutronMetadataProxySharedSecret:
172 description: Shared secret to prevent spoofing
178 The tunnel types for the Neutron tenant network. To specify multiple
179 values, use a comma separated string, like so: 'gre,vxlan'
181 NeutronTunnelIdRanges:
183 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
184 of GRE tunnel IDs that are available for tenant network allocation
185 default: ["1:1000", ]
186 type: comma_delimited_list
189 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
190 of VXLAN VNI IDs that are available for tenant network allocation
191 default: ["1:1000", ]
192 type: comma_delimited_list
196 The core plugin for Neutron. The value should be the entrypoint to be loaded
197 from neutron.core_plugins namespace.
199 NeutronServicePlugins:
202 Comma-separated list of service plugin entrypoints to be loaded from the
203 neutron.service_plugins namespace.
204 type: comma_delimited_list
206 default: "vxlan,vlan,flat,gre"
208 Comma-separated list of network type driver entrypoints to be loaded.
209 type: comma_delimited_list
210 NeutronMechanismDrivers:
211 default: 'openvswitch'
213 The mechanism drivers for the Neutron tenant network. To specify multiple
214 values, use a comma separated string, like so: 'openvswitch,l2_population'
216 NeutronAllowL3AgentFailover:
218 description: Allow automatic l3-agent failover
222 description: Whether to enable l3-agent HA
224 NeutronDhcpAgentsPerNetwork:
227 description: The number of neutron dhcp agents to schedule per network
230 description: The password for the nova service account, used by nova-api.
238 description: Should MongoDb journaling be disabled
240 PublicVirtualFixedIPs:
243 Control the IP allocation for the PublicVirtualInterface port. E.g.
244 [{'ip_address':'1.2.3.4'}]
249 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
250 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
253 description: The username for RabbitMQ
257 description: The password for RabbitMQ
263 Rabbit client subscriber parameter to specify
264 an SSL connection to the RabbitMQ host.
268 description: Set rabbit subscriber port, change this if using SSL
270 # We need to set this as string because 'unlimited' is a valid setting
273 description: Configures RabbitMQ FD limit
275 SnmpdReadonlyUserName:
276 default: ro_snmp_user
277 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
279 SnmpdReadonlyUserPassword:
281 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
285 # Controller-specific params
288 description: The keystone auth secret.
291 CinderLVMLoopDeviceSize:
293 description: The size of the loopback file used by the cinder LVM driver.
295 CinderNfsMountOptions:
298 Mount options for NFS mounts used by Cinder NFS backend. Effective
299 when CinderEnableNfsBackend is true.
304 NFS servers used by Cinder NFS backend. Effective when
305 CinderEnableNfsBackend is true.
306 type: comma_delimited_list
309 description: The password for the cinder service account, used by cinder-api.
314 description: The iSCSI helper to use with cinder.
321 controllerExtraConfig:
324 Controller specific configuration to inject into the cluster. Same
325 structure as ExtraConfig.
329 default: overcloud-control
331 - custom_constraint: glance.image
332 OvercloudControlFlavor:
333 description: Flavor for control nodes to request when deploying.
336 - custom_constraint: nova.flavor
337 ControlVirtualInterface:
339 description: Interface where virtual ip will be assigned.
343 description: Whether to enable fencing in Pacemaker or not.
347 description: Whether to use Galera instead of regular MariaDB.
349 ControllerEnableCephStorage:
351 description: Whether to deploy Ceph Storage (OSD) on the Controller
353 ControllerEnableSwiftStorage:
355 description: Whether to enable Swift Storage on the Controller
360 Additional configuration to inject into the cluster. The format required
361 may be implementation specific, e.g puppet hieradata. Any role specific
362 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
367 Pacemaker fencing configuration. The JSON should have
368 the following structure:
372 "agent": "AGENT_NAME",
373 "host_mac": "HOST_MAC_ADDRESS",
374 "params": {"PARAM_NAME": "PARAM_VALUE"}
382 "agent": "fence_xvm",
383 "host_mac": "52:54:00:aa:bb:cc",
385 "multicast_address": "225.0.0.12",
386 "port": "baremetal_0",
388 "manage_key_file": true,
389 "key_file": "/etc/fence_xvm.key",
390 "key_file_password": "abcdef"
397 description: The filepath of the file to use for logging messages from Glance.
400 GlanceNotifierStrategy:
401 description: Strategy to use for Glance notification queue
406 description: The password for the glance service account, used by the glance services.
411 description: The short name of the Glance backend to use. Should be one
412 of swift, rbd or file
415 - allowed_values: ['swift', 'file', 'rbd']
418 description: The password for the Heat service account, used by the Heat services.
421 HeatStackDomainAdminPassword:
422 description: Password for heat_domain_admin user.
426 KeystoneCACertificate:
428 description: Keystone self-signed certificate authority certificate.
430 KeystoneSigningCertificate:
432 description: Keystone certificate for verifying token validity.
436 description: Keystone key for signing tokens.
439 KeystoneSSLCertificate:
441 description: Keystone certificate for verifying token validity.
443 KeystoneSSLCertificateKey:
445 description: Keystone key for signing tokens.
448 KeystoneNotificationDriver:
449 description: Comma-separated list of Oslo notification drivers used by Keystone
450 default: ['messaging']
451 type: comma_delimited_list
452 KeystoneNotificationFormat:
453 description: The Keystone notification format
457 - allowed_values: [ 'basic', 'cadf' ]
458 MysqlInnodbBufferPoolSize:
460 Specifies the size of the buffer pool in megabytes. Setting to
461 zero should be interpreted as "no value" and will defer to the
466 description: Configures MySQL max_connections config setting
469 NeutronDnsmasqOptions:
470 default: 'dhcp-option-force=26,1400'
471 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
473 NeutronPublicInterfaceDefaultRoute:
475 description: A custom default route for the NeutronPublicInterface.
477 NeutronPublicInterfaceIP:
479 description: A custom IP address to put onto the NeutronPublicInterface.
481 NeutronPublicInterfaceRawDevice:
483 description: If set, the public interface is a vlan with this device as the raw device.
485 PublicVirtualInterface:
488 Specifies the interface where the public-facing virtual ip will be assigned.
489 This should be int_public when a VLAN is being used.
493 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
498 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
503 description: If set, the contents of an SSL certificate authority file.
507 description: A random string to be used as a salt when hashing to determine mappings in the ring.
512 description: The password for the swift service account, used by the swift proxy services.
517 description: Value of mount_check in Swift account/container/object -server.conf
522 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
525 description: Partition Power to use when building Swift rings
530 description: How many replicas to use in the swift rings.
532 # Compute-specific params
533 CeilometerComputeAgent:
534 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
538 - allowed_values: ['', Present]
542 HypervisorNeutronPhysicalBridge:
545 An OVS bridge to create on each hypervisor. This defaults to br-ex the
546 same as the control plane nodes, as we have a uniform configuration of
547 the openvswitch agent. Typically should not need to be changed.
549 HypervisorNeutronPublicInterface:
551 description: What interface to add to the HypervisorNeutronPhysicalBridge.
553 NeutronNetworkVLANRanges:
554 default: 'datacentre'
556 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
557 Neutron documentation for permitted values. Defaults to permitting any
558 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
559 type: comma_delimited_list
562 default: libvirt.LibvirtDriver
563 NovaComputeExtraConfig:
566 NovaCompute specific configuration to inject into the cluster. Same
567 structure as ExtraConfig.
569 NovaComputeLibvirtType:
572 NovaEnableRbdBackend:
574 description: Whether to enable or not the Rbd backend for Nova
578 default: overcloud-compute
580 - custom_constraint: glance.image
581 OvercloudComputeFlavor:
582 description: Use this flavor
585 - custom_constraint: nova.flavor
588 NeutronTenantNetwork: tenant
589 CeilometerApiNetwork: internal_api
590 MongoDbNetwork: internal_api
591 CinderApiNetwork: internal_api
592 CinderIscsiNetwork: storage
593 GlanceApiNetwork: storage
594 GlanceRegistryNetwork: internal_api
595 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
596 KeystonePublicApiNetwork: internal_api
597 NeutronApiNetwork: internal_api
598 HeatApiNetwork: internal_api
599 NovaApiNetwork: internal_api
600 NovaMetadataNetwork: internal_api
601 NovaVncProxyNetwork: internal_api
602 SwiftMgmtNetwork: storage_mgmt
603 SwiftProxyNetwork: storage
604 HorizonNetwork: internal_api
605 MemcachedNetwork: internal_api
606 RabbitMqNetwork: internal_api
607 RedisNetwork: internal_api
608 MysqlNetwork: internal_api
609 CephClusterNetwork: storage_mgmt
610 CephPublicNetwork: storage
611 ControllerHostnameResolveNetwork: internal_api
612 ComputeHostnameResolveNetwork: internal_api
613 BlockStorageHostnameResolveNetwork: internal_api
614 ObjectStorageHostnameResolveNetwork: internal_api
615 CephStorageHostnameResolveNetwork: storage
616 description: Mapping of service_name -> network name. Typically set
617 via parameter_defaults in the resource registry.
620 # Block storage specific parameters
625 default: overcloud-cinder-volume
627 OvercloudBlockStorageFlavor:
628 description: Flavor for block storage nodes to request when deploying.
631 - custom_constraint: nova.flavor
632 BlockStorageExtraConfig:
635 BlockStorage specific configuration to inject into the cluster. Same
636 structure as ExtraConfig.
639 # Object storage specific parameters
643 OvercloudSwiftStorageFlavor:
644 description: Flavor for Swift storage nodes to request when deploying.
647 - custom_constraint: nova.flavor
649 default: overcloud-swift-storage
651 ObjectStorageExtraConfig:
654 ObjectStorage specific configuration to inject into the cluster. Same
655 structure as ExtraConfig.
659 # Ceph storage specific parameters
664 default: overcloud-ceph-storage
666 OvercloudCephStorageFlavor:
668 description: Flavor for Ceph storage nodes to request when deploying.
671 - custom_constraint: nova.flavor
672 CephStorageExtraConfig:
675 CephStorage specific configuration to inject into the cluster. Same
676 structure as ExtraConfig.
679 # Hostname format for each role
680 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
681 # and %stackname% is replaced with OS::stack_name in the template below.
682 # If you want to use the heat generated names, pass '' (empty string).
683 ControllerHostnameFormat:
685 description: Format for Controller node hostnames
686 default: '%stackname%-controller-%index%'
687 ComputeHostnameFormat:
689 description: Format for Compute node hostnames
690 default: '%stackname%-novacompute-%index%'
691 BlockStorageHostnameFormat:
693 description: Format for BlockStorage node hostnames
694 default: '%stackname%-blockstorage-%index%'
695 ObjectStorageHostnameFormat:
697 description: Format for SwiftStorage node hostnames
698 default: '%stackname%-objectstorage-%index%'
699 CephStorageHostnameFormat:
701 description: Format for CephStorage node hostnames
702 default: '%stackname%-cephstorage-%index%'
704 # Identifiers to trigger tasks on nodes
709 Setting to a previously unused value during stack-update will trigger
710 package update on all nodes
712 # If you want to remove a specific node from a resource group, you can pass
713 # the node name or id as a <Group>RemovalPolicies parameter, for example:
714 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
715 ControllerRemovalPolicies:
719 List of resources to be removed from ControllerResourceGroup when
720 doing an update which requires removal of specific resources.
721 ComputeRemovalPolicies:
725 List of resources to be removed from ComputeResourceGroup when
726 doing an update which requires removal of specific resources.
727 BlockStorageRemovalPolicies:
731 List of resources to be removed from BlockStorageResourceGroup when
732 doing an update which requires removal of specific resources.
733 ObjectStorageRemovalPolicies:
737 List of resources to be removed from ObjectStorageResourceGroup when
738 doing an update which requires removal of specific resources.
739 CephStorageRemovalPolicies:
743 List of resources to be removed from CephStorageResourceGroup when
744 doing an update which requires removal of specific resources.
749 HeatAuthEncryptionKey:
750 type: OS::Heat::RandomString
753 type: OS::Heat::RandomString
758 type: OS::Heat::RandomString
763 type: OS::Heat::ResourceGroup
766 count: {get_param: ControllerCount}
767 removal_policies: {get_param: ControllerRemovalPolicies}
769 type: OS::TripleO::Controller
771 AdminPassword: {get_param: AdminPassword}
772 AdminToken: {get_param: AdminToken}
773 CeilometerBackend: {get_param: CeilometerBackend}
774 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
775 CeilometerPassword: {get_param: CeilometerPassword}
776 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
777 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
778 CinderNfsServers: {get_param: CinderNfsServers}
779 CinderPassword: {get_param: CinderPassword}
780 CinderISCSIHelper: {get_param: CinderISCSIHelper}
781 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
782 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
783 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
784 CloudName: {get_param: CloudName}
785 ControlVirtualInterface: {get_param: ControlVirtualInterface}
786 ControllerExtraConfig: {get_param: controllerExtraConfig}
787 Debug: {get_param: Debug}
788 EnableFencing: {get_param: EnableFencing}
789 EnableGalera: {get_param: EnableGalera}
790 EnableCephStorage: {get_param: ControllerEnableCephStorage}
791 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
792 ExtraConfig: {get_param: ExtraConfig}
793 FencingConfig: {get_param: FencingConfig}
794 Flavor: {get_param: OvercloudControlFlavor}
795 GlancePort: {get_param: GlancePort}
796 GlanceProtocol: {get_param: GlanceProtocol}
797 GlancePassword: {get_param: GlancePassword}
798 GlanceBackend: {get_param: GlanceBackend}
799 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
800 GlanceLogFile: {get_param: GlanceLogFile}
801 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
802 HeatPassword: {get_param: HeatPassword}
803 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
804 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
805 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
806 HorizonSecret: {get_resource: HorizonSecret}
807 Image: {get_param: controllerImage}
808 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
809 KeyName: {get_param: KeyName}
810 KeystoneCACertificate: {get_param: KeystoneCACertificate}
811 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
812 KeystoneSigningKey: {get_param: KeystoneSigningKey}
813 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
814 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
815 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
816 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
817 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
818 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
819 MysqlMaxConnections: {get_param: MysqlMaxConnections}
820 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
821 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
822 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
823 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
824 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
825 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
826 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
827 NeutronPublicInterface: {get_param: NeutronPublicInterface}
828 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
829 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
830 NeutronPassword: {get_param: NeutronPassword}
831 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
832 NeutronDVR: {get_param: NeutronDVR}
833 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
834 NeutronAgentMode: {get_param: NeutronAgentMode}
835 NeutronCorePlugin: {get_param: NeutronCorePlugin}
836 NeutronServicePlugins: {get_param: NeutronServicePlugins}
837 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
838 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
839 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
840 NeutronL3HA: {get_param: NeutronL3HA}
841 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
842 NeutronNetworkType: {get_param: NeutronNetworkType}
843 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
844 NovaPassword: {get_param: NovaPassword}
845 NtpServer: {get_param: NtpServer}
846 MongoDbNoJournal: {get_param: MongoDbNoJournal}
847 PcsdPassword: {get_resource: PcsdPassword}
848 PublicVirtualInterface: {get_param: PublicVirtualInterface}
849 RabbitPassword: {get_param: RabbitPassword}
850 RabbitUserName: {get_param: RabbitUserName}
851 RabbitCookie: {get_attr: [RabbitCookie, value]}
852 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
853 RabbitClientPort: {get_param: RabbitClientPort}
854 RabbitFDLimit: {get_param: RabbitFDLimit}
855 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
856 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
857 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
858 SSLCertificate: {get_param: SSLCertificate}
859 SSLKey: {get_param: SSLKey}
860 SSLCACertificate: {get_param: SSLCACertificate}
861 SwiftHashSuffix: {get_param: SwiftHashSuffix}
862 SwiftMountCheck: {get_param: SwiftMountCheck}
863 SwiftMinPartHours: {get_param: SwiftMinPartHours}
864 SwiftPartPower: {get_param: SwiftPartPower}
865 SwiftPassword: {get_param: SwiftPassword}
866 SwiftReplicas: { get_param: SwiftReplicas}
867 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
868 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
869 ServiceNetMap: {get_param: ServiceNetMap}
870 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
871 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
872 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
873 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
874 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
875 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
876 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
877 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
878 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
879 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
880 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
881 UpdateIdentifier: {get_param: UpdateIdentifier}
884 template: {get_param: ControllerHostnameFormat}
886 '%stackname%': {get_param: 'OS::stack_name'}
889 type: OS::Heat::ResourceGroup
892 count: {get_param: ComputeCount}
893 removal_policies: {get_param: ComputeRemovalPolicies}
895 type: OS::TripleO::Compute
897 AdminPassword: {get_param: AdminPassword}
898 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
899 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
900 CeilometerPassword: {get_param: CeilometerPassword}
901 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
902 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
903 Debug: {get_param: Debug}
904 ExtraConfig: {get_param: ExtraConfig}
905 Flavor: {get_param: OvercloudComputeFlavor}
906 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
907 GlancePort: {get_param: GlancePort}
908 GlanceProtocol: {get_param: GlanceProtocol}
909 Image: {get_param: NovaImage}
910 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
911 KeyName: {get_param: KeyName}
912 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
913 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
914 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
915 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
916 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
917 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
918 NeutronNetworkType: {get_param: NeutronNetworkType}
919 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
920 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
921 NeutronPassword: {get_param: NeutronPassword}
922 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
923 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
924 NeutronDVR: {get_param: NeutronDVR}
925 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
926 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
927 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
928 NeutronCorePlugin: {get_param: NeutronCorePlugin}
929 NeutronServicePlugins: {get_param: NeutronServicePlugins}
930 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
931 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
932 # L3 HA and Failover is not relevant for Computes, should be removed
933 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
934 NeutronL3HA: {get_param: NeutronL3HA}
935 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
936 NovaComputeDriver: {get_param: NovaComputeDriver}
937 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
938 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
939 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
940 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
941 NovaPassword: {get_param: NovaPassword}
942 NtpServer: {get_param: NtpServer}
943 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
944 RabbitPassword: {get_param: RabbitPassword}
945 RabbitUserName: {get_param: RabbitUserName}
946 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
947 RabbitClientPort: {get_param: RabbitClientPort}
948 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
949 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
950 ServiceNetMap: {get_param: ServiceNetMap}
951 UpdateIdentifier: {get_param: UpdateIdentifier}
954 template: {get_param: ComputeHostnameFormat}
956 '%stackname%': {get_param: 'OS::stack_name'}
959 type: OS::Heat::ResourceGroup
962 count: {get_param: BlockStorageCount}
963 removal_policies: {get_param: BlockStorageRemovalPolicies}
965 type: OS::TripleO::BlockStorage
967 Debug: {get_param: Debug}
968 Image: {get_param: BlockStorageImage}
969 CinderISCSIHelper: {get_param: CinderISCSIHelper}
970 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
971 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
972 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
973 CinderPassword: {get_param: CinderPassword}
974 KeyName: {get_param: KeyName}
975 Flavor: {get_param: OvercloudBlockStorageFlavor}
976 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
977 GlancePort: {get_param: GlancePort}
978 GlanceProtocol: {get_param: GlanceProtocol}
979 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
980 RabbitPassword: {get_param: RabbitPassword}
981 RabbitUserName: {get_param: RabbitUserName}
982 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
983 RabbitClientPort: {get_param: RabbitClientPort}
984 NtpServer: {get_param: NtpServer}
985 UpdateIdentifier: {get_param: UpdateIdentifier}
988 template: {get_param: BlockStorageHostnameFormat}
990 '%stackname%': {get_param: 'OS::stack_name'}
991 ServiceNetMap: {get_param: ServiceNetMap}
992 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
993 ExtraConfig: {get_param: ExtraConfig}
994 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
997 type: OS::Heat::ResourceGroup
1000 count: {get_param: ObjectStorageCount}
1001 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1003 type: OS::TripleO::ObjectStorage
1005 KeyName: {get_param: KeyName}
1006 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1007 HashSuffix: {get_param: SwiftHashSuffix}
1008 MountCheck: {get_param: SwiftMountCheck}
1009 MinPartHours: {get_param: SwiftMinPartHours}
1010 PartPower: {get_param: SwiftPartPower}
1011 Image: {get_param: SwiftStorageImage}
1012 Replicas: { get_param: SwiftReplicas}
1013 NtpServer: {get_param: NtpServer}
1014 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 ServiceNetMap: {get_param: ServiceNetMap}
1018 template: {get_param: ObjectStorageHostnameFormat}
1020 '%stackname%': {get_param: 'OS::stack_name'}
1021 ExtraConfig: {get_param: ExtraConfig}
1022 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1025 type: OS::Heat::ResourceGroup
1026 depends_on: Networks
1028 count: {get_param: CephStorageCount}
1029 removal_policies: {get_param: CephStorageRemovalPolicies}
1031 type: OS::TripleO::CephStorage
1033 Image: {get_param: CephStorageImage}
1034 KeyName: {get_param: KeyName}
1035 Flavor: {get_param: OvercloudCephStorageFlavor}
1036 NtpServer: {get_param: NtpServer}
1037 ServiceNetMap: {get_param: ServiceNetMap}
1038 UpdateIdentifier: {get_param: UpdateIdentifier}
1041 template: {get_param: CephStorageHostnameFormat}
1043 '%stackname%': {get_param: 'OS::stack_name'}
1044 ExtraConfig: {get_param: ExtraConfig}
1045 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1047 ControllerIpListMap:
1048 type: OS::TripleO::Network::Ports::NetIpListMap
1050 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1051 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1052 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1053 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1054 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1055 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1058 type: OS::TripleO::AllNodes::SoftwareConfig
1060 compute_hosts: {get_attr: [Compute, hosts_entry]}
1061 controller_hosts: {get_attr: [Controller, hosts_entry]}
1062 controller_ips: {get_attr: [Controller, ip_address]}
1063 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1064 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1065 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1066 controller_names: {get_attr: [Controller, hostname]}
1067 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1068 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1069 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1070 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1071 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1072 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1073 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1074 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1075 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1076 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1077 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1078 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1079 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1080 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1081 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1082 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1083 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1086 type: OS::Heat::RandomString
1090 MysqlClusterUniquePart:
1091 type: OS::Heat::RandomString
1096 type: OS::Heat::RandomString
1099 salt: {get_param: RabbitCookieSalt}
1101 # creates the network architecture
1103 type: OS::TripleO::Network
1106 type: OS::Neutron::Port
1107 depends_on: Networks
1109 name: control_virtual_ip
1110 network: {get_param: NeutronControlPlaneID}
1111 fixed_ips: {get_param: ControlFixedIPs}
1112 replacement_policy: AUTO
1115 depends_on: Networks
1116 type: OS::TripleO::Controller::Ports::RedisVipPort
1118 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1119 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1120 PortName: redis_virtual_ip
1121 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1123 # The public VIP is on the External net, falls back to ctlplane
1125 depends_on: Networks
1126 type: OS::TripleO::Controller::Ports::ExternalPort
1128 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1129 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1130 PortName: public_virtual_ip
1131 FixedIPs: {get_param: PublicVirtualFixedIPs}
1133 InternalApiVirtualIP:
1134 depends_on: Networks
1135 type: OS::TripleO::Controller::Ports::InternalApiPort
1137 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1138 PortName: internal_api_virtual_ip
1141 depends_on: Networks
1142 type: OS::TripleO::Controller::Ports::StoragePort
1144 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1145 PortName: storage_virtual_ip
1147 StorageMgmtVirtualIP:
1148 depends_on: Networks
1149 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1151 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1152 PortName: storage_management_virtual_ip
1155 type: OS::TripleO::Network::Ports::NetIpMap
1157 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1158 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1159 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1160 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1161 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1162 # No tenant VIP required
1165 type: OS::TripleO::VipConfig
1168 type: OS::Heat::StructuredDeployments
1170 config: {get_resource: VipConfig}
1171 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1173 # service VIP mappings
1174 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1175 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1176 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1177 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1178 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1179 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1180 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1181 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1182 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1183 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1184 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1185 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1186 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1187 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1188 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1189 # direct configuration of Virtual IPs for each network
1190 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1191 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1192 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1193 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1194 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1196 ControllerBootstrapNodeConfig:
1197 type: OS::TripleO::BootstrapNode::SoftwareConfig
1199 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1200 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1202 ControllerBootstrapNodeDeployment:
1203 type: OS::Heat::StructuredDeployments
1205 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1206 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1208 ControllerSwiftDeployment:
1209 type: OS::Heat::StructuredDeployments
1211 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1212 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1214 ObjectStorageSwiftDeployment:
1215 type: OS::Heat::StructuredDeployments
1217 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1218 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1220 SwiftDevicesAndProxyConfig:
1221 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1223 controller_swift_devices: {get_attr: [Controller, swift_device]}
1224 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1225 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1227 ComputeCephDeployment:
1228 type: OS::Heat::StructuredDeployments
1230 config: {get_attr: [CephClusterConfig, config_id]}
1231 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1233 ControllerCephDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 config: {get_attr: [CephClusterConfig, config_id]}
1237 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1239 CephStorageCephDeployment:
1240 type: OS::Heat::StructuredDeployments
1242 config: {get_attr: [CephClusterConfig, config_id]}
1243 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1246 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1248 ceph_storage_count: {get_param: CephStorageCount}
1249 ceph_fsid: {get_param: CephClusterFSID}
1250 ceph_mon_key: {get_param: CephMonKey}
1251 ceph_admin_key: {get_param: CephAdminKey}
1252 ceph_client_key: {get_param: CephClientKey}
1253 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1254 ceph_mon_names: {get_attr: [Controller, hostname]}
1255 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1257 ControllerClusterConfig:
1258 type: OS::Heat::StructuredConfig
1260 group: os-apply-config
1263 nodes: {get_attr: [Controller, corosync_node]}
1267 nodes: {get_attr: [Controller, hostname]}
1269 nodes: {get_attr: [Controller, corosync_node]}
1271 nodes: {get_attr: [Controller, corosync_node]}
1273 ControllerClusterDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 config: {get_resource: ControllerClusterConfig}
1277 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1279 ControllerAllNodesDeployment:
1280 type: OS::Heat::StructuredDeployments
1282 config: {get_attr: [allNodesConfig, config_id]}
1283 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1285 ComputeAllNodesDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 config: {get_attr: [allNodesConfig, config_id]}
1289 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1291 BlockStorageAllNodesDeployment:
1292 type: OS::Heat::StructuredDeployments
1294 config: {get_attr: [allNodesConfig, config_id]}
1295 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1297 ObjectStorageAllNodesDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 config: {get_attr: [allNodesConfig, config_id]}
1301 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1303 CephStorageAllNodesDeployment:
1304 type: OS::Heat::StructuredDeployments
1306 config: {get_attr: [allNodesConfig, config_id]}
1307 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1309 # All Nodes Validations
1310 AllNodesValidationConfig:
1311 type: OS::TripleO::AllNodes::Validation
1316 - - {get_attr: [Controller, resource.0.external_ip_address]}
1317 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1318 - {get_attr: [Controller, resource.0.storage_ip_address]}
1319 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1320 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1322 ControllerAllNodesValidationDeployment:
1323 type: OS::Heat::StructuredDeployments
1324 depends_on: ControllerAllNodesDeployment
1326 config: {get_resource: AllNodesValidationConfig}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 ComputeAllNodesValidationDeployment:
1330 type: OS::Heat::StructuredDeployments
1331 depends_on: ComputeAllNodesDeployment
1333 config: {get_resource: AllNodesValidationConfig}
1334 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1336 BlockStorageAllNodesValidationDeployment:
1337 type: OS::Heat::StructuredDeployments
1338 depends_on: BlockStorageAllNodesDeployment
1340 config: {get_resource: AllNodesValidationConfig}
1341 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1343 ObjectStorageAllNodesValidationDeployment:
1344 type: OS::Heat::StructuredDeployments
1345 depends_on: ObjectStorageAllNodesDeployment
1347 config: {get_resource: AllNodesValidationConfig}
1348 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1350 CephStorageAllNodesValidationDeployment:
1351 type: OS::Heat::StructuredDeployments
1352 depends_on: CephStorageAllNodesDeployment
1354 config: {get_resource: AllNodesValidationConfig}
1355 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1357 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1358 # the nested template may configure each role differently (or not at all)
1359 AllNodesExtraConfig:
1360 type: OS::TripleO::AllNodesExtraConfig
1362 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1363 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1364 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1365 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1366 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1368 # Nested stack deployment runs after all other controller deployments
1369 ControllerNodesPostDeployment:
1370 type: OS::TripleO::ControllerPostDeployment
1371 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1374 NodeConfigIdentifiers:
1375 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1376 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1378 ComputeNodesPostDeployment:
1379 type: OS::TripleO::ComputePostDeployment
1380 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1382 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1383 NodeConfigIdentifiers:
1384 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1385 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1387 ObjectStorageNodesPostDeployment:
1388 type: OS::TripleO::ObjectStoragePostDeployment
1389 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1391 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1392 NodeConfigIdentifiers:
1393 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1394 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1396 BlockStorageNodesPostDeployment:
1397 type: OS::TripleO::BlockStoragePostDeployment
1398 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1400 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1401 NodeConfigIdentifiers:
1402 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1403 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1405 CephStorageNodesPostDeployment:
1406 type: OS::TripleO::CephStoragePostDeployment
1407 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1409 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1410 NodeConfigIdentifiers:
1411 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1412 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1416 description: URL for the Overcloud Keystone service
1421 - {get_attr: [PublicVirtualIP, ip_address]}
1424 description: Keystone Admin VIP endpoint
1425 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1427 description: Controller VIP for public API endpoints
1428 value: {get_attr: [PublicVirtualIP, ip_address]}
1429 CeilometerInternalVip:
1430 description: VIP for Ceilometer API internal endpoint
1431 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1433 description: VIP for Cinder API internal endpoint
1434 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1436 description: VIP for Glance API internal endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1439 description: VIP for Heat API internal endpoint
1440 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1441 KeystoneInternalVip:
1442 description: VIP for Keystone API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1445 description: VIP for Neutron API internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1448 description: VIP for Nova API internal endpoint
1449 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1451 description: VIP for Swift Proxy internal endpoint
1452 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}