build icon indicating copy to clipboard operation
build copied to clipboard

[FEATURE] Provide Storage Version Migration from v1alpha1 to v1beta1

Open SaschaSchwarze0 opened this issue 9 months ago • 0 comments

Is there an existing feature request for this?

  • [X] I have searched the existing feature requests

Is your feature request related to a problem or use-case? Please describe.

With v0.13 we changed the storage version of Shipwright Build from v1alpha1 to v1beta1. Users who started with an older version will find the following in the the CRD status:

status:
  storedVersions:
  - v1alpha1
  - v1beta1

As long as v1alpha1 is in there, it is not possible to apply a CRD where v1alpha1 does not exist anymore.

Describe the solution that you would like.

Kubernetes v1.30 actually brought storage version migration: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/storage-version-migration/ (I never tried it)

For users of older version we need to provide a Job definition similar to what Knative does: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/storage-version-migration/.

We can even use their image because its code is generic. If we prefer we could also copy the code. Code is here: https://github.com/knative/pkg/tree/main/apiextensions/storageversion

Describe alternatives you have considered.

We could also make that part of our controller startup, would be maybe an alterantive where our users must not care at all.

Anything else?

No response

SaschaSchwarze0 avatar May 16 '24 14:05 SaschaSchwarze0