Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this is not volume-attributes-class.md?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

file renamed as suggested

- [Deploying a CSI Driver on Kubernetes](deploying.md)
- [Example](example.md)
- [Driver Testing](testing-drivers.md)
Expand Down
25 changes: 25 additions & 0 deletions book/src/volume-attributes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Volume Attributes Classes

## Status

Status | Min K8s Version | Max K8s Version | external-provisioner Version
-------|-----------------|-----------------|-----------------------------

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should list both external-provisioner Version and external-resizer Version?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

External-resizer version added

Alpha | 1.29 | - | 5.0.2+

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be a min external-provisioner version that is supporting the feature

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sunnylovestiramisu to make sure I get this right, you want 1st version that introduced volume attributes ; right ?

So in alpha it is v4.0.0 & for beta v5.1.0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated now

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 `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.