Overall Status
Volume snapshotting has been a Beta feature since Kubernetes v1.17.
Supported CSI Spec Versions
1.0.0, 1.1.0, 1.2.0
Minimum Kubernetes version
1.17
Recommended Kubernetes version
1.17
Container
docker pull k8s.gcr.io/sig-storage/snapshot-controller:v3.0.0
docker pull k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.0
docker pull k8s.gcr.io/sig-storage/snapshot-validation-webhook:v3.0.0
Breaking Changes
-
Update volume snapshot APIs and client library to v3. Volume snapshot APIs and client library are in a separate sub-module:
github.com/kubernetes-csi/external-snapshotter/client/v3
. (#373, @xing-yang) -
Added Go Module for APIs and Client. Volume snapshot APIs and client library are now in a separate sub-module. (#307, @Kartik494)
-
With kubernetes 1.18 release of client-go, signatures on methods in generated clientsets, dynamic, metadata, and scale clients have been modified to accept context.Context as a first argument. Signatures of Create, Update, and Patch methods have been updated to accept CreateOptions, UpdateOptions and PatchOptions respectively. Signatures of Delete and DeleteCollection methods now accept DeleteOptions by value instead of by reference. These changes are now accommodated with this PR and client-go and dependencies are updated to v1.18.0 (#286, @humblec)
New Features
-
The validation for volume snapshot objects (VolumeSnapshot and VolumeSnapshotContent) is getting more strict. Due to backwards compatibility this change will occur over multiple releases. The following key changes are highlighted.
- As part of the first phase of the multi-phased release process, a validating
webhook server has been added. This server will perform additional validation (strict) which was not done during the beta release of volume snapshots. It will prevent the cluster from gaining (via create or update) invalid objects. - The controller will label objects which fail the additional validation. The label "snapshot.storage.kubernetes.io/invalid-snapshot-content-resource" will be added to invalid VolumeSnapshotContent objects. The label "snapshot.storage.kubernetes.io/invalid-snapshot-resource" will be added to invalide VolumeSnapshot objects.
The combination of 1 and 2 will allow cluster admins to stop the increase of invalid objects, and provide a way to easily list all objects which currently fail the strict validation. It is the kubernets distribution and cluster admin's responsibility to install the webhook and to ensure all the invalid objects in the cluster have been deleted or fixed. See the KEP at https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/177-volume-snapshot/tighten-validation-webhook-crd.md (#353, @AndiLi99)
- As part of the first phase of the multi-phased release process, a validating
Snapshot Controller
- With the addition of the validating webhook server, the snapshot controller is modified to label objects which fail the additional validation. The label "snapshot.storage.kubernetes.io/invalid-snapshot-content-resource" will be added to invalid VolumeSnapshotContent objects. The label "snapshot.storage.kubernetes.io/invalid-snapshot-resource" will be added to invalide VolumeSnapshot objects. (#353, @AndiLi99)
- Snapshot APIs and Client are now in a separate go package. The snapshot controller is modified to use the new package. (#307, @Kartik494)
CSI External-Snapshotter Sidecar
- Snapshot APIs and Client are now in a separate go package. The CSI external-snapshotter sidecar is modified to use the new package. (#307, @Kartik494)
Full Changelog
https://github.com/kubernetes-csi/external-snapshotter/blob/v3.0.0/CHANGELOG/CHANGELOG-3.0.md