Kubernetes Changed Block Tracking API - Beta Differences
Changed Block Tracking (CBT) support for CSI drivers
shipped as Alpha in
September 2025. With the March v1.0.0 release of the
external-snapshot-metadata
project, the feature moved to Beta.
If you aren't yet familiar with changed block tracking for storage in
Kubernetes, the
Alpha announcement covers
the motivation, the three primary components (the CSI SnapshotMetadata
gRPC service, the SnapshotMetadataService CRD, and the
external-snapshot-metadata sidecar), and a walkthrough of how to use the
API. This post focuses on what is different in Beta.
What's new in Beta
The main change in this release is the promotion of the
SnapshotMetadataService CRD from v1alpha1 to v1beta1. The CRD used to
advertise a driver's metadata service now serves
cbt.storage.k8s.io/v1beta1. The schema itself is unchanged, but this
release removes v1alpha1 (rather than serving it alongside the new version).
If you are upgrading from Alpha, you need to:
- Re-apply the CRD definition shipped with
v1.0.0. - Update SnapshotMetadataService manifests to use
apiVersion: cbt.storage.k8s.io/v1beta1. - Update any client or controller code that talks to the CRD.
This is a one-time change. There is no automatic conversion between the two versions.
Compatibility
- Minimum Kubernetes version: 1.33
- CSI spec: 1.10 or newer
- Container image:
registry.k8s.io/sig-storage/csi-snapshot-metadata:v1.0.0
Trying it out
The Getting Started section in the Alpha blog still applies. In short:
- Make sure your CSI driver supports volume snapshots and ships the
external-snapshot-metadatasidecar. - Install the SnapshotMetadataService CRD (the
v1beta1definition from thev1.0.0release). - Create a SnapshotMetadataService resource for your driver.
- Use a client —
snapshot-metadata-lister, or your own implementation — to callGetMetadataAllocatedandGetMetadataDelta.
If you want to see the full flow end-to-end, the hostpath driver example is a good starting point.
What's next?
The focus for the rest of the Beta cycle is wider CSI driver adoption and operational feedback before the feature moves towards GA. If you maintain a CSI driver, this is a good time to evaluate adding support. If you are building a backup application on top of the API, feedback on the streaming clients and the iterator package is very welcome.
Where can I learn more?
- The CSI developer documentation for snapshot metadata.
- KEP-3314.
- The external-snapshot-metadata repository.
- The gRPC schema.
- The snapshot-metadata-lister example client.
How do I get involved?
This work is the result of contributions from many people across SIG Storage. A big thank you to everyone who helped review, code, and test the feature through Alpha and into Beta:
- Ben Swartzlander (bswartz)
- Carl Braganza (carlbraganza)
- Daniil Fedotov (hairyhum)
- Ivan Sim (ihcsim)
- Nikhil Ladha (Nikhil-Ladha)
- Praveen M (iPraveenParihar)
- Rakshith R (Rakshith-R)
- Xing Yang (xing-yang)
If you would like to get involved with CSI or storage in Kubernetes, SIG Storage is the place to start. The Data Protection Working Group also holds regular meetings, and new attendees are always welcome.