From 809121125e4ff7021e356a915ce63c7affeed8f1 Mon Sep 17 00:00:00 2001 From: coulof Date: Tue, 11 Mar 2025 10:08:25 +0100 Subject: [PATCH 1/4] Add documentation for VolumeAttributesClass --- book/src/SUMMARY.md | 1 + book/src/volume-attributes.md | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 book/src/volume-attributes.md diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 3f87c22a..99a84aba 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -46,6 +46,7 @@ - [Volume Mode Conversion](prevent-volume-mode-conversion.md) - [Cross-Namespace Data Sources](cross-namespace-data-sources.md) - [Changed Block Tracking](changed-block-tracking.md) + - [Volume Attributes Class](volume-attributes.md) - [Deploying a CSI Driver on Kubernetes](deploying.md) - [Example](example.md) - [Driver Testing](testing-drivers.md) diff --git a/book/src/volume-attributes.md b/book/src/volume-attributes.md new file mode 100644 index 00000000..75813bac --- /dev/null +++ b/book/src/volume-attributes.md @@ -0,0 +1,25 @@ +# Volume Attributes Classes + +## Status + +Status | Min K8s Version | Max K8s Version | external-provisioner Version +-------|-----------------|-----------------|----------------------------- +Alpha | 1.29 | - | 5.0.2+ +Beta | 1.31 | - | 5.1.0+ + +## Overview +A `VolumeAttributesClass` is a cluster-scoped resource that can be used to control and change the settings of a `PersistentVolume`. +Its primary use is to adjust the class of service for a volume (e.g., bronze, silver, gold) to meet different performance, quality-of-service, or resilience requirements. + +> See the [Kubernetes Enhancement Proposal](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/3751-volume-attributes-class/README.md) +> for more details on the background, design and discussions. + +## Usage +This feature is enabled by default in the [external-provisioner](https://github.com/kubernetes-csi/external-provisioner/?tab=readme-ov-file#feature-status). + +To take advantage of `VolumeAttibutesClass` feature: +* The CSI driver must implement the `MODIFY_VOLUME` capability. +* The Kubernetes administrator must create the `VolumeAttributesClass` with the relevant `parameters` for the `driverName` +* The user can then patch the `PersistentVolume` under `spec.volumeAttributesClassName` to select or update the settings he needs for the volume. + +> For more information about how to use the feature, visit the [Kubernetes blog](https://kubernetes.io/blog/2024/08/15/kubernetes-1-31-volume-attributes-class/) page. From a27693d314b9c9d757c1ac8e72104bcf1672bbe7 Mon Sep 17 00:00:00 2001 From: coulof Date: Wed, 12 Mar 2025 09:39:52 +0100 Subject: [PATCH 2/4] Typo, parameters are on PVC --- book/src/volume-attributes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/src/volume-attributes.md b/book/src/volume-attributes.md index 75813bac..d5c6514b 100644 --- a/book/src/volume-attributes.md +++ b/book/src/volume-attributes.md @@ -20,6 +20,6 @@ This feature is enabled by default in the [external-provisioner](https://github. To take advantage of `VolumeAttibutesClass` feature: * The CSI driver must implement the `MODIFY_VOLUME` capability. * The Kubernetes administrator must create the `VolumeAttributesClass` with the relevant `parameters` for the `driverName` -* The user can then patch the `PersistentVolume` under `spec.volumeAttributesClassName` to select or update the settings he needs for the volume. +* The user can then patch the `PersistentVolumeClaim` under `spec.volumeAttributesClassName` to select or update the settings he needs for the volume. > For more information about how to use the feature, visit the [Kubernetes blog](https://kubernetes.io/blog/2024/08/15/kubernetes-1-31-volume-attributes-class/) page. From 8cbd09971b5508bce981587a622440250efbf87b Mon Sep 17 00:00:00 2001 From: coulof Date: Thu, 13 Mar 2025 16:00:53 +0100 Subject: [PATCH 3/4] Set the 1st introduced version --- book/src/volume-attributes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/src/volume-attributes.md b/book/src/volume-attributes.md index d5c6514b..adacd903 100644 --- a/book/src/volume-attributes.md +++ b/book/src/volume-attributes.md @@ -4,7 +4,7 @@ Status | Min K8s Version | Max K8s Version | external-provisioner Version -------|-----------------|-----------------|----------------------------- -Alpha | 1.29 | - | 5.0.2+ +Alpha | 1.29 | - | 4.0.0+ Beta | 1.31 | - | 5.1.0+ ## Overview From 9df46680aa0af7521a89d1e885b5750b45f3defe Mon Sep 17 00:00:00 2001 From: coulof Date: Mon, 24 Mar 2025 10:47:50 +0100 Subject: [PATCH 4/4] add external-resizer, rename file --- book/src/SUMMARY.md | 2 +- .../{volume-attributes.md => volume-attributes-class.md} | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename book/src/{volume-attributes.md => volume-attributes-class.md} (87%) diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 99a84aba..31cbd0b1 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -46,7 +46,7 @@ - [Volume Mode Conversion](prevent-volume-mode-conversion.md) - [Cross-Namespace Data Sources](cross-namespace-data-sources.md) - [Changed Block Tracking](changed-block-tracking.md) - - [Volume Attributes Class](volume-attributes.md) + - [Volume Attributes Class](volume-attributes-class.md) - [Deploying a CSI Driver on Kubernetes](deploying.md) - [Example](example.md) - [Driver Testing](testing-drivers.md) diff --git a/book/src/volume-attributes.md b/book/src/volume-attributes-class.md similarity index 87% rename from book/src/volume-attributes.md rename to book/src/volume-attributes-class.md index adacd903..3d5fa573 100644 --- a/book/src/volume-attributes.md +++ b/book/src/volume-attributes-class.md @@ -2,10 +2,10 @@ ## Status -Status | Min K8s Version | Max K8s Version | external-provisioner Version --------|-----------------|-----------------|----------------------------- -Alpha | 1.29 | - | 4.0.0+ -Beta | 1.31 | - | 5.1.0+ +Status | Min K8s Version | Max K8s Version | external-provisioner | external-resizer +-------|-----------------|-----------------|-----------------------|------------------------- +Alpha | 1.29 | - | v4.0.0 | v1.10.0 +Beta | 1.31 | - | v5.1.0 | v1.12.0 ## Overview A `VolumeAttributesClass` is a cluster-scoped resource that can be used to control and change the settings of a `PersistentVolume`.