Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/kubernetes_apis/builtin/storage.k8s.io@v1/structs.ts>CSIStorageCapacity

REST focused Typescript classes for Kubernetes APIs, and tools for generating API interfaces
Go to Latest
interface CSIStorageCapacity
import { type CSIStorageCapacity } from "https://deno.land/x/kubernetes_apis@v0.5.0/builtin/storage.k8s.io@v1/structs.ts";

CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.

For example this can express things like: - StorageClass "standard" has "1234 GiB" available in "topology.kubernetes.io/zone=us-east1" - StorageClass "localssd" has "10 GiB" available in "kubernetes.io/hostname=knode-abc123"

The following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero

The producer of these objects can decide which approach is more suitable.

They are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.

Properties

optional
apiVersion: "storage.k8s.io/v1"
optional
kind: "CSIStorageCapacity"
optional
capacity: c.Quantity | null
optional
maximumVolumeSize: c.Quantity | null
optional
metadata: MetaV1.ObjectMeta | null
optional
nodeTopology: MetaV1.LabelSelector | null
storageClassName: string