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.
235 description: Comma-separated list of ntp servers
236 type: comma_delimited_list
239 description: Should MongoDb journaling be disabled
241 PublicVirtualFixedIPs:
244 Control the IP allocation for the PublicVirtualInterface port. E.g.
245 [{'ip_address':'1.2.3.4'}]
250 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
251 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
254 description: The username for RabbitMQ
258 description: The password for RabbitMQ
264 Rabbit client subscriber parameter to specify
265 an SSL connection to the RabbitMQ host.
269 description: Set rabbit subscriber port, change this if using SSL
271 # We need to set this as string because 'unlimited' is a valid setting
274 description: Configures RabbitMQ FD limit
276 SnmpdReadonlyUserName:
277 default: ro_snmp_user
278 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
280 SnmpdReadonlyUserPassword:
282 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
286 # Controller-specific params
289 description: The keystone auth secret.
292 CinderLVMLoopDeviceSize:
294 description: The size of the loopback file used by the cinder LVM driver.
296 CinderNfsMountOptions:
299 Mount options for NFS mounts used by Cinder NFS backend. Effective
300 when CinderEnableNfsBackend is true.
305 NFS servers used by Cinder NFS backend. Effective when
306 CinderEnableNfsBackend is true.
307 type: comma_delimited_list
310 description: The password for the cinder service account, used by cinder-api.
315 description: The iSCSI helper to use with cinder.
322 controllerExtraConfig:
325 Controller specific configuration to inject into the cluster. Same
326 structure as ExtraConfig.
330 default: overcloud-control
332 - custom_constraint: glance.image
333 OvercloudControlFlavor:
334 description: Flavor for control nodes to request when deploying.
337 - custom_constraint: nova.flavor
338 ControlVirtualInterface:
340 description: Interface where virtual ip will be assigned.
344 description: Whether to enable fencing in Pacemaker or not.
348 description: Whether to use Galera instead of regular MariaDB.
350 ControllerEnableCephStorage:
352 description: Whether to deploy Ceph Storage (OSD) on the Controller
354 ControllerEnableSwiftStorage:
356 description: Whether to enable Swift Storage on the Controller
361 Additional configuration to inject into the cluster. The format required
362 may be implementation specific, e.g puppet hieradata. Any role specific
363 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
368 Pacemaker fencing configuration. The JSON should have
369 the following structure:
373 "agent": "AGENT_NAME",
374 "host_mac": "HOST_MAC_ADDRESS",
375 "params": {"PARAM_NAME": "PARAM_VALUE"}
383 "agent": "fence_xvm",
384 "host_mac": "52:54:00:aa:bb:cc",
386 "multicast_address": "225.0.0.12",
387 "port": "baremetal_0",
389 "manage_key_file": true,
390 "key_file": "/etc/fence_xvm.key",
391 "key_file_password": "abcdef"
398 description: The filepath of the file to use for logging messages from Glance.
401 GlanceNotifierStrategy:
402 description: Strategy to use for Glance notification queue
407 description: The password for the glance service account, used by the glance services.
412 description: The short name of the Glance backend to use. Should be one
413 of swift, rbd or file
416 - allowed_values: ['swift', 'file', 'rbd']
419 description: The password for the Heat service account, used by the Heat services.
422 HeatStackDomainAdminPassword:
423 description: Password for heat_domain_admin user.
427 KeystoneCACertificate:
429 description: Keystone self-signed certificate authority certificate.
431 KeystoneSigningCertificate:
433 description: Keystone certificate for verifying token validity.
437 description: Keystone key for signing tokens.
440 KeystoneSSLCertificate:
442 description: Keystone certificate for verifying token validity.
444 KeystoneSSLCertificateKey:
446 description: Keystone key for signing tokens.
449 KeystoneNotificationDriver:
450 description: Comma-separated list of Oslo notification drivers used by Keystone
451 default: ['messaging']
452 type: comma_delimited_list
453 KeystoneNotificationFormat:
454 description: The Keystone notification format
458 - allowed_values: [ 'basic', 'cadf' ]
459 MysqlInnodbBufferPoolSize:
461 Specifies the size of the buffer pool in megabytes. Setting to
462 zero should be interpreted as "no value" and will defer to the
467 description: Configures MySQL max_connections config setting
470 NeutronDnsmasqOptions:
471 default: 'dhcp-option-force=26,1400'
472 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
474 NeutronPublicInterfaceDefaultRoute:
476 description: A custom default route for the NeutronPublicInterface.
478 NeutronPublicInterfaceIP:
480 description: A custom IP address to put onto the NeutronPublicInterface.
482 NeutronPublicInterfaceRawDevice:
484 description: If set, the public interface is a vlan with this device as the raw device.
486 PublicVirtualInterface:
489 Specifies the interface where the public-facing virtual ip will be assigned.
490 This should be int_public when a VLAN is being used.
494 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
499 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
504 description: If set, the contents of an SSL certificate authority file.
508 description: A random string to be used as a salt when hashing to determine mappings in the ring.
513 description: The password for the swift service account, used by the swift proxy services.
518 description: Value of mount_check in Swift account/container/object -server.conf
523 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
526 description: Partition Power to use when building Swift rings
531 description: How many replicas to use in the swift rings.
533 # Compute-specific params
534 CeilometerComputeAgent:
535 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
539 - allowed_values: ['', Present]
543 HypervisorNeutronPhysicalBridge:
546 An OVS bridge to create on each hypervisor. This defaults to br-ex the
547 same as the control plane nodes, as we have a uniform configuration of
548 the openvswitch agent. Typically should not need to be changed.
550 HypervisorNeutronPublicInterface:
552 description: What interface to add to the HypervisorNeutronPhysicalBridge.
554 NeutronNetworkVLANRanges:
555 default: 'datacentre'
557 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
558 Neutron documentation for permitted values. Defaults to permitting any
559 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
560 type: comma_delimited_list
563 default: libvirt.LibvirtDriver
564 NovaComputeExtraConfig:
567 NovaCompute specific configuration to inject into the cluster. Same
568 structure as ExtraConfig.
570 NovaComputeLibvirtType:
573 NovaEnableRbdBackend:
575 description: Whether to enable or not the Rbd backend for Nova
579 default: overcloud-compute
581 - custom_constraint: glance.image
582 OvercloudComputeFlavor:
583 description: Use this flavor
586 - custom_constraint: nova.flavor
589 NeutronTenantNetwork: tenant
590 CeilometerApiNetwork: internal_api
591 MongoDbNetwork: internal_api
592 CinderApiNetwork: internal_api
593 CinderIscsiNetwork: storage
594 GlanceApiNetwork: storage
595 GlanceRegistryNetwork: internal_api
596 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
597 KeystonePublicApiNetwork: internal_api
598 NeutronApiNetwork: internal_api
599 HeatApiNetwork: internal_api
600 NovaApiNetwork: internal_api
601 NovaMetadataNetwork: internal_api
602 NovaVncProxyNetwork: internal_api
603 SwiftMgmtNetwork: storage_mgmt
604 SwiftProxyNetwork: storage
605 HorizonNetwork: internal_api
606 MemcachedNetwork: internal_api
607 RabbitMqNetwork: internal_api
608 RedisNetwork: internal_api
609 MysqlNetwork: internal_api
610 CephClusterNetwork: storage_mgmt
611 CephPublicNetwork: storage
612 ControllerHostnameResolveNetwork: internal_api
613 ComputeHostnameResolveNetwork: internal_api
614 BlockStorageHostnameResolveNetwork: internal_api
615 ObjectStorageHostnameResolveNetwork: internal_api
616 CephStorageHostnameResolveNetwork: storage
617 description: Mapping of service_name -> network name. Typically set
618 via parameter_defaults in the resource registry.
621 # Block storage specific parameters
626 default: overcloud-cinder-volume
628 OvercloudBlockStorageFlavor:
629 description: Flavor for block storage nodes to request when deploying.
632 - custom_constraint: nova.flavor
633 BlockStorageExtraConfig:
636 BlockStorage specific configuration to inject into the cluster. Same
637 structure as ExtraConfig.
640 # Object storage specific parameters
644 OvercloudSwiftStorageFlavor:
645 description: Flavor for Swift storage nodes to request when deploying.
648 - custom_constraint: nova.flavor
650 default: overcloud-swift-storage
652 ObjectStorageExtraConfig:
655 ObjectStorage specific configuration to inject into the cluster. Same
656 structure as ExtraConfig.
660 # Ceph storage specific parameters
665 default: overcloud-ceph-storage
667 OvercloudCephStorageFlavor:
669 description: Flavor for Ceph storage nodes to request when deploying.
672 - custom_constraint: nova.flavor
673 CephStorageExtraConfig:
676 CephStorage specific configuration to inject into the cluster. Same
677 structure as ExtraConfig.
680 # Hostname format for each role
681 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
682 # and %stackname% is replaced with OS::stack_name in the template below.
683 # If you want to use the heat generated names, pass '' (empty string).
684 ControllerHostnameFormat:
686 description: Format for Controller node hostnames
687 default: '%stackname%-controller-%index%'
688 ComputeHostnameFormat:
690 description: Format for Compute node hostnames
691 default: '%stackname%-novacompute-%index%'
692 BlockStorageHostnameFormat:
694 description: Format for BlockStorage node hostnames
695 default: '%stackname%-blockstorage-%index%'
696 ObjectStorageHostnameFormat:
698 description: Format for SwiftStorage node hostnames
699 default: '%stackname%-objectstorage-%index%'
700 CephStorageHostnameFormat:
702 description: Format for CephStorage node hostnames
703 default: '%stackname%-cephstorage-%index%'
705 # Identifiers to trigger tasks on nodes
710 Setting to a previously unused value during stack-update will trigger
711 package update on all nodes
716 Setting this to a unique value will re-run any deployment tasks which
717 perform configuration on a Heat stack-update.
719 # If you want to remove a specific node from a resource group, you can pass
720 # the node name or id as a <Group>RemovalPolicies parameter, for example:
721 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
722 ControllerRemovalPolicies:
726 List of resources to be removed from ControllerResourceGroup when
727 doing an update which requires removal of specific resources.
728 ComputeRemovalPolicies:
732 List of resources to be removed from ComputeResourceGroup when
733 doing an update which requires removal of specific resources.
734 BlockStorageRemovalPolicies:
738 List of resources to be removed from BlockStorageResourceGroup when
739 doing an update which requires removal of specific resources.
740 ObjectStorageRemovalPolicies:
744 List of resources to be removed from ObjectStorageResourceGroup when
745 doing an update which requires removal of specific resources.
746 CephStorageRemovalPolicies:
750 List of resources to be removed from CephStorageResourceGroup when
751 doing an update which requires removal of specific resources.
756 HeatAuthEncryptionKey:
757 type: OS::Heat::RandomString
760 type: OS::Heat::RandomString
765 type: OS::Heat::RandomString
770 type: OS::Heat::ResourceGroup
773 count: {get_param: ControllerCount}
774 removal_policies: {get_param: ControllerRemovalPolicies}
776 type: OS::TripleO::Controller
778 AdminPassword: {get_param: AdminPassword}
779 AdminToken: {get_param: AdminToken}
780 CeilometerBackend: {get_param: CeilometerBackend}
781 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
782 CeilometerPassword: {get_param: CeilometerPassword}
783 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
784 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
785 CinderNfsServers: {get_param: CinderNfsServers}
786 CinderPassword: {get_param: CinderPassword}
787 CinderISCSIHelper: {get_param: CinderISCSIHelper}
788 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
789 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
790 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
791 CloudName: {get_param: CloudName}
792 ControlVirtualInterface: {get_param: ControlVirtualInterface}
793 ControllerExtraConfig: {get_param: controllerExtraConfig}
794 Debug: {get_param: Debug}
795 EnableFencing: {get_param: EnableFencing}
796 EnableGalera: {get_param: EnableGalera}
797 EnableCephStorage: {get_param: ControllerEnableCephStorage}
798 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
799 ExtraConfig: {get_param: ExtraConfig}
800 FencingConfig: {get_param: FencingConfig}
801 Flavor: {get_param: OvercloudControlFlavor}
802 GlancePort: {get_param: GlancePort}
803 GlanceProtocol: {get_param: GlanceProtocol}
804 GlancePassword: {get_param: GlancePassword}
805 GlanceBackend: {get_param: GlanceBackend}
806 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
807 GlanceLogFile: {get_param: GlanceLogFile}
808 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
809 HeatPassword: {get_param: HeatPassword}
810 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
811 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
812 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
813 HorizonSecret: {get_resource: HorizonSecret}
814 Image: {get_param: controllerImage}
815 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
816 KeyName: {get_param: KeyName}
817 KeystoneCACertificate: {get_param: KeystoneCACertificate}
818 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
819 KeystoneSigningKey: {get_param: KeystoneSigningKey}
820 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
821 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
822 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
823 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
824 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
825 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
826 MysqlMaxConnections: {get_param: MysqlMaxConnections}
827 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
828 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
829 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
830 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
831 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
832 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
833 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
834 NeutronPublicInterface: {get_param: NeutronPublicInterface}
835 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
836 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
837 NeutronPassword: {get_param: NeutronPassword}
838 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
839 NeutronDVR: {get_param: NeutronDVR}
840 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
841 NeutronAgentMode: {get_param: NeutronAgentMode}
842 NeutronCorePlugin: {get_param: NeutronCorePlugin}
843 NeutronServicePlugins: {get_param: NeutronServicePlugins}
844 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
845 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
846 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
847 NeutronL3HA: {get_param: NeutronL3HA}
848 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
849 NeutronNetworkType: {get_param: NeutronNetworkType}
850 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
851 NovaPassword: {get_param: NovaPassword}
852 NtpServer: {get_param: NtpServer}
853 MongoDbNoJournal: {get_param: MongoDbNoJournal}
854 PcsdPassword: {get_resource: PcsdPassword}
855 PublicVirtualInterface: {get_param: PublicVirtualInterface}
856 RabbitPassword: {get_param: RabbitPassword}
857 RabbitUserName: {get_param: RabbitUserName}
858 RabbitCookie: {get_attr: [RabbitCookie, value]}
859 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
860 RabbitClientPort: {get_param: RabbitClientPort}
861 RabbitFDLimit: {get_param: RabbitFDLimit}
862 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
863 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
864 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
865 SSLCertificate: {get_param: SSLCertificate}
866 SSLKey: {get_param: SSLKey}
867 SSLCACertificate: {get_param: SSLCACertificate}
868 SwiftHashSuffix: {get_param: SwiftHashSuffix}
869 SwiftMountCheck: {get_param: SwiftMountCheck}
870 SwiftMinPartHours: {get_param: SwiftMinPartHours}
871 SwiftPartPower: {get_param: SwiftPartPower}
872 SwiftPassword: {get_param: SwiftPassword}
873 SwiftReplicas: { get_param: SwiftReplicas}
874 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
875 PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
876 ServiceNetMap: {get_param: ServiceNetMap}
877 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
878 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
879 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
880 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
881 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
882 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
883 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
884 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
885 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
886 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
887 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
888 UpdateIdentifier: {get_param: UpdateIdentifier}
891 template: {get_param: ControllerHostnameFormat}
893 '%stackname%': {get_param: 'OS::stack_name'}
896 type: OS::Heat::ResourceGroup
899 count: {get_param: ComputeCount}
900 removal_policies: {get_param: ComputeRemovalPolicies}
902 type: OS::TripleO::Compute
904 AdminPassword: {get_param: AdminPassword}
905 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
906 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
907 CeilometerPassword: {get_param: CeilometerPassword}
908 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
909 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
910 Debug: {get_param: Debug}
911 ExtraConfig: {get_param: ExtraConfig}
912 Flavor: {get_param: OvercloudComputeFlavor}
913 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
914 GlancePort: {get_param: GlancePort}
915 GlanceProtocol: {get_param: GlanceProtocol}
916 Image: {get_param: NovaImage}
917 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
918 KeyName: {get_param: KeyName}
919 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
920 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
921 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
922 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
923 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
924 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
925 NeutronNetworkType: {get_param: NeutronNetworkType}
926 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
927 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
928 NeutronPassword: {get_param: NeutronPassword}
929 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
930 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
931 NeutronDVR: {get_param: NeutronDVR}
932 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
933 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
934 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
935 NeutronCorePlugin: {get_param: NeutronCorePlugin}
936 NeutronServicePlugins: {get_param: NeutronServicePlugins}
937 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
938 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
939 # L3 HA and Failover is not relevant for Computes, should be removed
940 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
941 NeutronL3HA: {get_param: NeutronL3HA}
942 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
943 NovaComputeDriver: {get_param: NovaComputeDriver}
944 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
945 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
946 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
947 NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
948 NovaPassword: {get_param: NovaPassword}
949 NtpServer: {get_param: NtpServer}
950 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
951 RabbitPassword: {get_param: RabbitPassword}
952 RabbitUserName: {get_param: RabbitUserName}
953 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
954 RabbitClientPort: {get_param: RabbitClientPort}
955 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
956 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
957 ServiceNetMap: {get_param: ServiceNetMap}
958 UpdateIdentifier: {get_param: UpdateIdentifier}
961 template: {get_param: ComputeHostnameFormat}
963 '%stackname%': {get_param: 'OS::stack_name'}
966 type: OS::Heat::ResourceGroup
969 count: {get_param: BlockStorageCount}
970 removal_policies: {get_param: BlockStorageRemovalPolicies}
972 type: OS::TripleO::BlockStorage
974 Debug: {get_param: Debug}
975 Image: {get_param: BlockStorageImage}
976 CinderISCSIHelper: {get_param: CinderISCSIHelper}
977 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
978 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
979 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
980 CinderPassword: {get_param: CinderPassword}
981 KeyName: {get_param: KeyName}
982 Flavor: {get_param: OvercloudBlockStorageFlavor}
983 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
984 GlancePort: {get_param: GlancePort}
985 GlanceProtocol: {get_param: GlanceProtocol}
986 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
987 RabbitPassword: {get_param: RabbitPassword}
988 RabbitUserName: {get_param: RabbitUserName}
989 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
990 RabbitClientPort: {get_param: RabbitClientPort}
991 NtpServer: {get_param: NtpServer}
992 UpdateIdentifier: {get_param: UpdateIdentifier}
995 template: {get_param: BlockStorageHostnameFormat}
997 '%stackname%': {get_param: 'OS::stack_name'}
998 ServiceNetMap: {get_param: ServiceNetMap}
999 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1000 ExtraConfig: {get_param: ExtraConfig}
1001 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1004 type: OS::Heat::ResourceGroup
1005 depends_on: Networks
1007 count: {get_param: ObjectStorageCount}
1008 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1010 type: OS::TripleO::ObjectStorage
1012 KeyName: {get_param: KeyName}
1013 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1014 HashSuffix: {get_param: SwiftHashSuffix}
1015 MountCheck: {get_param: SwiftMountCheck}
1016 MinPartHours: {get_param: SwiftMinPartHours}
1017 PartPower: {get_param: SwiftPartPower}
1018 Image: {get_param: SwiftStorageImage}
1019 Replicas: { get_param: SwiftReplicas}
1020 NtpServer: {get_param: NtpServer}
1021 UpdateIdentifier: {get_param: UpdateIdentifier}
1022 ServiceNetMap: {get_param: ServiceNetMap}
1025 template: {get_param: ObjectStorageHostnameFormat}
1027 '%stackname%': {get_param: 'OS::stack_name'}
1028 ExtraConfig: {get_param: ExtraConfig}
1029 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1032 type: OS::Heat::ResourceGroup
1033 depends_on: Networks
1035 count: {get_param: CephStorageCount}
1036 removal_policies: {get_param: CephStorageRemovalPolicies}
1038 type: OS::TripleO::CephStorage
1040 Image: {get_param: CephStorageImage}
1041 KeyName: {get_param: KeyName}
1042 Flavor: {get_param: OvercloudCephStorageFlavor}
1043 NtpServer: {get_param: NtpServer}
1044 ServiceNetMap: {get_param: ServiceNetMap}
1045 UpdateIdentifier: {get_param: UpdateIdentifier}
1048 template: {get_param: CephStorageHostnameFormat}
1050 '%stackname%': {get_param: 'OS::stack_name'}
1051 ExtraConfig: {get_param: ExtraConfig}
1052 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1054 ControllerIpListMap:
1055 type: OS::TripleO::Network::Ports::NetIpListMap
1057 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1058 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1059 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1060 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1061 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1062 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1065 type: OS::TripleO::AllNodes::SoftwareConfig
1067 compute_hosts: {get_attr: [Compute, hosts_entry]}
1068 controller_hosts: {get_attr: [Controller, hosts_entry]}
1069 controller_ips: {get_attr: [Controller, ip_address]}
1070 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1071 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1072 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1073 controller_names: {get_attr: [Controller, hostname]}
1074 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1075 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1076 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1077 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1078 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1079 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1080 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1081 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1082 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1083 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1084 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1085 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1086 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1087 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1088 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1089 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1090 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1093 type: OS::Heat::RandomString
1097 MysqlClusterUniquePart:
1098 type: OS::Heat::RandomString
1103 type: OS::Heat::RandomString
1106 salt: {get_param: RabbitCookieSalt}
1108 # creates the network architecture
1110 type: OS::TripleO::Network
1113 type: OS::Neutron::Port
1114 depends_on: Networks
1116 name: control_virtual_ip
1117 network: {get_param: NeutronControlPlaneID}
1118 fixed_ips: {get_param: ControlFixedIPs}
1119 replacement_policy: AUTO
1122 depends_on: Networks
1123 type: OS::TripleO::Controller::Ports::RedisVipPort
1125 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1126 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1127 PortName: redis_virtual_ip
1128 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1130 # The public VIP is on the External net, falls back to ctlplane
1132 depends_on: Networks
1133 type: OS::TripleO::Controller::Ports::ExternalPort
1135 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1136 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1137 PortName: public_virtual_ip
1138 FixedIPs: {get_param: PublicVirtualFixedIPs}
1140 InternalApiVirtualIP:
1141 depends_on: Networks
1142 type: OS::TripleO::Controller::Ports::InternalApiPort
1144 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1145 PortName: internal_api_virtual_ip
1148 depends_on: Networks
1149 type: OS::TripleO::Controller::Ports::StoragePort
1151 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1152 PortName: storage_virtual_ip
1154 StorageMgmtVirtualIP:
1155 depends_on: Networks
1156 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1158 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1159 PortName: storage_management_virtual_ip
1162 type: OS::TripleO::Network::Ports::NetIpMap
1164 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1166 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1167 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1168 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1169 # No tenant VIP required
1172 type: OS::TripleO::VipConfig
1175 type: OS::Heat::StructuredDeployments
1177 config: {get_resource: VipConfig}
1178 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1180 # service VIP mappings
1181 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1182 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1183 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1184 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1185 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1186 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1187 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1188 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1189 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1190 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1191 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1192 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1193 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1194 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1195 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1196 # direct configuration of Virtual IPs for each network
1197 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1198 public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
1199 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1200 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1201 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1203 ControllerBootstrapNodeConfig:
1204 type: OS::TripleO::BootstrapNode::SoftwareConfig
1206 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1207 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1209 ControllerBootstrapNodeDeployment:
1210 type: OS::Heat::StructuredDeployments
1212 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1213 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1215 ControllerSwiftDeployment:
1216 type: OS::Heat::StructuredDeployments
1218 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1219 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1221 ObjectStorageSwiftDeployment:
1222 type: OS::Heat::StructuredDeployments
1224 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1225 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1227 SwiftDevicesAndProxyConfig:
1228 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1230 controller_swift_devices: {get_attr: [Controller, swift_device]}
1231 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1232 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1234 ComputeCephDeployment:
1235 type: OS::Heat::StructuredDeployments
1237 config: {get_attr: [CephClusterConfig, config_id]}
1238 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1240 ControllerCephDeployment:
1241 type: OS::Heat::StructuredDeployments
1243 config: {get_attr: [CephClusterConfig, config_id]}
1244 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1246 CephStorageCephDeployment:
1247 type: OS::Heat::StructuredDeployments
1249 config: {get_attr: [CephClusterConfig, config_id]}
1250 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1253 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1255 ceph_storage_count: {get_param: CephStorageCount}
1256 ceph_fsid: {get_param: CephClusterFSID}
1257 ceph_mon_key: {get_param: CephMonKey}
1258 ceph_admin_key: {get_param: CephAdminKey}
1259 ceph_client_key: {get_param: CephClientKey}
1260 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1261 ceph_mon_names: {get_attr: [Controller, hostname]}
1262 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1264 ControllerClusterConfig:
1265 type: OS::Heat::StructuredConfig
1267 group: os-apply-config
1270 nodes: {get_attr: [Controller, corosync_node]}
1274 nodes: {get_attr: [Controller, hostname]}
1276 nodes: {get_attr: [Controller, corosync_node]}
1278 nodes: {get_attr: [Controller, corosync_node]}
1280 ControllerClusterDeployment:
1281 type: OS::Heat::StructuredDeployments
1283 config: {get_resource: ControllerClusterConfig}
1284 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1286 ControllerAllNodesDeployment:
1287 type: OS::Heat::StructuredDeployments
1289 config: {get_attr: [allNodesConfig, config_id]}
1290 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1292 ComputeAllNodesDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 config: {get_attr: [allNodesConfig, config_id]}
1296 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1298 BlockStorageAllNodesDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 config: {get_attr: [allNodesConfig, config_id]}
1302 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1304 ObjectStorageAllNodesDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 config: {get_attr: [allNodesConfig, config_id]}
1308 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1310 CephStorageAllNodesDeployment:
1311 type: OS::Heat::StructuredDeployments
1313 config: {get_attr: [allNodesConfig, config_id]}
1314 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1316 # All Nodes Validations
1317 AllNodesValidationConfig:
1318 type: OS::TripleO::AllNodes::Validation
1323 - - {get_attr: [Controller, resource.0.external_ip_address]}
1324 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1325 - {get_attr: [Controller, resource.0.storage_ip_address]}
1326 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1327 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1329 ControllerAllNodesValidationDeployment:
1330 type: OS::Heat::StructuredDeployments
1331 depends_on: ControllerAllNodesDeployment
1333 config: {get_resource: AllNodesValidationConfig}
1334 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1336 ComputeAllNodesValidationDeployment:
1337 type: OS::Heat::StructuredDeployments
1338 depends_on: ComputeAllNodesDeployment
1340 config: {get_resource: AllNodesValidationConfig}
1341 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1343 BlockStorageAllNodesValidationDeployment:
1344 type: OS::Heat::StructuredDeployments
1345 depends_on: BlockStorageAllNodesDeployment
1347 config: {get_resource: AllNodesValidationConfig}
1348 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1350 ObjectStorageAllNodesValidationDeployment:
1351 type: OS::Heat::StructuredDeployments
1352 depends_on: ObjectStorageAllNodesDeployment
1354 config: {get_resource: AllNodesValidationConfig}
1355 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1357 CephStorageAllNodesValidationDeployment:
1358 type: OS::Heat::StructuredDeployments
1359 depends_on: CephStorageAllNodesDeployment
1361 config: {get_resource: AllNodesValidationConfig}
1362 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1364 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1365 # the nested template may configure each role differently (or not at all)
1366 AllNodesExtraConfig:
1367 type: OS::TripleO::AllNodesExtraConfig
1369 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1371 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1372 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1373 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1375 # Nested stack deployment runs after all other controller deployments
1376 ControllerNodesPostDeployment:
1377 type: OS::TripleO::ControllerPostDeployment
1378 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1380 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1381 NodeConfigIdentifiers:
1382 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1383 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1384 deployment_identifier: {get_param: DeployIdentifier}
1386 ComputeNodesPostDeployment:
1387 type: OS::TripleO::ComputePostDeployment
1388 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1390 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1391 NodeConfigIdentifiers:
1392 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1393 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1394 deployment_identifier: {get_param: DeployIdentifier}
1396 ObjectStorageNodesPostDeployment:
1397 type: OS::TripleO::ObjectStoragePostDeployment
1398 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1400 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1401 NodeConfigIdentifiers:
1402 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1403 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1404 deployment_identifier: {get_param: DeployIdentifier}
1406 BlockStorageNodesPostDeployment:
1407 type: OS::TripleO::BlockStoragePostDeployment
1408 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1410 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1411 NodeConfigIdentifiers:
1412 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1413 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1414 deployment_identifier: {get_param: DeployIdentifier}
1416 CephStorageNodesPostDeployment:
1417 type: OS::TripleO::CephStoragePostDeployment
1418 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1420 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1421 NodeConfigIdentifiers:
1422 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1423 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1424 deployment_identifier: {get_param: DeployIdentifier}
1428 description: URL for the Overcloud Keystone service
1433 - {get_attr: [PublicVirtualIP, ip_address]}
1436 description: Keystone Admin VIP endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1439 description: Controller VIP for public API endpoints
1440 value: {get_attr: [PublicVirtualIP, ip_address]}
1441 CeilometerInternalVip:
1442 description: VIP for Ceilometer API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1445 description: VIP for Cinder API internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1448 description: VIP for Glance API internal endpoint
1449 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1451 description: VIP for Heat API internal endpoint
1452 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1453 KeystoneInternalVip:
1454 description: VIP for Keystone API internal endpoint
1455 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1457 description: VIP for Neutron API internal endpoint
1458 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1460 description: VIP for Nova API internal endpoint
1461 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1463 description: VIP for Swift Proxy internal endpoint
1464 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}