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

v7.0.1 API is not backwards compatible #1022

Open
Lyndon-Li opened this issue Feb 26, 2024 · 0 comments
Open

v7.0.1 API is not backwards compatible #1022

Lyndon-Li opened this issue Feb 26, 2024 · 0 comments

Comments

@Lyndon-Li
Copy link

What happened:
In v7.0.1 since prevent-volume-mode-conversion is enabled by default, the created volumesnapshotcotent sets its spec.SourceVolumeMode by inheriting value from the source PVC, so it must not be nil. On the other hand, in v7.0.1, there is a change #1005 where the webhook fails the validation of updating volumesnapshotcotent if oldSnapcontent.Spec.SourceVolumeMode != nil && newSnapcontent.Spec.SourceVolumeMode == nil.

However, it is possible that for a client that is using an older version of external-snapshotter API, spec.SourceVolumeMode field does not exist in volumesnapshotcotent's spec. If the Update method is called through this old client, it falls into oldSnapcontent.Spec.SourceVolumeMode != nil && newSnapcontent.Spec.SourceVolumeMode == nil, as a result, the Update will fail.

What you expected to happen:
Update method should succeed even spec.SourceVolumeMode is not defined

How to reproduce it:
See Velero issue vmware-tanzu/velero#7433

Anything else we need to know?:

Environment:

  • Driver version:
  • Kubernetes version (use kubectl version):
  • OS (e.g. from /etc/os-release):
  • Kernel (e.g. uname -a):
  • Install tools:
  • Others:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant