Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STOR-1700: Rebase external-snapshotter to v7.0.0 to get VolumeGroupSnapshot #139

Merged
merged 112 commits into from Feb 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
8ac2e79
fix: update CRD yaml files to include object meta
bjschafer Jun 8, 2023
7308dc4
doc: update crd generation to keep metadata
bjschafer Jun 8, 2023
f83e81a
chore: Adopt kubernetes recommand label
mowangdk Jun 8, 2023
0ebf9f5
Bump google.golang.org/grpc from 1.58.0 to 1.58.1
dependabot[bot] Sep 15, 2023
76bfb62
Merge pull request #910 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Sep 15, 2023
28b91e6
Update to csi-lib-utils@v0.15.0
jsafrane Sep 15, 2023
4c45d58
Merge pull request #909 from jsafrane/utils-0.15
k8s-ci-robot Sep 15, 2023
ff71329
Update VolumeSnapshot and VolumeSnapshotContent using JSON patch
shubham-pampattiwar Jul 12, 2023
215f12f
Merge pull request #876 from shubham-pampattiwar/fix-issue-748
k8s-ci-robot Sep 19, 2023
6c07fa0
Merge pull request #844 from mowangdk/cleanup/adopt_kubernetes_recomm…
k8s-ci-robot Sep 20, 2023
664bcf3
Bump google.golang.org/grpc from 1.58.1 to 1.58.2
dependabot[bot] Sep 22, 2023
46c9845
Merge pull request #913 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Sep 22, 2023
220fc85
Bump github.com/prometheus/client_model from 0.4.0 to 0.5.0
dependabot[bot] Oct 4, 2023
11a5a1a
Merge pull request #919 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Oct 16, 2023
5ceee78
Update lib
xing-yang Oct 15, 2023
bab804b
Merge pull request #924 from xing-yang/trivy_net
k8s-ci-robot Oct 16, 2023
315baaf
Bump google.golang.org/grpc from 1.58.2 to 1.58.3
dependabot[bot] Oct 17, 2023
af87878
Merge commit '36ca7a1f5aec29a217dd37f64932eb015965fb01' into update_t…
xing-yang Oct 17, 2023
36ca7a1
Squashed 'release-tools/' changes from 984feece..f9d5b9c0
xing-yang Oct 17, 2023
1880a33
Merge pull request #926 from xing-yang/update_tools
k8s-ci-robot Oct 17, 2023
aafc456
add cmdline args to enable group snapshot webhooks
Rakshith-R Oct 13, 2023
067891c
Merge pull request #920 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Oct 18, 2023
6027306
Bump google.golang.org/grpc from 1.58.3 to 1.59.0
dependabot[bot] Oct 18, 2023
1d06149
Merge pull request #922 from Rakshith-R/args-to-enable-groupsnapshot-…
k8s-ci-robot Oct 19, 2023
37c4599
Merge pull request #935 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Oct 19, 2023
d60a1ed
Bump github.com/prometheus/common from 0.44.0 to 0.45.0
dependabot[bot] Oct 19, 2023
2a6dd9d
Controller deployment has to use latest released versioons.
humblec Oct 21, 2023
1aa1eba
Merge pull request #944 from humblec/snapshot-update
k8s-ci-robot Oct 23, 2023
8dc5dcb
Merge pull request #937 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Oct 23, 2023
1a44d80
Bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0
dependabot[bot] Oct 23, 2023
9dcaddc
Merge pull request #846 from bjschafer/fix-crds
k8s-ci-robot Oct 27, 2023
49193ef
Merge pull request #947 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Oct 31, 2023
facefba
add DeleteVolumeGroupSnapshot API to delete group snapshot
RaunakShah Jul 12, 2023
dad8b28
Merge pull request #882 from RaunakShah/deletegroupsnapshot-copy
k8s-ci-robot Nov 3, 2023
b8a9793
Bump github.com/spf13/cobra from 1.7.0 to 1.8.0
dependabot[bot] Nov 6, 2023
1bf2305
Update go mod and vendor in client dir to 0.28.0
RaunakShah Nov 8, 2023
42151b5
change VolumeGroupSnapshotContentName to VolumeGroupSnapshotHandle in…
RaunakShah Nov 8, 2023
53d64ba
Merge pull request #955 from RaunakShah/update_0.28.1_follow_up
k8s-ci-robot Nov 8, 2023
be851d9
Merge pull request #951 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Nov 14, 2023
ff4faef
Update lib
xing-yang Nov 15, 2023
36c3f6d
Merge pull request #962 from xing-yang/update_opentelemetry_lib
k8s-ci-robot Nov 16, 2023
f9e125b
Check sync error in unit test properly
jsafrane Nov 10, 2023
8a29bf5
Re-queue SnapshotContents that are readyToUse: false
jsafrane Nov 10, 2023
17f739c
Allow snapshot controller to delete VolumeSnapshots
leonardoce Nov 14, 2023
6ac1229
Allow csi-snapshotter to create and manage VolumeSnapshots
leonardoce Nov 13, 2023
74b5600
Merge pull request #959 from leonardoce/dev/rbac-group-snapshot
k8s-ci-robot Nov 16, 2023
d27ee26
Merge pull request #961 from leonardoce/dev/volume-snapshot-permission
k8s-ci-robot Nov 16, 2023
5ca300e
Merge pull request #958 from jsafrane/fix-unready-requeue
k8s-ci-robot Nov 16, 2023
060ee23
Delete individual volume snapshots as part of the group snapshot dele…
RaunakShah Nov 7, 2023
c68695b
Merge pull request #952 from RaunakShah/deletegroupsnapshot-part-2
k8s-ci-robot Nov 17, 2023
9eb4a68
Bump github.com/kubernetes-csi/csi-test/v5 from 5.1.0 to 5.2.0
dependabot[bot] Nov 22, 2023
cf43916
Squashed 'release-tools/' changes from f9d5b9c0..f8c8cc4c
xing-yang Nov 27, 2023
be28c6e
Merge commit 'cf439164991d224aa2e6f3ed1bcf931cd2cb1fdb' into update_r…
xing-yang Nov 27, 2023
c5038ac
Add VolumeGroupSnaphot examples
leonardoce Nov 27, 2023
a9b026a
Merge pull request #965 from xing-yang/update_release-tools_1123
k8s-ci-robot Nov 27, 2023
2dd157a
Merge pull request #963 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Nov 28, 2023
b5743bf
Clarify the meaning of the `matchLabels` field of the PVC selector
leonardoce Nov 29, 2023
cdbbb78
Merge pull request #966 from leonardoce/examples
k8s-ci-robot Nov 29, 2023
7603bf1
Update dependency go modules for k8s v1.29.0-rc.1
sunnylovestiramisu Nov 29, 2023
0ce7955
Merge pull request #967 from sunnylovestiramisu/module-update-master
k8s-ci-robot Nov 29, 2023
875662b
Add finalizer to indicate volume snapshot is part of a group
RaunakShah Dec 7, 2023
31843e8
Bump actions/setup-go from 4 to 5
dependabot[bot] Dec 7, 2023
47e71db
add comments and fix unit test
RaunakShah Dec 7, 2023
feca95e
Merge pull request #972 from RaunakShah/deletegroupsnapshot-part-4
k8s-ci-robot Dec 7, 2023
895dc73
Enable prevent-volume-mode-conversion by default following k8s 1.28 r…
akalenyu Oct 2, 2023
73708b3
Squashed 'release-tools/' changes from f8c8cc4c..b54c1ba4
andyzhangx Dec 16, 2023
185888f
Merge commit '73708b3b3912b5804c6caead303aa195c7dcbdc0' into update_r…
andyzhangx Dec 16, 2023
77c9868
Merge pull request #977 from andyzhangx/update_release-tools
k8s-ci-robot Dec 18, 2023
b44a6b0
Merge pull request #916 from akalenyu/enable-prevent-volume-mode-conv…
k8s-ci-robot Dec 18, 2023
70d7692
Update dependencies for k8s v1.29.0
RaunakShah Dec 18, 2023
e813e3c
fix vendored modules
RaunakShah Dec 19, 2023
5938db0
Merge pull request #978 from RaunakShah/update-deps
k8s-ci-robot Dec 20, 2023
1345ca0
Merge pull request #973 from kubernetes-csi/dependabot/github_actions…
k8s-ci-robot Dec 20, 2023
e629e87
Update csi-lib-utils to v0.17.0
sunnylovestiramisu Dec 21, 2023
f36175d
Merge pull request #982 from sunnylovestiramisu/module-update-master
k8s-ci-robot Dec 21, 2023
73259e5
Bump google.golang.org/protobuf from 1.31.0 to 1.32.0
dependabot[bot] Dec 22, 2023
1f4944b
Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0
dependabot[bot] Dec 28, 2023
2688b2b
Merge pull request #986 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Jan 5, 2024
612c89b
Merge pull request #988 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Jan 5, 2024
02c7a92
Bump google.golang.org/grpc from 1.59.0 to 1.60.1
dependabot[bot] Jan 5, 2024
bffa5ae
Update to API for static group volume snapshots
RaunakShah Dec 5, 2023
0bd355c
update API names in group snapshot content to be consistent with volu…
RaunakShah Jan 5, 2024
e6dc65f
Fix unit test and remove comments
RaunakShah Jan 6, 2024
72b51c0
[snapshot-controller] Fix wait for CRDs duration
Fricounet Dec 21, 2023
b06160e
Merge pull request #987 from DataDog/fricounet/upstream/fix-controlle…
k8s-ci-robot Jan 10, 2024
a4412e9
Bump k8s.io/klog/v2 from 2.110.1 to 2.120.0
dependabot[bot] Jan 11, 2024
66c9ddd
Merge pull request #989 from kubernetes-csi/dependabot/go_modules/k8s…
k8s-ci-robot Jan 12, 2024
3e32435
Merge pull request #979 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Jan 12, 2024
01d5449
Merge pull request #971 from RaunakShah/deletegroupsnapshot-part-3
k8s-ci-robot Jan 12, 2024
4b67f1b
Bump github.com/evanphx/json-patch
dependabot[bot] Jan 15, 2024
d16c2fb
Bump github.com/prometheus/common from 0.45.0 to 0.46.0
dependabot[bot] Jan 15, 2024
93bb6e6
Merge pull request #990 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Jan 16, 2024
fc49f32
Merge pull request #991 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Jan 16, 2024
a64d4b2
Bump github.com/evanphx/json-patch
dependabot[bot] Jan 17, 2024
13167be
Bump k8s.io/klog/v2 from 2.120.0 to 2.120.1
dependabot[bot] Jan 19, 2024
d4c5e7e
Bump google.golang.org/grpc from 1.60.1 to 1.61.0
dependabot[bot] Jan 24, 2024
9e58d4c
Selector in VolumeGroupSnapshotSource API should be optional
nixpanic Jan 25, 2024
4e03bd3
Merge pull request #995 from nixpanic/VolumeGroupSnapshot/optional-se…
k8s-ci-robot Jan 26, 2024
1bcbb21
Merge pull request #992 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Jan 26, 2024
8ab2ca6
Merge pull request #993 from kubernetes-csi/dependabot/go_modules/k8s…
k8s-ci-robot Jan 26, 2024
921719a
Merge pull request #994 from kubernetes-csi/dependabot/go_modules/goo…
k8s-ci-robot Jan 26, 2024
3ba0eb3
Bump github.com/evanphx/json-patch
dependabot[bot] Jan 29, 2024
3124b8c
Merge pull request #996 from kubernetes-csi/dependabot/go_modules/git…
k8s-ci-robot Jan 29, 2024
d0f443f
implement GroupSnapshotter.GetGroupSnapshotStatus()
nixpanic May 25, 2023
025f824
Merge pull request #837 from nixpanic/GetVolumeGroupSnapshot
k8s-ci-robot Jan 30, 2024
49c81b0
Update client to v7
xing-yang Jan 30, 2024
3ed4ebd
Use client v7
xing-yang Jan 30, 2024
510ed2d
Merge pull request #998 from xing-yang/use-clientV7
k8s-ci-robot Jan 30, 2024
024aa29
Add changelog 7.0
xing-yang Jan 31, 2024
533a2ee
Merge pull request #999 from xing-yang/changelog_7.0.0
k8s-ci-robot Jan 31, 2024
39e4391
Merge remote-tracking branch 'openshift/master' into rebase-v7.0.0
mpatlasov Feb 5, 2024
2384360
UPSTREAM: <carry>: Add OpenShift files
mpatlasov Feb 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
140 changes: 140 additions & 0 deletions CHANGELOG/CHANGELOG-7.0.md
@@ -0,0 +1,140 @@
# Release notes for v7.0.0

[Documentation](https://kubernetes-csi.github.io)

# Changelog since v6.3.0

## Urgent Upgrade Notes

### (No, really, you MUST read this before you upgrade)

- Enable prevent-volume-mode-conversion feature flag by default.

Volume mode change will be rejected when creating a PVC from a VolumeSnapshot unless the AllowVolumeModeChange annotation has been set to true. Applications relying on volume mode change when creating a PVC from VolumeSnapshot need to be updated accordingly. ([#916](https://github.com/kubernetes-csi/external-snapshotter/pull/916), [@akalenyu](https://github.com/akalenyu))

## Changes by Kind

### API Change

- Add VolumeGroupSnapshot API definitions. ([#814](https://github.com/kubernetes-csi/external-snapshotter/pull/814), [@RaunakShah](https://github.com/RaunakShah))
- The VolumeGroupSnapshotSource.Selector is now an optional attribute, so that a pre-provisioned VolumeGroupSnapshotContent can be specified which does not require a matching label-selector. ([#995](https://github.com/kubernetes-csi/external-snapshotter/pull/995), [@nixpanic](https://github.com/nixpanic))
- Update API for pre provisioned group snapshots ([#971](https://github.com/kubernetes-csi/external-snapshotter/pull/971), [@RaunakShah](https://github.com/RaunakShah))

### Feature

- Create Volume functionality for volume group snapshots (Note: this feature is partially implemented and therefore it is not ready for use) ([#826](https://github.com/kubernetes-csi/external-snapshotter/pull/826), [@RaunakShah](https://github.com/RaunakShah))
- More detail printed columns output when get vgs/vgsc/vgsclass with kubectl ([#865](https://github.com/kubernetes-csi/external-snapshotter/pull/865), [@winrouter](https://github.com/winrouter))
- Webhooks for VolumeGroupSnapshot, VolumeGroupSnapshotContent and VolumeGroupSnapshotClass. ([#825](https://github.com/kubernetes-csi/external-snapshotter/pull/825), [@Rakshith-R](https://github.com/Rakshith-R))
- Add finalizer to prevent deletion of individual volume snapshots that are part of a group ([#972](https://github.com/kubernetes-csi/external-snapshotter/pull/972), [@RaunakShah](https://github.com/RaunakShah))
- Delete individual snapshots as part of volume group snapshots delete API ([#952](https://github.com/kubernetes-csi/external-snapshotter/pull/952), [@RaunakShah](https://github.com/RaunakShah))
- Implement GetGroupSnapshotStatus so that pre-provisioned VolumeGroupSnapshots can be imported. ([#837](https://github.com/kubernetes-csi/external-snapshotter/pull/837), [@nixpanic](https://github.com/nixpanic))
- Introduce logic to delete volume group snapshots ([#882](https://github.com/kubernetes-csi/external-snapshotter/pull/882), [@RaunakShah](https://github.com/RaunakShah))

### Bug or Regression

- Fixed the max duration to wait for CRDs to appear especially in case of the apiserver being unreachable ([#987](https://github.com/kubernetes-csi/external-snapshotter/pull/987), [@Fricounet](https://github.com/Fricounet))
- Fixed waiting for a snapshot to become ready with exponential backoff in CSI Snapshotter sidecar. ([#958](https://github.com/kubernetes-csi/external-snapshotter/pull/958), [@jsafrane](https://github.com/jsafrane))
- Webhooks for group snapshot CRs will be disabled by default. Command line argument `enable-volume-group-snapshot-webhook` needs to be added to enable these webhooks. ([#922](https://github.com/kubernetes-csi/external-snapshotter/pull/922), [@Rakshith-R](https://github.com/Rakshith-R))

### Other (Cleanup or Flake)

- Adopt Kubernetes recommended label "app.kubernetes.io/name" when deploying csi-snapshotter, snapshot-controller, and snapshot-validation-webhook. ([#844](https://github.com/kubernetes-csi/external-snapshotter/pull/844), [@mowangdk](https://github.com/mowangdk))
- Store VolumeGroupSnapshotHandle in SnapshotContent.Status instead of VolumeGroupSnapshotContentName ([#955](https://github.com/kubernetes-csi/external-snapshotter/pull/955), [@RaunakShah](https://github.com/RaunakShah))

### Uncategorized

- Update VolumeSnapshot and VolumeSnapshotContent using JSON patch ([#876](https://github.com/kubernetes-csi/external-snapshotter/pull/876), [@shubham-pampattiwar](https://github.com/shubham-pampattiwar))
- Update kubernetes dependencies to v1.29.0 ([#978](https://github.com/kubernetes-csi/external-snapshotter/pull/978), [@RaunakShah](https://github.com/RaunakShah))
- Update to use volume snapshot client v7. ([#998](https://github.com/kubernetes-csi/external-snapshotter/pull/998), [@xing-yang](https://github.com/xing-yang))

## Dependencies

### Added
- github.com/gorilla/websocket: [v1.5.0](https://github.com/gorilla/websocket/tree/v1.5.0)
- github.com/kubernetes-csi/csi-test/v5: [v5.2.0](https://github.com/kubernetes-csi/csi-test/v5/tree/v5.2.0)
- github.com/matttproud/golang_protobuf_extensions/v2: [v2.0.0](https://github.com/matttproud/golang_protobuf_extensions/v2/tree/v2.0.0)
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.46.0

### Changed
- cloud.google.com/go/compute: v1.21.0 → v1.23.3
- github.com/alecthomas/kingpin/v2: [v2.3.2 → v2.4.0](https://github.com/alecthomas/kingpin/v2/compare/v2.3.2...v2.4.0)
- github.com/cncf/xds/go: [e9ce688 → 523115e](https://github.com/cncf/xds/go/compare/e9ce688...523115e)
- github.com/container-storage-interface/spec: [v1.8.0 → v1.9.0](https://github.com/container-storage-interface/spec/compare/v1.8.0...v1.9.0)
- github.com/cpuguy83/go-md2man/v2: [v2.0.2 → v2.0.3](https://github.com/cpuguy83/go-md2man/v2/compare/v2.0.2...v2.0.3)
- github.com/emicklei/go-restful/v3: [v3.10.1 → v3.11.0](https://github.com/emicklei/go-restful/v3/compare/v3.10.1...v3.11.0)
- github.com/evanphx/json-patch: [v5.7.0+incompatible → v5.9.0+incompatible](https://github.com/evanphx/json-patch/compare/v5.7.0...v5.9.0)
- github.com/fsnotify/fsnotify: [v1.6.0 → v1.7.0](https://github.com/fsnotify/fsnotify/compare/v1.6.0...v1.7.0)
- github.com/go-logr/logr: [v1.2.4 → v1.4.1](https://github.com/go-logr/logr/compare/v1.2.4...v1.4.1)
- github.com/golang/glog: [v1.1.0 → v1.1.2](https://github.com/golang/glog/compare/v1.1.0...v1.1.2)
- github.com/google/go-cmp: [v0.5.9 → v0.6.0](https://github.com/google/go-cmp/compare/v0.5.9...v0.6.0)
- github.com/google/uuid: [v1.3.0 → v1.4.0](https://github.com/google/uuid/compare/v1.3.0...v1.4.0)
- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.7.0 → v2.16.0](https://github.com/grpc-ecosystem/grpc-gateway/v2/compare/v2.7.0...v2.16.0)
- github.com/kubernetes-csi/csi-lib-utils: [v0.14.0 → v0.17.0](https://github.com/kubernetes-csi/csi-lib-utils/compare/v0.14.0...v0.17.0)
- github.com/onsi/ginkgo/v2: [v2.9.4 → v2.13.1](https://github.com/onsi/ginkgo/v2/compare/v2.9.4...v2.13.1)
- github.com/onsi/gomega: [v1.27.6 → v1.30.0](https://github.com/onsi/gomega/compare/v1.27.6...v1.30.0)
- github.com/prometheus/client_golang: [v1.16.0 → v1.18.0](https://github.com/prometheus/client_golang/compare/v1.16.0...v1.18.0)
- github.com/prometheus/client_model: [v0.4.0 → v0.5.0](https://github.com/prometheus/client_model/compare/v0.4.0...v0.5.0)
- github.com/prometheus/common: [v0.44.0 → v0.46.0](https://github.com/prometheus/common/compare/v0.44.0...v0.46.0)
- github.com/prometheus/procfs: [v0.10.1 → v0.12.0](https://github.com/prometheus/procfs/compare/v0.10.1...v0.12.0)
- github.com/spf13/cobra: [v1.7.0 → v1.8.0](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0)
- github.com/stretchr/testify: [v1.8.2 → v1.8.4](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.4)
- github.com/yuin/goldmark: [v1.3.5 → v1.4.13](https://github.com/yuin/goldmark/compare/v1.3.5...v1.4.13)
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.35.1 → v0.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.10.0 → v1.19.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.10.0 → v1.19.0
- go.opentelemetry.io/otel/metric: v0.31.0 → v1.20.0
- go.opentelemetry.io/otel/sdk: v1.10.0 → v1.19.0
- go.opentelemetry.io/otel/trace: v1.10.0 → v1.20.0
- go.opentelemetry.io/otel: v1.10.0 → v1.20.0
- go.opentelemetry.io/proto/otlp: v0.19.0 → v1.0.0
- golang.org/x/crypto: v0.11.0 → v0.18.0
- golang.org/x/mod: v0.8.0 → v0.12.0
- golang.org/x/net: v0.13.0 → v0.20.0
- golang.org/x/oauth2: v0.10.0 → v0.16.0
- golang.org/x/sync: v0.3.0 → v0.5.0
- golang.org/x/sys: v0.10.0 → v0.16.0
- golang.org/x/term: v0.10.0 → v0.16.0
- golang.org/x/text: v0.11.0 → v0.14.0
- golang.org/x/tools: v0.8.0 → v0.14.0
- google.golang.org/appengine: v1.6.7 → v1.6.8
- google.golang.org/genproto/googleapis/api: 782d3b1 → bbf56f3
- google.golang.org/genproto/googleapis/rpc: 782d3b1 → bbf56f3
- google.golang.org/genproto: 782d3b1 → bbf56f3
- google.golang.org/grpc: v1.58.0 → v1.61.0
- google.golang.org/protobuf: v1.31.0 → v1.32.0
- k8s.io/api: v0.28.0 → v0.29.0
- k8s.io/apimachinery: v0.28.0 → v0.29.0
- k8s.io/client-go: v0.28.0 → v0.29.0
- k8s.io/code-generator: v0.28.0 → v0.29.0
- k8s.io/component-base: v0.28.0 → v0.29.0
- k8s.io/component-helpers: v0.28.0 → v0.29.0
- k8s.io/gengo: fad74ee → 9cce18d
- k8s.io/klog/v2: v2.100.1 → v2.120.1
- k8s.io/kube-openapi: 2695361 → 2dd684a
- k8s.io/utils: d93618c → 3b25d92
- sigs.k8s.io/structured-merge-diff/v4: v4.2.3 → v4.4.1

### Removed
- cloud.google.com/go: v0.34.0
- github.com/BurntSushi/toml: [v0.3.1](https://github.com/BurntSushi/toml/tree/v0.3.1)
- github.com/antihax/optional: [v1.0.0](https://github.com/antihax/optional/tree/v1.0.0)
- github.com/chzyer/logex: [v1.1.10](https://github.com/chzyer/logex/tree/v1.1.10)
- github.com/chzyer/readline: [2972be2](https://github.com/chzyer/readline/tree/2972be2)
- github.com/chzyer/test: [a1ea475](https://github.com/chzyer/test/tree/a1ea475)
- github.com/client9/misspell: [v0.3.4](https://github.com/client9/misspell/tree/v0.3.4)
- github.com/ghodss/yaml: [v1.0.0](https://github.com/ghodss/yaml/tree/v1.0.0)
- github.com/google/gnostic: [v0.6.9](https://github.com/google/gnostic/tree/v0.6.9)
- github.com/grpc-ecosystem/grpc-gateway: [v1.16.0](https://github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0)
- github.com/hpcloud/tail: [v1.0.0](https://github.com/hpcloud/tail/tree/v1.0.0)
- github.com/ianlancetaylor/demangle: [28f6c0f](https://github.com/ianlancetaylor/demangle/tree/28f6c0f)
- github.com/kubernetes-csi/csi-test/v4: [v4.4.0](https://github.com/kubernetes-csi/csi-test/v4/tree/v4.4.0)
- github.com/nxadm/tail: [v1.4.8](https://github.com/nxadm/tail/tree/v1.4.8)
- github.com/onsi/ginkgo: [v1.16.5](https://github.com/onsi/ginkgo/tree/v1.16.5)
- github.com/rogpeppe/fastuuid: [v1.2.0](https://github.com/rogpeppe/fastuuid/tree/v1.2.0)
- go.opentelemetry.io/otel/exporters/otlp/internal/retry: v1.10.0
- go.uber.org/goleak: v1.2.1
- golang.org/x/exp: 509febe
- golang.org/x/lint: d0100b6
- gopkg.in/fsnotify.v1: v1.4.7
- gopkg.in/tomb.v1: dd63297
- honnef.co/go/tools: ea95bdf
12 changes: 6 additions & 6 deletions README.md
Expand Up @@ -111,7 +111,7 @@ Read more about how to install the example webhook [here](deploy/kubernetes/webh

* `--kubeconfig <path>`: Path to Kubernetes client configuration that the webhook uses to connect to Kubernetes API server. When omitted, default token provided by Kubernetes will be used. This option is useful only when the snapshot controller does not run as a Kubernetes pod, e.g. for debugging.

* `--prevent-volume-mode-conversion`: Boolean that prevents an unauthorised user from modifying the volume mode when creating a PVC from an existing VolumeSnapshot. Only present as an alpha feature in `v6.0.0` and above.
* `--prevent-volume-mode-conversion`: Boolean that prevents an unauthorised user from modifying the volume mode when creating a PVC from an existing VolumeSnapshot. Was present as an alpha feature in `v6.0.0`; Having graduated to beta, defaults to true.

#### Validating Webhook Validations

Expand All @@ -131,19 +131,19 @@ Read more about how to install the example webhook [here](deploy/kubernetes/webh

##### Volume Snapshot Classes

* There can only be a single default volume snapshot class for a particular driver.
* There can only be a single default volume snapshot class for a particular driver.

### Distributed Snapshotting

The distributed snapshotting feature is provided to handle snapshot operations for local volumes. To use this functionality, the snapshotter sidecar should be deployed along with the csi driver on each node so that every node manages the snapshot operations only for the volumes local to that node. This feature can be enabled by setting the following command line options to true:

#### Snapshot controller option

* `--enable-distributed-snapshotting`: This option lets the snapshot controller know that distributed snapshotting is enabled and the snapshotter sidecar will be running on each node. Off by default.
* `--enable-distributed-snapshotting`: This option lets the snapshot controller know that distributed snapshotting is enabled and the snapshotter sidecar will be running on each node. Off by default.

#### CSI external snapshotter sidecar option

* `--node-deployment`: Enables the snapshotter sidecar to handle snapshot operations for the volumes local to the node on which it is deployed. Off by default.
* `--node-deployment`: Enables the snapshotter sidecar to handle snapshot operations for the volumes local to the node on which it is deployed. Off by default.

Other than this, the NODE_NAME environment variable must be set where the CSI snapshotter sidecar is deployed. The value of NODE_NAME should be the name of the node where the sidecar is running.

Expand Down Expand Up @@ -174,11 +174,11 @@ Other than this, the NODE_NAME environment variable must be set where the CSI sn

* `--retry-interval-max`: Maximum retry interval of failed volume snapshot creation or deletion. Default value is 5 minutes.

* `--retry-crd-interval-max`: Maximum retry interval for detecting the snapshot CRDs on controller startup. Default is 5 seconds.
* `--retry-crd-interval-max`: Maximum retry duration for detecting the snapshot CRDs on controller startup. Default is 30 seconds.

* `--enable-distributed-snapshotting` : Enables each node to handle snapshots for the volumes local to that node. Off by default. It should be set to true only if `--node-deployment` parameter for the csi external snapshotter sidecar is set to true. See https://github.com/kubernetes-csi/external-snapshotter/blob/master/README.md#distributed-snapshotting for details.

* `--prevent-volume-mode-conversion`: Boolean that prevents an unauthorised user from modifying the volume mode when creating a PVC from an existing VolumeSnapshot. Only present as an alpha feature in `v6.0.0` and above.
* `--prevent-volume-mode-conversion`: Boolean that prevents an unauthorised user from modifying the volume mode when creating a PVC from an existing VolumeSnapshot. Was present as an alpha feature in `v6.0.0`; Having graduated to beta, defaults to true.

#### Other recognized arguments
* `--kubeconfig <path>`: Path to Kubernetes client configuration that the snapshot controller uses to connect to Kubernetes API server. When omitted, default token provided by Kubernetes will be used. This option is useful only when the snapshot controller does not run as a Kubernetes pod, e.g. for debugging.
Expand Down
31 changes: 24 additions & 7 deletions client/apis/volumegroupsnapshot/v1alpha1/types.go
Expand Up @@ -20,7 +20,7 @@ import (
core_v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

snapshotv1 "github.com/kubernetes-csi/external-snapshotter/client/v6/apis/volumesnapshot/v1"
snapshotv1 "github.com/kubernetes-csi/external-snapshotter/client/v7/apis/volumesnapshot/v1"
)

// VolumeGroupSnapshotSpec defines the desired state of a volume group snapshot.
Expand Down Expand Up @@ -52,8 +52,8 @@ type VolumeGroupSnapshotSource struct {
// is created, the existing group snapshots won't be modified.
// Once a VolumeGroupSnapshotContent is created and the sidecar starts to process
// it, the volume list will not change with retries.
// Required.
Selector metav1.LabelSelector `json:"selector" protobuf:"bytes,1,opt,name=selector"`
// +optional
Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,opt,name=selector"`

// VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent
// object representing an existing volume group snapshot.
Expand Down Expand Up @@ -348,16 +348,33 @@ type VolumeGroupSnapshotContentStatus struct {
// Exactly one of its members must be set.
// Members in VolumeGroupSnapshotContentSource are immutable.
type VolumeGroupSnapshotContentSource struct {
// PersistentVolumeNames is a list of names of PersistentVolumes to be snapshotted
// VolumeHandles is a list of volume handles on the backend to be snapshotted
// together. It is specified for dynamic provisioning of the VolumeGroupSnapshot.
// This field is immutable.
// +optional
PersistentVolumeNames []string `json:"persistentVolumeNames,omitempty" protobuf:"bytes,1,opt,name=persistentVolumeNames"`
VolumeHandles []string `json:"volumeHandles,omitempty" protobuf:"bytes,1,opt,name=volumeHandles"`

// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing
// group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots
// on the underlying storage system for which a Kubernetes object
// representation was (or should be) created.
// This field is immutable.
// +optional
GroupSnapshotHandles *GroupSnapshotHandles `json:"groupSnapshotHandles,omitempty" protobuf:"bytes,2,opt,name=groupSnapshotHandles"`
}

type GroupSnapshotHandles struct {
// VolumeGroupSnapshotHandle specifies the CSI "group_snapshot_id" of a pre-existing
// group snapshot on the underlying storage system for which a Kubernetes object
// representation was (or should be) created.
// This field is immutable.
// +optional
VolumeGroupSnapshotHandle *string `json:"volumeGroupSnapshotHandle,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotHandle"`
// Required.
VolumeGroupSnapshotHandle string `json:"volumeGroupSnapshotHandle" protobuf:"bytes,1,opt,name=volumeGroupSnapshotHandle"`

// VolumeSnapshotHandles is a list of CSI "snapshot_id" of pre-existing
// snapshots on the underlying storage system for which Kubernetes objects
// representation were (or should be) created.
// This field is immutable.
// Required.
VolumeSnapshotHandles []string `json:"volumeSnapshotHandles" protobuf:"bytes,2,opt,name=volumeSnapshotHandles"`
}