-
Notifications
You must be signed in to change notification settings - Fork 716
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
[Roadmap] Improve kubeadm support for pluggable addons / operator driven addons #2318
Comments
I would like to point out that also some features of addon management are relevant for declarative approaches as well. |
WRT to addons, kubeadm as of today offers an integrated UX based on an detailed knowledge of the internals of the addons in scope. Let's consider CoreDNS as example:
While the above integrated UX is nice and desirable, maintaining such a deep knowledge of addons internals is an approach that can't scale, and in fact it is the main blocker to support pluggable addons. So, I would like to gather opinions on a possible alternative approach: kubeadm should
Each addon
Some of those implementations will be embedded in the kubeadm (e.g. CoreDNS), thus continuing to address the most common use cases right out of the box; intestead, other implementations could be provided to kubeadm as a plugin, thus allowing any addon authors, or even the users, the chance to provide the same integrated UX for any addon/addon variants, but without requiring changes on the kubeadm codebase. |
if by "plugin" you mean
some questions here:
what are your main objections against using operators for addons? problems with operators that i'm aware of include:
|
I don't have a specific solution in mind for this implementation detail, but there are prior art we can explore for this like eg. kubectl plugins and hashicorp plugins.
TBD; the fallback solution is to continue as we are doing today by having this code in kubeadm, but some other implementation approach can be explored as well (this is somehow related to the target plugin model)
The plugin runs before the addon operator is installed, so there should be no chicken and egg problem; you can see the plugin as the addon operator installer for kubeadm. WRT to the operator lifecycle management, the plugins should have all the required knowledge in order to provide an integrated UX with kubeadm; the nice point here is that this logic is pluggable and not anymore entangled with the kubeadm codebase |
i must say that i like the plugin binaries idea. addon plugins would not be able to manage their own lifecycle (if they don't run as services), but the kubeadm operator can look for addon binaries on the nodes and call certain CLI (interface) methods such as "upgrade", "refresh" etc. if users don't want to install the kubeadm operator they will also have the option to execute functionality on the addon binary on demand. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
/remove-lifecycle stale |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
/lifecycle frozen |
discussion with |
Kubeadm addons were subject to several discussion in the past year, but as of today there is no clear path forward (we are only supporting skip phase)
This issue is about discussing some possible alternatives for:
The text was updated successfully, but these errors were encountered: