-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
unpredictable extra args #12021
Comments
/triage accepted |
Aren't duplicate in k8s components a case of last wins ? |
@tagurus v1beta4 should allow duplication and be used last. Could you confirm that? FYI: https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/ I realized that our other problem should be that extra Args is not at the end (it should be at the end, but we put it in the middle) |
@tico88612
but in manifests eg api-server default-not-ready-toleration-second, default-unreachable-toleration-seconds
In case "last value applied" - this value default-unreachable-toleration-seconds=300, instead custom extra-arg in controller-manager similar
It is bad |
@tagurus Ok, I understand this problem. I will report it to Kubeadm first to make sure it is intentional or unintentional. |
@VannTen according to the reply, extraArgs will be in ascending order if there are duplicate names. FYI: kubernetes/kubeadm#3173 (comment) Maybe we could try to use kubeadm patch for resolve this situation. |
/assign |
well, i have read this article. It turns out that biggest value has priority in flags. In this scenario with kubespray, we can use default variable name, eg "kube_apiserver_pod_eviction_not_ready_timeout_seconds" instead extra arg, for avoid problem as temporary measure. better make note in doc section |
Maybe we could try to use kubeadm patch for resolve this situation.
That can be a workaround (and they can defined in Kubespray inventory now) but I don't think that's a clean solution.
IMO the long term solution could be instead of direct Jinja rendering define a intermediate variable like `kubeadm_*flags` , and then do something like `kubeam_*flags | combine(kubeadm_*extra_flags) | to_yaml`
|
What happened?
kubespray has ability to add Custom flags to control plane components. But in docs doesnt writes, which extra arg are possible.
E.G.
my extra args
kubelet is ok
but api-server and controller-manager in generated kubeadmconfig
I suspect - jinja generete this value from defaut var
It is another vars, when classic extra
In this case
Add section in docementation about default vars, which opposite extra args
or
Make default args more obviously, for avoid collision
What did you expect to happen?
extra args added in kubeadm config is expected and planned
How can we reproduce it (as minimally and precisely as possible)?
add some extra args in k8s-cluster.yaml and deploy
OS
Ubuntu 22.04.5 LTS
Version of Ansible
2.16.10
Version of Python
3.10.12
Version of Kubespray (commit)
release-2.27
Network plugin used
calico
Full inventory with variables
.
Command used to invoke ansible
ansible-playbook -i ./inventory/kubetest/hosts.yaml -u *** -b --private-key *** cluster.yml --tags "master"
Output of ansible run
.
Anything else we need to know
No response
The text was updated successfully, but these errors were encountered: