|
| 1 | +--- |
| 2 | +layout: blog |
| 3 | +title: "Kubernetes v1.34: Moving Volume Group Snapshots to v1beta2" |
| 4 | +draft: true |
| 5 | +date: 2025-XX-XX |
| 6 | +slug: kubernetes-v1-34-volume-group-snapshot-beta-2 |
| 7 | +author: > |
| 8 | + Xing Yang (VMware by Broadcom) |
| 9 | +--- |
| 10 | + |
| 11 | +Volume group snapshots were [introduced](/blog/2023/05/08/kubernetes-1-27-volume-group-snapshot-alpha/) |
| 12 | +as an Alpha feature with the Kubernetes 1.27 release and moved to [Beta](/blog/2024/12/18/kubernetes-1-32-volume-group-snapshot-beta/) in the Kubernetes 1.32 release. |
| 13 | +The recent release of Kubernetes v1.34 moved that support to a second beta. |
| 14 | +The support for volume group snapshots relies on a set of |
| 15 | +[extension APIs for group snapshots](https://kubernetes-csi.github.io/docs/group-snapshot-restore-feature.html#volume-group-snapshot-apis). |
| 16 | +These APIs allow users to take crash consistent snapshots for a set of volumes. |
| 17 | +Behind the scenes, Kubernetes uses a label selector to group multiple PersistentVolumeClaims |
| 18 | +for snapshotting. |
| 19 | +A key aim is to allow you restore that set of snapshots to new volumes and |
| 20 | +recover your workload based on a crash consistent recovery point. |
| 21 | + |
| 22 | +This new feature is only supported for [CSI](https://kubernetes-csi.github.io/docs/) volume drivers. |
| 23 | + |
| 24 | +## What's new in Beta 2? |
| 25 | + |
| 26 | +While testing the beta version, we encountered an [issue](https://github.com/kubernetes-csi/external-snapshotter/issues/1271) where the `restoreSize` field is not set for individual VolumeSnapshotContents and VolumeSnapshots if CSI driver does not implement the ListSnapshots RPC call. |
| 27 | +We evaluated various options [here](https://docs.google.com/document/d/1LLBSHcnlLTaP6ZKjugtSGQHH2LGZPndyfnNqR1YvzS4/edit?tab=t.0) and decided to make this change releasing a new beta for the API. |
| 28 | + |
| 29 | +Specifically, a VolumeSnapshotInfo struct is added in v1beta2, it contains information for an individual volume snapshot that is a member of a volume group snapshot. |
| 30 | +VolumeSnapshotInfoList, a list of VolumeSnapshotInfo, is added to VolumeGroupSnapshotContentStatus, replacing VolumeSnapshotHandlePairList. |
| 31 | +VolumeSnapshotInfoList is a list of snapshot information returned by the CSI driver to identify snapshots on the storage system. |
| 32 | +VolumeSnapshotInfoList is populated by the csi-snapshotter sidecar based on the CSI CreateVolumeGroupSnapshotResponse returned by the CSI driver's CreateVolumeGroupSnapshot call. |
| 33 | + |
| 34 | +The existing v1beta1 API objects will be converted to the new v1beta2 API objects by a conversion webhook. |
| 35 | + |
| 36 | +## What’s next? |
| 37 | + |
| 38 | +Depending on feedback and adoption, the Kubernetes project plans to push the volume |
| 39 | +group snapshot implementation to general availability (GA) in a future release. |
| 40 | + |
| 41 | +## How can I learn more? |
| 42 | + |
| 43 | +- The [design spec](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3476-volume-group-snapshot) |
| 44 | + for the volume group snapshot feature. |
| 45 | +- The [code repository](https://github.com/kubernetes-csi/external-snapshotter) for volume group |
| 46 | + snapshot APIs and controller. |
| 47 | +- CSI [documentation](https://kubernetes-csi.github.io/docs/) on the group snapshot feature. |
| 48 | + |
| 49 | +## How do I get involved? |
| 50 | + |
| 51 | +This project, like all of Kubernetes, is the result of hard work by many contributors |
| 52 | +from diverse backgrounds working together. On behalf of SIG Storage, I would like to |
| 53 | +offer a huge thank you to the contributors who stepped up these last few quarters |
| 54 | +to help the project reach beta: |
| 55 | + |
| 56 | +* Ben Swartzlander ([bswartz](https://github.com/bswartz)) |
| 57 | +* Hemant Kumar ([gnufied](https://github.com/gnufied)) |
| 58 | +* Jan Šafránek ([jsafrane](https://github.com/jsafrane)) |
| 59 | +* Madhu Rajanna ([Madhu-1](https://github.com/Madhu-1)) |
| 60 | +* Michelle Au ([msau42](https://github.com/msau42)) |
| 61 | +* Niels de Vos ([nixpanic](https://github.com/nixpanic)) |
| 62 | +* Leonardo Cecchi ([leonardoce](https://github.com/leonardoce)) |
| 63 | +* Saad Ali ([saad-ali](https://github.com/saad-ali)) |
| 64 | +* Xing Yang ([xing-yang](https://github.com/xing-yang)) |
| 65 | +* Yati Padia ([yati1998](https://github.com/yati1998)) |
| 66 | + |
| 67 | +For those interested in getting involved with the design and development of CSI or |
| 68 | +any part of the Kubernetes Storage system, join the |
| 69 | +[Kubernetes Storage Special Interest Group](https://github.com/kubernetes/community/tree/master/sig-storage) (SIG). |
| 70 | +We always welcome new contributors. |
| 71 | + |
| 72 | +We also hold regular [Data Protection Working Group meetings](https://github.com/kubernetes/community/tree/master/wg-data-protection). |
| 73 | +New attendees are welcome to join our discussions. |
0 commit comments