build
build copied to clipboard
[FEATURE] Provide Storage Version Migration from v1alpha1 to v1beta1
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