Skip to content

Move VolumeGroupSnapshot API to V1#1368

Merged
k8s-ci-robot merged 5 commits intokubernetes-csi:masterfrom
xing-yang:volumegroupsnapshot_ga
Apr 16, 2026
Merged

Move VolumeGroupSnapshot API to V1#1368
k8s-ci-robot merged 5 commits intokubernetes-csi:masterfrom
xing-yang:volumegroupsnapshot_ga

Conversation

@xing-yang
Copy link
Copy Markdown
Collaborator

What type of PR is this?
/kind feature

What this PR does / why we need it:
This PR adds VolumeGroupSnapshot V1 API and tries to move the feature to GA.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Adds VolumeGroupSnapshot V1 API and moves the feature to GA.

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jan 25, 2026
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jan 25, 2026
@xing-yang xing-yang changed the title Move VolumeGroupSnapshot API to V1 WIP: Move VolumeGroupSnapshot API to V1 Jan 26, 2026
@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 26, 2026
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from f3adc74 to 9c1b77b Compare February 2, 2026 04:15
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch 2 times, most recently from 618d146 to 9f4c33e Compare February 11, 2026 18:42
@xing-yang xing-yang changed the title WIP: Move VolumeGroupSnapshot API to V1 Move VolumeGroupSnapshot API to V1 Feb 12, 2026
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 12, 2026
@xing-yang
Copy link
Copy Markdown
Collaborator Author

/assign @jsafrane

type: object
served: true
storage: true
storage: false
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How much do we care about downgrade of the external-snapshotter or snapshot-controller? If we store group snapshots as v1 and someone needs to downgrade the CRD, then they won't be able to access v1 objects as v1beta2.

If we provide both v1 and v1beta2 APIs, but store them internally as v1beta2, downgrade will work smoothly.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When moving VolumeSnapshot to GA, we only store them as v1. Why should we do something different for VolumeGroupSnapshot? @msau42 what do you think?

@jsafrane
Copy link
Copy Markdown
Contributor

I checked the v1 and v1beta2 types.go are the same + the generated CRDs look good. I did not check the generated code.

  • Should we update also the controller / snapshotter to use v1 API in the same PR?
  • Should this be merged as the last PR, when all other tasks that block GA are merged (unit tests, e2e tests)?

@xing-yang
Copy link
Copy Markdown
Collaborator Author

/hold
Merge tests before merging this PR.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 26, 2026
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch 2 times, most recently from 8b8698c to 8f4c119 Compare February 28, 2026 15:28
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 4, 2026
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from 8f4c119 to 00de56b Compare March 4, 2026 16:44
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 4, 2026
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from 00de56b to 97f3a71 Compare March 4, 2026 18:27
@xing-yang
Copy link
Copy Markdown
Collaborator Author

Stress test is merged: kubernetes/kubernetes#136845

@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from 97f3a71 to 7a497ec Compare March 16, 2026 01:23
@xing-yang
Copy link
Copy Markdown
Collaborator Author

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 16, 2026
@xing-yang
Copy link
Copy Markdown
Collaborator Author

/retest

@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from ebee242 to 8fbdbdc Compare March 16, 2026 22:14
@jsafrane
Copy link
Copy Markdown
Contributor

I've checked e2e tests and unit tests. E2e is in a decent shape. I see quite some deficiency in the unit tests:

  • pkg/common-controller/groupsnapshot_controller_helper.go has 57% coverage, which may seem enough, but important function createIndividualSnapshotForGroupSnapshot is not covered by any test. As result, various functions like createOrGetVolumeSnapshotContent, createOrGetVolumeSnapshot, bindSnapshotContentToSnapshot and updateVolumeSnapshotContentStatus have no tests either.

  • pkg/sidecar-controller/groupsnapshot_helper.go has 82% coverage and all important functions seem to be covered.

@xing-yang
Copy link
Copy Markdown
Collaborator Author

Submitted a unit test PR: #1407

@jsafrane
Copy link
Copy Markdown
Contributor

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 16, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jsafrane, xing-yang

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 16, 2026
@xing-yang xing-yang force-pushed the volumegroupsnapshot_ga branch from 8fbdbdc to f298d12 Compare April 16, 2026 15:26
@k8s-ci-robot k8s-ci-robot removed lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Apr 16, 2026
@jsafrane
Copy link
Copy Markdown
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 16, 2026
@k8s-ci-robot k8s-ci-robot merged commit 12a449d into kubernetes-csi:master Apr 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants