container-storage-interface / spec

Container Storage Interface (CSI) Specification.
Apache License 2.0
1.34k stars 373 forks source link

Move VolumeGroupSnapshot to GA #573

Open xing-yang opened 2 weeks ago

xing-yang commented 2 weeks ago

What type of PR is this? Feature

What this PR does / why we need it: This PR moves Group Controller Service and VolumeGroupSnapshot capability to GA.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce an API-breaking change?:

Moves Group Controller Service and VolumeGroupSnapshot to GA.
bswartz commented 1 week ago

We have community feedback confirming that the alpha design for this feature is good to move to GA.

I've reviewed the contents of this PR and I believe all the correct alpha tags were removed.

I would like to see a regression test showing that this PR doesn't break an existing CSI driver -- ideally a driver that implements group snapshots. The hostpath CSI driver could do this.

jdef commented 1 week ago

LGTM

On Sun, Sep 29, 2024 at 10:57 PM Xing Yang @.***> wrote:

What type of PR is this? Feature

What this PR does / why we need it: This PR moves Group Controller Service and VolumeGroupSnapshot capability to GA.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce an API-breaking change?:

Moves Group Controller Service and VolumeGroupSnapshot to GA.


You can view, comment on, or merge this pull request online at:

https://github.com/container-storage-interface/spec/pull/573 Commit Summary

File Changes

(3 files https://github.com/container-storage-interface/spec/pull/573/files)

Patch Links:

— Reply to this email directly, view it on GitHub https://github.com/container-storage-interface/spec/pull/573, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAR5KLAWWDQTVFNJFHFKALDZZC4ZBAVCNFSM6AAAAABPCKNMHCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU2TKNBRGM4DGNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- James DeFelice

yati1998 commented 1 day ago

Tested the PR, it seems to work as expected. adding test results

diff --git a/go.mod b/go.mod
index 7be10017..c73b44b1 100644
--- a/go.mod
+++ b/go.mod
@@ -46,6 +46,8 @@ require (
        k8s.io/mount-utils v0.29.0 // indirect
 )

+replace github.com/container-storage-interface/spec => github.com/xing-yang/spec v0.1.1-0.20240930025405-14c3cd18aa08
+
 replace k8s.io/api => k8s.io/api v0.29.0

 replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.0
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl create -f csi-groupsnapshot-v1alpha1.yaml 
volumegroupsnapshot.groupsnapshot.storage.k8s.io/new-groupsnapshot-demo created
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl get volumegroupsnapshot -A
NAMESPACE   NAME                     READYTOUSE   VOLUMEGROUPSNAPSHOTCLASS      VOLUMEGROUPSNAPSHOTCONTENT                              CREATIONTIME   AGE
default     new-groupsnapshot-demo   true         csi-hostpath-groupsnapclass   groupsnapcontent-ce10d147-60ca-4071-8227-aef4093a1303   7s             7s
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl get volumegroupsnapshotcontent -A
NAME                                                    READYTOUSE   DELETIONPOLICY   DRIVER                VOLUMEGROUPSNAPSHOTCLASS      VOLUMEGROUPSNAPSHOTNAMESPACE   VOLUMEGROUPSNAPSHOT      AGE
groupsnapcontent-ce10d147-60ca-4071-8227-aef4093a1303   true         Delete           hostpath.csi.k8s.io   csi-hostpath-groupsnapclass   default                        new-groupsnapshot-demo   19s
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl get volumesnapshot
NAME                                                                                            READYTOUSE   SOURCEPVC   SOURCESNAPSHOTCONTENT                                                                              RESTORESIZE   SNAPSHOTCLASS   SNAPSHOTCONTENT                                                                                    CREATIONTIME   AGE
snapshot-05b8db6cc4dc9a44d03e348aebf45a319b34478d715a000e8b7f7b8ad79bb177-2024-10-18-12.52.56   true                     snapcontent-05b8db6cc4dc9a44d03e348aebf45a319b34478d715a000e8b7f7b8ad79bb177-2024-10-18-12.52.56   1Gi                           snapcontent-05b8db6cc4dc9a44d03e348aebf45a319b34478d715a000e8b7f7b8ad79bb177-2024-10-18-12.52.56   27s            27s
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl get volumesnapshotcontent
NAME                                                                                               READYTOUSE   RESTORESIZE   DELETIONPOLICY   DRIVER                VOLUMESNAPSHOTCLASS   VOLUMESNAPSHOT                                                                                  VOLUMESNAPSHOTNAMESPACE   AGE
snapcontent-05b8db6cc4dc9a44d03e348aebf45a319b34478d715a000e8b7f7b8ad79bb177-2024-10-18-12.52.56   true         1073741824    Delete           hostpath.csi.k8s.io                         snapshot-05b8db6cc4dc9a44d03e348aebf45a319b34478d715a000e8b7f7b8ad79bb177-2024-10-18-12.52.56   default                   31s
yati@dhcp53-199:~/csi-driver-host-path/examples$ kubectl delete volumegroupsnapshot new-groupsnapshot-demo
volumegroupsnapshot.groupsnapshot.storage.k8s.io "new-groupsnapshot-demo" deleted