> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/self-managed-enterprise-edition/use-self-managed-enterprise-edition/smp-installationupgrade/operator-installation/prerequisites/storage-classes.md).

# Storage classes

The Harness Platform requires dynamic volume provisioning via a Kubernetes StorageClass. The correct storage class depends on your cluster provider.

### Storage classes by platform <a href="#storage-classes-by-platform" id="storage-classes-by-platform"></a>

Use the recommended storage class for your provider. Each provider names its classes differently, so confirm the exact name against the provider documentation in the last column.

| Platform      | Recommended StorageClass               | Documentation                                                                                                          |
| ------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **AWS EKS**   | `gp2` or `gp3`                         | [EKS Storage Classes](https://docs.aws.amazon.com/eks/latest/userguide/create-storage-class.html)                      |
| **Azure AKS** | `managed-csi` or `managed-csi-premium` | [AKS Storage Classes](https://learn.microsoft.com/en-us/azure/aks/concepts-storage#storage-classes)                    |
| **GKE**       | `standard-rwo` or `premium-rwo`        | [GKE Storage Classes](https://docs.cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes#storageclasses) |

### Verify available storage classes <a href="#verify-available-storage-classes" id="verify-available-storage-classes"></a>

Run the following command to list the storage classes your cluster already provides.

```bash
kubectl get storageclass
```

### Set the storage class <a href="#set-the-storage-class" id="set-the-storage-class"></a>

Set the storage class with whichever method you use to install.

{% tabs %}
{% tab title="helm" %}
Set the storage class in `values.yaml`:

```yaml
cluster:
  tfi:
    storageClass: gp3
```

{% endtab %}

{% tab title="clustermgr" %}
Pass the storage class during installation:

```bash
--pi-set cluster.tfi.storageClass=gp3
```

Or use the `-i` shorthand:

```bash
-i storageClass=gp3
```

{% endtab %}
{% endtabs %}

The operator passes this value to all platform services that require persistent storage.
