help wantedkind/bugtriage/accepted
Description
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
kube_kubeadm_controller_extra_args:
node-monitor-grace-period: 20s
allocate-node-cidrs: true
kube_kubeadm_apiserver_extra_args:
default-not-ready-toleration-seconds: 10
default-unreachable-toleration-seconds: 10
kubelet_config_extra_args:
nodeStatusUpdateFrequency: 5s
nodeStatusReportFrequency: 5s
kubelet is ok
but api-server and controller-manager in generated kubeadmconfig
- name: default-not-ready-toleration-seconds DEFAULT VALUES
value: "300"
- name: default-unreachable-toleration-seconds
value: "300"
...
- name: "default-not-ready-toleration-seconds" MY ARGS
value: "10"
- name: "default-unreachable-toleration-seconds"
value: "10"
controllerManager:
extraArgs:
- name: node-monitor-grace-period DEFAULT
value: "40s"
...
- name: "node-monitor-grace-period" DUPLICATE
value: "20s"
- name: "allocate-node-cidrs" OK
value: "True"
I suspect - jinja generete this value from defaut var
{% if kube_apiserver_pod_eviction_not_ready_timeout_seconds is defined %}
- name: default-not-ready-toleration-seconds
value: "{{ kube_apiserver_pod_eviction_not_ready_timeout_seconds }}"
{% endif %}
{% if kube_apiserver_pod_eviction_unreachable_timeout_seconds is defined %}
- name: default-unreachable-toleration-seconds
value: "{{ kube_apiserver_pod_eviction_unreachable_timeout_seconds }}"
{% endif %}
- name: node-monitor-grace-period
value: "{{ kube_controller_node_monitor_grace_period }}"
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