---
id: "k8s-storage-class"
type: "component"
kind: "block-storage"
provider: "k8s"
category: "data"
aliases: "sc"
docs: "https://kubernetes.io/docs/concepts/storage/storage-classes/"
url: "https://localhost:3000/catalogue/components/k8s-storage-class"
---

# StorageClass

Names a provisioner and its parameters so PersistentVolumeClaims can be satisfied dynamically.

| | |
|---|---|
| Provider | [k8s](https://localhost:3000/catalogue?provider=k8s) |
| Kind | [Block storage volume](https://localhost:3000/catalogue/kinds/block-storage) |
| Category | Data |
| Official docs | [https://kubernetes.io/docs/concepts/storage/storage-classes/](https://kubernetes.io/docs/concepts/storage/storage-classes/) |
| Also known as | sc |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `allowVolumeExpansion` | boolean | — | no | false | inherited |
| `encryptionAtRest` | boolean | — | no | — | inherited |
| `iops` | integer | — | no | — | inherited |
| `isDefaultClass` | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | false | **false** |
| `mediaType` | enum | `ssd`, `hdd` | no | — | inherited |
| `reclaimPolicy` | enum | `delete`, `retain` | no | "delete" | inherited |
| `redundancy` | enum | `local`, `zonal`, `regional` | no | — | inherited |
| `sizeGib` | integer | — | no | — | inherited |
| `snapshots` | boolean | — | no | false | inherited |
| `volumeBindingMode` | enum | `immediate`, `wait-for-first-consumer` | no | "immediate" | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 28

- [Elastic Block Storage](https://localhost:3000/catalogue/components/alibaba-ebs.md) `alibaba-ebs` — alibabacloud
- [Amazon EBS](https://localhost:3000/catalogue/components/aws-ebs.md) `aws-ebs` — aws
- [EC2 instance store](https://localhost:3000/catalogue/components/aws-instance-store.md) `aws-instance-store` — aws
- [Azure Container Storage](https://localhost:3000/catalogue/components/azure-container-storage.md) `azure-container-storage` — azure
- [Azure Elastic SAN](https://localhost:3000/catalogue/components/azure-elastic-san.md) `azure-elastic-san` — azure
- [Azure Disk Storage](https://localhost:3000/catalogue/components/azure-managed-disk.md) `azure-managed-disk` — azure
- [Generic block storage volume](https://localhost:3000/catalogue/components/block-storage.md) `block-storage` — default
- [Block volume](https://localhost:3000/catalogue/components/block-volume.md) `block-volume` — default
- [Ceph RBD](https://localhost:3000/catalogue/components/ceph-rbd.md) `ceph-rbd` — default
- [Longhorn](https://localhost:3000/catalogue/components/longhorn.md) `longhorn` — default
- [OpenEBS](https://localhost:3000/catalogue/components/openebs.md) `openebs` — default
- [OpenZFS](https://localhost:3000/catalogue/components/openzfs.md) `openzfs` — default
- [Portworx](https://localhost:3000/catalogue/components/portworx.md) `portworx` — default
- [Volumes Block Storage](https://localhost:3000/catalogue/components/digitalocean-volumes.md) `digitalocean-volumes` — digitalocean
- [Hyperdisk](https://localhost:3000/catalogue/components/google-hyperdisk.md) `google-hyperdisk` — gcp
- [Local SSD](https://localhost:3000/catalogue/components/google-local-ssd.md) `google-local-ssd` — gcp
- [Persistent Disk](https://localhost:3000/catalogue/components/google-persistent-disk.md) `google-persistent-disk` — gcp
- [IBM Cloud Block Storage for VPC](https://localhost:3000/catalogue/components/ibm-block-storage.md) `ibm-block-storage` — ibm
- [Block Storage for Classic](https://localhost:3000/catalogue/components/ibm-block-storage-classic.md) `ibm-block-storage-classic` — ibm
- [IBM Storage Ceph as a Service](https://localhost:3000/catalogue/components/ibm-storage-ceph.md) `ibm-storage-ceph` — ibm
- [PersistentVolume](https://localhost:3000/catalogue/components/k8s-persistent-volume.md) `k8s-persistent-volume` — k8s
- [PersistentVolumeClaim](https://localhost:3000/catalogue/components/k8s-persistent-volume-claim.md) `k8s-persistent-volume-claim` — k8s
- [Volume](https://localhost:3000/catalogue/components/k8s-volume.md) `k8s-volume` — k8s
- [OCI Block Volume](https://localhost:3000/catalogue/components/oci-block-volume.md) `oci-block-volume` — oci
- [OCI Boot Volume](https://localhost:3000/catalogue/components/oci-boot-volume.md) `oci-boot-volume` — oci
- [OCI Local NVMe Storage](https://localhost:3000/catalogue/components/oci-local-nvme.md) `oci-local-nvme` — oci
- [OpenStack Cinder](https://localhost:3000/catalogue/components/openstack-cinder.md) `openstack-cinder` — openstack
- [Block Storage Unit (BSU)](https://localhost:3000/catalogue/components/outscale-bsu.md) `outscale-bsu` — outscale

## Use it in a design

```yaml
nodes:
  - { id: "k8s-storage-class", component: "k8s-storage-class" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Kubernetes StorageClass: names a provisioner and its parameters so PersistentVolumeClaims can be
# satisfied dynamically. Per "Storage Classes" reclaimPolicy defaults to Delete, so a dynamically
# provisioned volume is destroyed with its claim; volumeBindingMode defaults to Immediate, binding
# and provisioning as soon as the claim is created rather than waiting for a consuming Pod;
# allowVolumeExpansion is unset, so claims cannot be resized; and a class is only the cluster
# default when annotated storageclass.kubernetes.io/is-default-class: "true".
schemaVersion: "1"
type: "component"
id: "k8s-storage-class"
kind: "block-storage"
provider: "k8s"
docs: "https://kubernetes.io/docs/concepts/storage/storage-classes/"
aliases: ["sc"]
defaults:
  managed: false
properties:
  reclaimPolicy:
    type: "enum"
    values: ["delete", "retain"]
    default: "delete"
  volumeBindingMode:
    type: "enum"
    values: ["immediate", "wait-for-first-consumer"]
    default: "immediate"
  allowVolumeExpansion:
    type: "boolean"
    default: false
  isDefaultClass:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/k8s-storage-class
