Skip to content

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

@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 April 1, 2026.

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

    lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions