-
Notifications
You must be signed in to change notification settings - Fork 715
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
api: output/v1alpha1 depends on kubeadm/v1beta2 #2427
Comments
/cc @wangyysde |
@neolit123 I'd like to work on this, hope that's ok. |
let's hold on this work until we make a clearer decision whether we want to proceed with it for 1.22. |
i did some investigation recently and with that completed the part about:
we should keep this issue open, until we deprecate / remove v1beta2:
v1beta2 is not yet deprecated. we might do it in v1.23: removing it will take +3 releases after that. |
preparing some of the changes for v1beta3, i realized that we have a problematic dependency that have slipped trough review:
https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/apis/output/v1alpha1/types.go#L32
context: kubeadm has two API groups ATM - output (for machine readable output) and kubeadm (for the kubeadm config API).
embedding of a WIP API in another WIP API is always problematic.
if we continue doing this embedding it forces us to either:
possible solutions:
https://github.com/kubernetes/kubernetes/blob/a651804427dd9a15bb91e1c4fb7a79994e4817a2/cmd/kubeadm/app/apis/kubeadm/v1beta2/types.go#L226-L246
this duplication is also asking for trouble.
3 feels like the right thing to do.
i was thinking of another way to handle this by treating BootstrapToken in the output API as runtime.Object, but given this is also in the public API users would need helpers to marshal / unmarshal it.
something else to remind here is that historically we wanted to move the bootstraptoken* API to component-base but this idea was rejected.
added milestone v1.22, but we can technically delay this decision until kubeadm/v1beta2 is removed.
cc @fabriziopandini
tasks:
1.22:
kubeadm: decouple the bootstraptoken API from the kubeadm API kubernetes#102964
1.23:
mark output/v1alpha1 as deprecated.
kubeadm: add a new output/v1alpha2 API; deprecate output/v1alpha1 kubernetes#105295
1.24:
kubeadm: remove the deprecated output/v1alpha1 API kubernetes#107468
The text was updated successfully, but these errors were encountered: