-
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
graduate kubeadm patch support to GA #2046
Comments
I'm almost thinking to have a plug-able template approach might be the best option, but we would need to spec this out. /cc @frapposelli |
I think @neolit123 is already quite familiar with this but for others I want to add a little context regarding kind's move FWIW: kind moved off of kustomize both to make it cheaper for projects like cluster-api to embed kind (need to follow up on that) ... it seriously dropped the binary weight of We hope that it will be easier to embed in test-runners, kinder, etc. as the API improves and the dependencies are kept minimal. kustomize is significantly larger and more dependency heavy. The deps are probably reasonable enough for the kustomize primary use case (kubernetes API object patching...), but since we were / are only patching objects for which kustomize is NOT API aware I.E. just plain merge patch and 6902 patch on kubeadm types, we could just use the underlying patch libraries with a pretty small custom package to implement patch <-> target matching etc. This also enabled us to add TOML patching which has proven handy (for containerd config) and doesn't make sense for tools like kustomize. We also wanted to enable looser matching requirements, given that kubeadm's API types are nearly the same across some versions. We support matching on only the All of those points may or may or may not make sense in other contexts such as kubeadm. I think the semantics are not quite complete yet (in particular kubernetes-sigs/kind#1332) but it could make sense to export for re-use if others are interested in the same behavior. My main concern is that other users would probably want to drag back in the k8s runtime schemes, and we explicitly do not want kubernetes/kubernetes as a kind binary dependency.
... +1. this was one of the biggest blockers for us. The API also just is much more complicated than the naive merge-patch / 6902 patch runtime we needed. |
@pacoxu both show errors such as:
this means the patches were not applied. looking at the output of kubeadm init here: i don't see the patches field present in the config:
this means our kinder logic for adding the "patches patch" is not working - e.g. this part: i think the problem is here: during "init" the function must return an InitConfiguration patch. i think we should also move the function to a new file e.g. there could be other problems lurking too... |
let me check |
I tried to fix it in #2545. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
There seem to be no bugs or further feature requests for patch support now. |
we discussed with Fabrizio to tie the graduation to the kubeadm api which is still beta. i think we can keep this issue open in case new features are requested for the patches. |
this doesn't seems like a candidate for v1beta4, right? if not, I will remove this from the v1bata4 candidate list. @pacoxu @neolit123 |
yes |
this has been a working feature in the kubeadm API and the CLI for a number of releases.
it seems better to open new issues for such change requests. |
some projects in the ecosystem are moving away from kustomize:
WIP: Upgrade kubectl to sigs.k8s.io/kustomize/[email protected] kubernetes#85146 (comment)
i personally question some of the approaches the project has taken WRT support of API types.
i think a goal for us should be to continue supporting the same mechanic for user "customization" in kubeadm, but possibly change the backend.
update 18.05.2020:
a proposal for using patches is tracked as alpha for 1.19:
https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches
kubeadm: customization with patches enhancements#1739
update 07.10.2022
latest status about tracking
graduate kubeadm patch support to GA #2046 (comment)
TODO:
ALPHA (1.19)
1.20:
keps/sig-cluster-lifecycle/kubeadm: mark the kustomization KEP as replaced enhancements#1991
kubeadm: remove the --experimental-kustomize feature kubernetes#94871
kinder: remove -k / -kustomize-dir support and related test jobs #2295
sig-cluster-lifecycle: remove kustomize related test jobs test-infra#19299
https://groups.google.com/g/kubernetes-sig-cluster-lifecycle/c/bv8ZbpmO5Q8
1.22
kubeadm: add support for patches in v1beta3; deprecate --experimental-patches kubernetes#103063
1.23
kubeadm: customization with patches enhancements#1739
https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches
https://github.com/kubernetes/kubeadm/tree/master/kinder/pkg/kubeadm
kubeadm: disallow the mixture of --config and --patches & remove deprecated --experimental-patches kubernetes#104065
/kind design
/priority important-longterm
The text was updated successfully, but these errors were encountered: