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: Syslog address where HAproxy will send its log
88 description: A list of IP/Hostname allowed to connect to horizon
89 type: comma_delimited_list
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
99 - custom_constraint: nova.keypair
100 NeutronExternalNetworkBridge:
101 description: Name of bridge used for external network traffic.
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronControlPlaneID:
117 description: Neutron ID or name for ctlplane network.
118 NeutronEnableIsolatedMetadata:
120 description: If True, DHCP provide metadata route to VM.
122 NeutronEnableTunnelling:
128 Enable/disable the L2 population feature in the Neutron agents.
132 default: 'datacentre'
134 If set, flat networks to configure in neutron plugins. Defaults to
135 'datacentre' to permit external network creation.
138 description: The tenant network type for Neutron, either gre or vxlan.
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPublicInterface:
147 description: What interface to bridge onto br-ex for network nodes.
149 NeutronPublicInterfaceTag:
152 VLAN tag for creating a public VLAN. The tag will be used to
153 create an access port on the exterior bridge for each control plane node,
154 and that port will be given the IP address returned by neutron from the
155 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
156 overcloud.yaml to include the deployment of VLAN ports to the control
159 NeutronComputeAgentMode:
161 description: Agent mode for the neutron-l3-agent on the compute hosts
165 description: Agent mode for the neutron-l3-agent on the controller hosts
169 description: Whether to configure Neutron Distributed Virtual Routers
171 NeutronMetadataProxySharedSecret:
173 description: Shared secret to prevent spoofing
179 The tunnel types for the Neutron tenant network. To specify multiple
180 values, use a comma separated string, like so: 'gre,vxlan'
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:1000", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 NeutronAllowL3AgentFailover:
219 description: Allow automatic l3-agent failover
223 description: Whether to enable l3-agent HA
225 NeutronDhcpAgentsPerNetwork:
228 description: The number of neutron dhcp agents to schedule per network
231 description: The password for the nova service account, used by nova-api.
236 description: Comma-separated list of ntp servers
237 type: comma_delimited_list
240 description: Should MongoDb journaling be disabled
242 PublicVirtualFixedIPs:
245 Control the IP allocation for the PublicVirtualInterface port. E.g.
246 [{'ip_address':'1.2.3.4'}]
251 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
252 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
255 description: The username for RabbitMQ
259 description: The password for RabbitMQ
265 Rabbit client subscriber parameter to specify
266 an SSL connection to the RabbitMQ host.
270 description: Set rabbit subscriber port, change this if using SSL
272 # We need to set this as string because 'unlimited' is a valid setting
275 description: Configures RabbitMQ FD limit
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
287 default: 'localdomain'
290 The DNS domain used for the hosts. This should match the dhcp_domain
291 configured in the Undercloud neutron. Defaults to localdomain.
293 # Controller-specific params
296 description: The keystone auth secret.
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
303 CinderNfsMountOptions:
306 Mount options for NFS mounts used by Cinder NFS backend. Effective
307 when CinderEnableNfsBackend is true.
312 NFS servers used by Cinder NFS backend. Effective when
313 CinderEnableNfsBackend is true.
314 type: comma_delimited_list
317 description: The password for the cinder service account, used by cinder-api.
322 description: The iSCSI helper to use with cinder.
329 controllerExtraConfig:
332 Controller specific configuration to inject into the cluster. Same
333 structure as ExtraConfig.
337 default: overcloud-control
339 - custom_constraint: glance.image
340 OvercloudControlFlavor:
341 description: Flavor for control nodes to request when deploying.
344 - custom_constraint: nova.flavor
345 ControlVirtualInterface:
347 description: Interface where virtual ip will be assigned.
351 description: Whether to enable fencing in Pacemaker or not.
355 description: Whether to use Galera instead of regular MariaDB.
357 ControllerEnableCephStorage:
359 description: Whether to deploy Ceph Storage (OSD) on the Controller
361 ControllerEnableSwiftStorage:
363 description: Whether to enable Swift Storage on the Controller
368 Additional configuration to inject into the cluster. The format required
369 may be implementation specific, e.g puppet hieradata. Any role specific
370 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
375 Pacemaker fencing configuration. The JSON should have
376 the following structure:
380 "agent": "AGENT_NAME",
381 "host_mac": "HOST_MAC_ADDRESS",
382 "params": {"PARAM_NAME": "PARAM_VALUE"}
390 "agent": "fence_xvm",
391 "host_mac": "52:54:00:aa:bb:cc",
393 "multicast_address": "225.0.0.12",
394 "port": "baremetal_0",
396 "manage_key_file": true,
397 "key_file": "/etc/fence_xvm.key",
398 "key_file_password": "abcdef"
405 description: The filepath of the file to use for logging messages from Glance.
408 GlanceNotifierStrategy:
409 description: Strategy to use for Glance notification queue
414 description: The password for the glance service account, used by the glance services.
419 description: The short name of the Glance backend to use. Should be one
420 of swift, rbd or file
423 - allowed_values: ['swift', 'file', 'rbd']
426 description: The password for the Heat service account, used by the Heat services.
429 HeatStackDomainAdminPassword:
430 description: Password for heat_domain_admin user.
434 KeystoneCACertificate:
436 description: Keystone self-signed certificate authority certificate.
438 KeystoneSigningCertificate:
440 description: Keystone certificate for verifying token validity.
444 description: Keystone key for signing tokens.
447 KeystoneSSLCertificate:
449 description: Keystone certificate for verifying token validity.
451 KeystoneSSLCertificateKey:
453 description: Keystone key for signing tokens.
456 KeystoneNotificationDriver:
457 description: Comma-separated list of Oslo notification drivers used by Keystone
458 default: ['messaging']
459 type: comma_delimited_list
460 KeystoneNotificationFormat:
461 description: The Keystone notification format
465 - allowed_values: [ 'basic', 'cadf' ]
468 description: Whether to manage IPtables rules.
472 description: Whether IPtables rules should be purged before setting up the ones.
474 MysqlInnodbBufferPoolSize:
476 Specifies the size of the buffer pool in megabytes. Setting to
477 zero should be interpreted as "no value" and will defer to the
482 description: Configures MySQL max_connections config setting
485 NeutronDnsmasqOptions:
486 default: 'dhcp-option-force=26,1400'
487 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
509 description: A random string to be used as a salt when hashing to determine mappings in the ring.
514 description: The password for the swift service account, used by the swift proxy services.
519 description: Value of mount_check in Swift account/container/object -server.conf
524 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
527 description: Partition Power to use when building Swift rings
532 description: How many replicas to use in the swift rings.
534 # Compute-specific params
535 CeilometerComputeAgent:
536 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
540 - allowed_values: ['', Present]
544 HypervisorNeutronPhysicalBridge:
547 An OVS bridge to create on each hypervisor. This defaults to br-ex the
548 same as the control plane nodes, as we have a uniform configuration of
549 the openvswitch agent. Typically should not need to be changed.
551 HypervisorNeutronPublicInterface:
553 description: What interface to add to the HypervisorNeutronPhysicalBridge.
555 NeutronNetworkVLANRanges:
556 default: 'datacentre'
558 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
559 Neutron documentation for permitted values. Defaults to permitting any
560 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
561 type: comma_delimited_list
564 default: libvirt.LibvirtDriver
565 NovaComputeExtraConfig:
568 NovaCompute specific configuration to inject into the cluster. Same
569 structure as ExtraConfig.
571 NovaComputeLibvirtType:
574 NovaComputeLibvirtVifDriver:
576 description: Libvirt VIF driver configuration for the network
578 NovaEnableRbdBackend:
580 description: Whether to enable or not the Rbd backend for Nova
584 default: overcloud-compute
586 - custom_constraint: glance.image
589 description: Name of integration bridge used by Open vSwitch
591 NovaSecurityGroupAPI:
593 description: The full class name of the security API class
595 OvercloudComputeFlavor:
596 description: Use this flavor
599 - custom_constraint: nova.flavor
602 NeutronTenantNetwork: tenant
603 CeilometerApiNetwork: internal_api
604 MongoDbNetwork: internal_api
605 CinderApiNetwork: internal_api
606 CinderIscsiNetwork: storage
607 GlanceApiNetwork: storage
608 GlanceRegistryNetwork: internal_api
609 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
610 KeystonePublicApiNetwork: internal_api
611 NeutronApiNetwork: internal_api
612 HeatApiNetwork: internal_api
613 NovaApiNetwork: internal_api
614 NovaMetadataNetwork: internal_api
615 NovaVncProxyNetwork: internal_api
616 SwiftMgmtNetwork: storage_mgmt
617 SwiftProxyNetwork: storage
618 HorizonNetwork: internal_api
619 MemcachedNetwork: internal_api
620 RabbitMqNetwork: internal_api
621 RedisNetwork: internal_api
622 MysqlNetwork: internal_api
623 CephClusterNetwork: storage_mgmt
624 CephPublicNetwork: storage
625 ControllerHostnameResolveNetwork: internal_api
626 ComputeHostnameResolveNetwork: internal_api
627 BlockStorageHostnameResolveNetwork: internal_api
628 ObjectStorageHostnameResolveNetwork: internal_api
629 CephStorageHostnameResolveNetwork: storage
630 description: Mapping of service_name -> network name. Typically set
631 via parameter_defaults in the resource registry.
634 # Block storage specific parameters
639 default: overcloud-cinder-volume
641 OvercloudBlockStorageFlavor:
642 description: Flavor for block storage nodes to request when deploying.
645 - custom_constraint: nova.flavor
646 BlockStorageExtraConfig:
649 BlockStorage specific configuration to inject into the cluster. Same
650 structure as ExtraConfig.
653 # Object storage specific parameters
657 OvercloudSwiftStorageFlavor:
658 description: Flavor for Swift storage nodes to request when deploying.
661 - custom_constraint: nova.flavor
663 default: overcloud-swift-storage
665 ObjectStorageExtraConfig:
668 ObjectStorage specific configuration to inject into the cluster. Same
669 structure as ExtraConfig.
673 # Ceph storage specific parameters
678 default: overcloud-ceph-storage
680 OvercloudCephStorageFlavor:
682 description: Flavor for Ceph storage nodes to request when deploying.
685 - custom_constraint: nova.flavor
686 CephStorageExtraConfig:
689 CephStorage specific configuration to inject into the cluster. Same
690 structure as ExtraConfig.
693 # Hostname format for each role
694 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
695 # and %stackname% is replaced with OS::stack_name in the template below.
696 # If you want to use the heat generated names, pass '' (empty string).
697 ControllerHostnameFormat:
699 description: Format for Controller node hostnames
700 default: '%stackname%-controller-%index%'
701 ComputeHostnameFormat:
703 description: Format for Compute node hostnames
704 default: '%stackname%-novacompute-%index%'
705 BlockStorageHostnameFormat:
707 description: Format for BlockStorage node hostnames
708 default: '%stackname%-blockstorage-%index%'
709 ObjectStorageHostnameFormat:
711 description: Format for SwiftStorage node hostnames
712 default: '%stackname%-objectstorage-%index%'
713 CephStorageHostnameFormat:
715 description: Format for CephStorage node hostnames
716 default: '%stackname%-cephstorage-%index%'
718 # Identifiers to trigger tasks on nodes
723 Setting to a previously unused value during stack-update will trigger
724 package update on all nodes
729 Setting this to a unique value will re-run any deployment tasks which
730 perform configuration on a Heat stack-update.
732 # If you want to remove a specific node from a resource group, you can pass
733 # the node name or id as a <Group>RemovalPolicies parameter, for example:
734 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
735 ControllerRemovalPolicies:
739 List of resources to be removed from ControllerResourceGroup when
740 doing an update which requires removal of specific resources.
741 ComputeRemovalPolicies:
745 List of resources to be removed from ComputeResourceGroup when
746 doing an update which requires removal of specific resources.
747 BlockStorageRemovalPolicies:
751 List of resources to be removed from BlockStorageResourceGroup when
752 doing an update which requires removal of specific resources.
753 ObjectStorageRemovalPolicies:
757 List of resources to be removed from ObjectStorageResourceGroup when
758 doing an update which requires removal of specific resources.
759 CephStorageRemovalPolicies:
763 List of resources to be removed from CephStorageResourceGroup when
764 doing an update which requires removal of specific resources.
769 HeatAuthEncryptionKey:
770 type: OS::Heat::RandomString
773 type: OS::Heat::RandomString
778 type: OS::Heat::RandomString
783 type: OS::TripleO::EndpointMap
785 CloudName: {get_param: CloudName}
786 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
787 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
788 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
789 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
790 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
791 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
792 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
793 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
794 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
795 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
796 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
797 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
800 type: OS::Heat::ResourceGroup
803 count: {get_param: ControllerCount}
804 removal_policies: {get_param: ControllerRemovalPolicies}
806 type: OS::TripleO::Controller
808 AdminPassword: {get_param: AdminPassword}
809 AdminToken: {get_param: AdminToken}
810 CeilometerBackend: {get_param: CeilometerBackend}
811 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
812 CeilometerPassword: {get_param: CeilometerPassword}
813 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
814 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
815 CinderNfsServers: {get_param: CinderNfsServers}
816 CinderPassword: {get_param: CinderPassword}
817 CinderISCSIHelper: {get_param: CinderISCSIHelper}
818 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
819 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
820 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
821 CloudName: {get_param: CloudName}
822 CloudDomain: {get_param: CloudDomain}
823 ControlVirtualInterface: {get_param: ControlVirtualInterface}
824 ControllerExtraConfig: {get_param: controllerExtraConfig}
825 Debug: {get_param: Debug}
826 EnableFencing: {get_param: EnableFencing}
827 ManageFirewall: {get_param: ManageFirewall}
828 PurgeFirewallRules: {get_param: PurgeFirewallRules}
829 EnableGalera: {get_param: EnableGalera}
830 EnableCephStorage: {get_param: ControllerEnableCephStorage}
831 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
832 ExtraConfig: {get_param: ExtraConfig}
833 FencingConfig: {get_param: FencingConfig}
834 Flavor: {get_param: OvercloudControlFlavor}
835 GlancePassword: {get_param: GlancePassword}
836 GlanceBackend: {get_param: GlanceBackend}
837 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
838 GlanceLogFile: {get_param: GlanceLogFile}
839 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
840 HeatPassword: {get_param: HeatPassword}
841 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
842 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
843 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
844 HorizonSecret: {get_resource: HorizonSecret}
845 Image: {get_param: controllerImage}
846 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
847 KeyName: {get_param: KeyName}
848 KeystoneCACertificate: {get_param: KeystoneCACertificate}
849 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
850 KeystoneSigningKey: {get_param: KeystoneSigningKey}
851 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
852 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
853 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
854 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
855 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
856 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
857 MysqlMaxConnections: {get_param: MysqlMaxConnections}
858 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
859 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
860 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
861 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
862 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
863 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
864 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
865 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
866 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
867 NeutronPublicInterface: {get_param: NeutronPublicInterface}
868 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
869 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
870 NeutronPassword: {get_param: NeutronPassword}
871 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
872 NeutronDVR: {get_param: NeutronDVR}
873 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
874 NeutronAgentMode: {get_param: NeutronAgentMode}
875 NeutronCorePlugin: {get_param: NeutronCorePlugin}
876 NeutronServicePlugins: {get_param: NeutronServicePlugins}
877 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
878 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
879 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
880 NeutronL3HA: {get_param: NeutronL3HA}
881 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
882 NeutronNetworkType: {get_param: NeutronNetworkType}
883 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
884 NovaPassword: {get_param: NovaPassword}
885 NtpServer: {get_param: NtpServer}
886 MongoDbNoJournal: {get_param: MongoDbNoJournal}
887 PcsdPassword: {get_resource: PcsdPassword}
888 PublicVirtualInterface: {get_param: PublicVirtualInterface}
889 RabbitPassword: {get_param: RabbitPassword}
890 RabbitUserName: {get_param: RabbitUserName}
891 RabbitCookie: {get_attr: [RabbitCookie, value]}
892 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
893 RabbitClientPort: {get_param: RabbitClientPort}
894 RabbitFDLimit: {get_param: RabbitFDLimit}
895 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
896 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
897 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
898 SwiftHashSuffix: {get_param: SwiftHashSuffix}
899 SwiftMountCheck: {get_param: SwiftMountCheck}
900 SwiftMinPartHours: {get_param: SwiftMinPartHours}
901 SwiftPartPower: {get_param: SwiftPartPower}
902 SwiftPassword: {get_param: SwiftPassword}
903 SwiftReplicas: { get_param: SwiftReplicas}
904 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
905 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
906 ServiceNetMap: {get_param: ServiceNetMap}
907 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
908 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
909 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
910 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
911 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
912 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
913 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
914 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
915 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
916 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
917 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
918 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
919 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
920 UpdateIdentifier: {get_param: UpdateIdentifier}
923 template: {get_param: ControllerHostnameFormat}
925 '%stackname%': {get_param: 'OS::stack_name'}
929 type: OS::Heat::ResourceGroup
932 count: {get_param: ComputeCount}
933 removal_policies: {get_param: ComputeRemovalPolicies}
935 type: OS::TripleO::Compute
937 AdminPassword: {get_param: AdminPassword}
938 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
939 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
940 CeilometerPassword: {get_param: CeilometerPassword}
941 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
942 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
943 Debug: {get_param: Debug}
944 ExtraConfig: {get_param: ExtraConfig}
945 Flavor: {get_param: OvercloudComputeFlavor}
946 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
947 Image: {get_param: NovaImage}
948 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
949 KeyName: {get_param: KeyName}
950 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
951 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
952 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
953 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
954 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
955 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
956 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
957 NeutronNetworkType: {get_param: NeutronNetworkType}
958 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
959 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
960 NeutronPassword: {get_param: NeutronPassword}
961 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
962 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
963 NeutronDVR: {get_param: NeutronDVR}
964 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
965 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
966 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
967 NeutronCorePlugin: {get_param: NeutronCorePlugin}
968 NeutronServicePlugins: {get_param: NeutronServicePlugins}
969 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
970 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
971 # L3 HA and Failover is not relevant for Computes, should be removed
972 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
973 NeutronL3HA: {get_param: NeutronL3HA}
974 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
975 NovaComputeDriver: {get_param: NovaComputeDriver}
976 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
977 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
978 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
979 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
980 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
981 NovaPassword: {get_param: NovaPassword}
982 NovaOVSBridge: {get_param: NovaOVSBridge}
983 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
984 NtpServer: {get_param: NtpServer}
985 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
986 RabbitPassword: {get_param: RabbitPassword}
987 RabbitUserName: {get_param: RabbitUserName}
988 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
989 RabbitClientPort: {get_param: RabbitClientPort}
990 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
991 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
992 ServiceNetMap: {get_param: ServiceNetMap}
993 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
994 UpdateIdentifier: {get_param: UpdateIdentifier}
997 template: {get_param: ComputeHostnameFormat}
999 '%stackname%': {get_param: 'OS::stack_name'}
1000 CloudDomain: {get_param: CloudDomain}
1003 type: OS::Heat::ResourceGroup
1004 depends_on: Networks
1006 count: {get_param: BlockStorageCount}
1007 removal_policies: {get_param: BlockStorageRemovalPolicies}
1009 type: OS::TripleO::BlockStorage
1011 Debug: {get_param: Debug}
1012 Image: {get_param: BlockStorageImage}
1013 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1014 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1015 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1016 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1017 CinderPassword: {get_param: CinderPassword}
1018 KeyName: {get_param: KeyName}
1019 Flavor: {get_param: OvercloudBlockStorageFlavor}
1020 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1021 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1022 RabbitPassword: {get_param: RabbitPassword}
1023 RabbitUserName: {get_param: RabbitUserName}
1024 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1025 RabbitClientPort: {get_param: RabbitClientPort}
1026 NtpServer: {get_param: NtpServer}
1027 UpdateIdentifier: {get_param: UpdateIdentifier}
1030 template: {get_param: BlockStorageHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1035 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1036 ExtraConfig: {get_param: ExtraConfig}
1037 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1038 CloudDomain: {get_param: CloudDomain}
1041 type: OS::Heat::ResourceGroup
1042 depends_on: Networks
1044 count: {get_param: ObjectStorageCount}
1045 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1047 type: OS::TripleO::ObjectStorage
1049 KeyName: {get_param: KeyName}
1050 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1051 HashSuffix: {get_param: SwiftHashSuffix}
1052 MountCheck: {get_param: SwiftMountCheck}
1053 MinPartHours: {get_param: SwiftMinPartHours}
1054 PartPower: {get_param: SwiftPartPower}
1055 Image: {get_param: SwiftStorageImage}
1056 Replicas: { get_param: SwiftReplicas}
1057 NtpServer: {get_param: NtpServer}
1058 UpdateIdentifier: {get_param: UpdateIdentifier}
1059 ServiceNetMap: {get_param: ServiceNetMap}
1062 template: {get_param: ObjectStorageHostnameFormat}
1064 '%stackname%': {get_param: 'OS::stack_name'}
1065 ExtraConfig: {get_param: ExtraConfig}
1066 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1067 CloudDomain: {get_param: CloudDomain}
1070 type: OS::Heat::ResourceGroup
1071 depends_on: Networks
1073 count: {get_param: CephStorageCount}
1074 removal_policies: {get_param: CephStorageRemovalPolicies}
1076 type: OS::TripleO::CephStorage
1078 Image: {get_param: CephStorageImage}
1079 KeyName: {get_param: KeyName}
1080 Flavor: {get_param: OvercloudCephStorageFlavor}
1081 NtpServer: {get_param: NtpServer}
1082 ServiceNetMap: {get_param: ServiceNetMap}
1083 UpdateIdentifier: {get_param: UpdateIdentifier}
1086 template: {get_param: CephStorageHostnameFormat}
1088 '%stackname%': {get_param: 'OS::stack_name'}
1089 ExtraConfig: {get_param: ExtraConfig}
1090 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1091 CloudDomain: {get_param: CloudDomain}
1093 ControllerIpListMap:
1094 type: OS::TripleO::Network::Ports::NetIpListMap
1096 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1097 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1098 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1099 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1100 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1101 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1104 type: OS::TripleO::AllNodes::SoftwareConfig
1106 compute_hosts: {get_attr: [Compute, hosts_entry]}
1107 controller_hosts: {get_attr: [Controller, hosts_entry]}
1108 controller_ips: {get_attr: [Controller, ip_address]}
1109 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1110 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1111 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1112 controller_names: {get_attr: [Controller, hostname]}
1113 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1114 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1115 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1116 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1117 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1118 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1119 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1120 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1121 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1122 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1123 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1124 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1125 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1126 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1127 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1128 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1129 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1132 type: OS::Heat::RandomString
1136 MysqlClusterUniquePart:
1137 type: OS::Heat::RandomString
1142 type: OS::Heat::RandomString
1145 salt: {get_param: RabbitCookieSalt}
1147 # creates the network architecture
1149 type: OS::TripleO::Network
1152 type: OS::Neutron::Port
1153 depends_on: Networks
1155 name: control_virtual_ip
1156 network: {get_param: NeutronControlPlaneID}
1157 fixed_ips: {get_param: ControlFixedIPs}
1158 replacement_policy: AUTO
1161 depends_on: Networks
1162 type: OS::TripleO::Controller::Ports::RedisVipPort
1164 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1166 PortName: redis_virtual_ip
1167 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1169 # The public VIP is on the External net, falls back to ctlplane
1171 depends_on: Networks
1172 type: OS::TripleO::Controller::Ports::ExternalPort
1174 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1175 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1176 PortName: public_virtual_ip
1177 FixedIPs: {get_param: PublicVirtualFixedIPs}
1179 InternalApiVirtualIP:
1180 depends_on: Networks
1181 type: OS::TripleO::Controller::Ports::InternalApiPort
1183 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1184 PortName: internal_api_virtual_ip
1187 depends_on: Networks
1188 type: OS::TripleO::Controller::Ports::StoragePort
1190 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1191 PortName: storage_virtual_ip
1193 StorageMgmtVirtualIP:
1194 depends_on: Networks
1195 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1197 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1198 PortName: storage_management_virtual_ip
1201 type: OS::TripleO::Network::Ports::NetVipMap
1203 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1204 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1205 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1206 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1207 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1208 # No tenant VIP required
1211 type: OS::TripleO::VipConfig
1214 type: OS::Heat::StructuredDeployments
1216 config: {get_resource: VipConfig}
1217 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1219 # service VIP mappings
1220 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1221 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1222 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1223 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1224 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1225 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1226 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1227 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1228 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1229 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1230 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1231 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1232 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1233 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1234 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1235 # direct configuration of Virtual IPs for each network
1236 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1237 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1238 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1239 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1240 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1242 ControllerBootstrapNodeConfig:
1243 type: OS::TripleO::BootstrapNode::SoftwareConfig
1245 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1246 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1248 ControllerBootstrapNodeDeployment:
1249 type: OS::Heat::StructuredDeployments
1251 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1252 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1254 ControllerSwiftDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1258 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1260 ObjectStorageSwiftDeployment:
1261 type: OS::Heat::StructuredDeployments
1263 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1264 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1266 SwiftDevicesAndProxyConfig:
1267 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1269 controller_swift_devices: {get_attr: [Controller, swift_device]}
1270 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1271 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1273 ComputeCephDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 config: {get_attr: [CephClusterConfig, config_id]}
1277 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1279 ControllerCephDeployment:
1280 type: OS::Heat::StructuredDeployments
1282 config: {get_attr: [CephClusterConfig, config_id]}
1283 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1285 CephStorageCephDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 config: {get_attr: [CephClusterConfig, config_id]}
1289 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1292 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1294 ceph_storage_count: {get_param: CephStorageCount}
1295 ceph_fsid: {get_param: CephClusterFSID}
1296 ceph_mon_key: {get_param: CephMonKey}
1297 ceph_admin_key: {get_param: CephAdminKey}
1298 ceph_client_key: {get_param: CephClientKey}
1299 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1300 ceph_mon_names: {get_attr: [Controller, hostname]}
1301 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1303 ControllerClusterConfig:
1304 type: OS::Heat::StructuredConfig
1306 group: os-apply-config
1309 nodes: {get_attr: [Controller, corosync_node]}
1313 nodes: {get_attr: [Controller, hostname]}
1315 nodes: {get_attr: [Controller, corosync_node]}
1317 nodes: {get_attr: [Controller, corosync_node]}
1319 ControllerClusterDeployment:
1320 type: OS::Heat::StructuredDeployments
1322 config: {get_resource: ControllerClusterConfig}
1323 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1325 ControllerAllNodesDeployment:
1326 type: OS::Heat::StructuredDeployments
1328 config: {get_attr: [allNodesConfig, config_id]}
1329 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1331 ComputeAllNodesDeployment:
1332 type: OS::Heat::StructuredDeployments
1334 config: {get_attr: [allNodesConfig, config_id]}
1335 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1337 BlockStorageAllNodesDeployment:
1338 type: OS::Heat::StructuredDeployments
1340 config: {get_attr: [allNodesConfig, config_id]}
1341 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1343 ObjectStorageAllNodesDeployment:
1344 type: OS::Heat::StructuredDeployments
1346 config: {get_attr: [allNodesConfig, config_id]}
1347 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1349 CephStorageAllNodesDeployment:
1350 type: OS::Heat::StructuredDeployments
1352 config: {get_attr: [allNodesConfig, config_id]}
1353 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1355 # All Nodes Validations
1356 AllNodesValidationConfig:
1357 type: OS::TripleO::AllNodes::Validation
1362 - - {get_attr: [Controller, resource.0.external_ip_address]}
1363 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1364 - {get_attr: [Controller, resource.0.storage_ip_address]}
1365 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1366 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1368 ControllerAllNodesValidationDeployment:
1369 type: OS::Heat::StructuredDeployments
1370 depends_on: ControllerAllNodesDeployment
1372 config: {get_resource: AllNodesValidationConfig}
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 ComputeAllNodesValidationDeployment:
1376 type: OS::Heat::StructuredDeployments
1377 depends_on: ComputeAllNodesDeployment
1379 config: {get_resource: AllNodesValidationConfig}
1380 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1382 BlockStorageAllNodesValidationDeployment:
1383 type: OS::Heat::StructuredDeployments
1384 depends_on: BlockStorageAllNodesDeployment
1386 config: {get_resource: AllNodesValidationConfig}
1387 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1389 ObjectStorageAllNodesValidationDeployment:
1390 type: OS::Heat::StructuredDeployments
1391 depends_on: ObjectStorageAllNodesDeployment
1393 config: {get_resource: AllNodesValidationConfig}
1394 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1396 CephStorageAllNodesValidationDeployment:
1397 type: OS::Heat::StructuredDeployments
1398 depends_on: CephStorageAllNodesDeployment
1400 config: {get_resource: AllNodesValidationConfig}
1401 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1403 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1404 # the nested template may configure each role differently (or not at all)
1405 AllNodesExtraConfig:
1406 type: OS::TripleO::AllNodesExtraConfig
1408 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1410 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1411 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1412 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1414 # Nested stack deployment runs after all other controller deployments
1415 ControllerNodesPostDeployment:
1416 type: OS::TripleO::ControllerPostDeployment
1417 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1419 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1420 NodeConfigIdentifiers:
1421 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1422 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1423 deployment_identifier: {get_param: DeployIdentifier}
1425 ComputeNodesPostDeployment:
1426 type: OS::TripleO::ComputePostDeployment
1427 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1429 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1430 NodeConfigIdentifiers:
1431 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1432 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1433 deployment_identifier: {get_param: DeployIdentifier}
1435 ObjectStorageNodesPostDeployment:
1436 type: OS::TripleO::ObjectStoragePostDeployment
1437 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1439 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1440 NodeConfigIdentifiers:
1441 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1442 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1443 deployment_identifier: {get_param: DeployIdentifier}
1445 BlockStorageNodesPostDeployment:
1446 type: OS::TripleO::BlockStoragePostDeployment
1447 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1449 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1450 NodeConfigIdentifiers:
1451 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1452 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1453 deployment_identifier: {get_param: DeployIdentifier}
1455 CephStorageNodesPostDeployment:
1456 type: OS::TripleO::CephStoragePostDeployment
1457 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1459 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1460 NodeConfigIdentifiers:
1461 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1462 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1463 deployment_identifier: {get_param: DeployIdentifier}
1467 description: URL for the Overcloud Keystone service
1468 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1470 description: Keystone Admin VIP endpoint
1471 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1473 description: Controller VIP for public API endpoints
1474 value: {get_attr: [VipMap, net_ip_map, external]}
1475 CeilometerInternalVip:
1476 description: VIP for Ceilometer API internal endpoint
1477 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1479 description: VIP for Cinder API internal endpoint
1480 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1482 description: VIP for Glance API internal endpoint
1483 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1485 description: VIP for Heat API internal endpoint
1486 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1487 KeystoneInternalVip:
1488 description: VIP for Keystone API internal endpoint
1489 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1491 description: VIP for Neutron API internal endpoint
1492 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1494 description: VIP for Nova API internal endpoint
1495 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1497 description: VIP for Swift Proxy internal endpoint
1498 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}