Skip to content

[Deprecation Announcement] volume-modifier-for-k8s #2435

Open
@torredil

Description

@torredil

Summary

Effective immediately, the volume-modifier-for-k8s project (which enables EBS volume modifications in Kubernetes via annotations) is deprecated in favor of the native Kubernetes VolumeAttributesClass API.

No new features will be added to volume-modifier-for-k8s. Security and bug fixes will still be released until at least 6 months after Kubernetes v1.34 is GA (approximately Q1 2026, exact date is subject to change).

Background

The volume-modifier-for-k8s project was originally created to provide a solution for modifying EBS volume parameters in Kubernetes before a native solution existed. With the introduction of the VolumeAttributesClass API in Kubernetes, users now have a native, standardized way to manage these modifications.

Compatibility and Support

  • AWS EBS CSI Driver versions v1.35.0 and later fully support modifying volumes using VolumeAttributesClass for all properties previously supported via volume-modifier-for-k8s.
  • VolumeAttributesClass support is available in Kubernetes v1.31+ and is enabled by default on Amazon EKS clusters running this version.
  • Users on older Kubernetes versions may continue using volume-modifier-for-k8s.

Migration Guidance

We strongly encourage all users of volume-modifier-for-k8s to begin transitioning to the official Kubernetes solution. Here's a simple migration example:

Before (using volume-modifier-for-k8s):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: example-pvc
  annotations:
    ebs.csi.aws.com/volumeType: "gp3"
    ebs.csi.aws.com/iops: "4000"

After (using VolumeAttributesClass):

apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass
metadata:
  name: example-vac
driverName: ebs.csi.aws.com
parameters:
  type: gp3
  iops: "4000"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: example-pvc
spec:
  volumeAttributesClassName: example-vac

Additional Resources

Support

Please reach out directly on this issue if you have questions or require assistance during this transition.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions