VolumeClass¶
The VolumeClass
in Ironcore
is a Kubernetes-like abstraction that defines a set of parameters or configurations for provisioning storage resources through the Ironcore Runtime Interface (IRI)
. It is conceptually similar to Kubernetes StorageClass
, enabling users to specify the desired properties for an Ironcore Volume
resource creation.
Example VolumeClass Resource¶
An example of how to define a VolumeClass
resource in Ironcore
apiVersion: storage.ironcore.dev/v1alpha1
kind: VolumeClass
metadata:
name: volumeclass-sample
capabilities:
tps: 100Mi
iops: 100
Key Fields:¶
capabilities
: Capabilities has tps and iops fields that need to be specified, it's a mandatory field,-
tps
(string
): Thetps
represents transactions per second. -
iops
(string
):iops
is the number of input/output operations a storage device can complete per second.
Usage¶
-
VolumeClass Definition: Create a
VolumeClass
to set storage properties based on resource capabilities. -
Associate with Volume: Link a
VolumeClass
to aVolume
using a reference in the Volume resource. -
Dynamic configuration: Update the
VolumeClass
to modify storage properties for all its Volumes.
Reconciliation Process:¶
-
Fetches & Validates: Retrieves the VolumeClass from the cluster and checks if it exists.
-
Synchronizes State: Keeps the VolumeClass resource updated with its current state and dependencies.
-
Monitors Dependencies: Watches for changes in dependent Volume resources and reacts accordingly.
-
Handles Errors: Requeues the reconciliation to handle errors and ensure successful completion.
-
Handles Deletion: Cleans up references, removes the finalizer, and ensures no dependent Volumes exist before deletion.