CoreDNS addon uses « wrong » kubeadm default config #1049
moh2a
started this conversation in
Feature Requests
Replies: 1 comment
-
|
It's doable as we did with the Konnectivity server/agent by inflecting the version from the deployed Control Plane version: with CoreDNS, is way harder since there's no parity in terms of version. I wouldn't define this as a bug, but rather as a feature request: we have our roadmap and are happy to receive external contributions, or a commercial engagement to get this delivered. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Description
When the CoreDNS addon configuration is left empty, Kamaji automatically creates the CoreDNS Deployment using the default kubeadm configuration. To do so, Kamaji relies on an embedded Go dependency on kubeadm.
The issue is that this kubeadm Go dependency is not necessarily aligned with the Kubernetes / kubeadm version of the managed cluster. For example:
Because the CoreDNS version is directly tied to the kubeadm version
(see https://github.com/coredns/deployment/blob/master/kubernetes/CoreDNS-k8s_version.md),
this can result in Kamaji deploying a CoreDNS version that does not match the cluster Kubernetes version.
Why this is problematic
This behavior is particularly problematic in the following scenarios:
Air-gapped environments, where container images are preloaded and strictly controlled
Kamaji upgrades, which may unexpectedly change the CoreDNS version
Since the kubeadm Go dependency may change between Kamaji releases, upgrading Kamaji can trigger a CoreDNS rollout even though the cluster Kubernetes version has not changed.
This makes CoreDNS upgrades:
As a result, Kamaji may attempt to deploy a CoreDNS image that:
Current workaround
The only reliable workaround today is to explicitly configure:
This prevents Kamaji from falling back to kubeadm defaults coming from a different kubeadm version than the one used by the cluster.
Expected behavior
Ideally, the following improvement would be desirable:
Thanks for your work on Kamaji. We hope this feedback helps improve the predictability and safety of CoreDNS addon management. Please let us know if further details or examples are required.
Beta Was this translation helpful? Give feedback.
All reactions