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:

  1. Make sure your CSI driver supports volume snapshots and ships the external-snapshot-metadata sidecar.
  2. Install the SnapshotMetadataService CRD (the v1beta1 definition from the v1.0.0 release).
  3. Create a SnapshotMetadataService resource for your driver.
  4. Use a client — snapshot-metadata-lister, or your own implementation — to call GetMetadataAllocated and GetMetadataDelta.

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?

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:

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.

Last modified July 07, 2026 at 9:44 AM PST: Address review comments on CBT beta blog (e64664bed9)