From d57ddf0be805407239141b334c6425717aa1cf3f Mon Sep 17 00:00:00 2001 From: Cristian Calin <6627509+cristicalin@users.noreply.github.com> Date: Tue, 7 Sep 2021 20:47:16 +0300 Subject: [PATCH] Feature DynamicKubeletConfig is deprecated in 1.22 and will not move to GA (#7938) * Feature DynamicKubeletConfig is deprecated in 1.22 and will not move to GA * Add check for dynamic_kubelet_configuration with kube >= 1.22 --- .../sample/group_vars/k8s_cluster/k8s-cluster.yml | 3 +++ roles/kubernetes/node/tasks/kubelet.yml | 4 +++- roles/kubernetes/node/templates/kubelet.env.v1beta1.j2 | 2 +- .../preinstall/tasks/0020-verify-settings.yml | 10 ++++++++++ tests/files/packet_oracle7-canal-ha.yml | 1 - tests/files/packet_ubuntu16-canal-kubeadm-ha.yml | 1 - 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml b/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml index 064082246..e1208fc54 100644 --- a/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml +++ b/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml @@ -211,6 +211,9 @@ k8s_image_pull_policy: IfNotPresent kubernetes_audit: false # dynamic kubelet configuration +# Note: Feature DynamicKubeletConfig is deprecated in 1.22 and will not move to GA. +# It is planned to be removed from Kubernetes in the version 1.23. +# Please use alternative ways to update kubelet configuration. dynamic_kubelet_configuration: false # define kubelet config dir for dynamic kubelet diff --git a/roles/kubernetes/node/tasks/kubelet.yml b/roles/kubernetes/node/tasks/kubelet.yml index 6e0052db9..3dc747c8c 100644 --- a/roles/kubernetes/node/tasks/kubelet.yml +++ b/roles/kubernetes/node/tasks/kubelet.yml @@ -4,7 +4,9 @@ path: "{{ dynamic_kubelet_configuration_dir }}" mode: 0600 state: directory - when: dynamic_kubelet_configuration + when: + - dynamic_kubelet_configuration + - kube_version is version('v1.22.0', '<') - name: Set kubelet api version to v1beta1 set_fact: diff --git a/roles/kubernetes/node/templates/kubelet.env.v1beta1.j2 b/roles/kubernetes/node/templates/kubelet.env.v1beta1.j2 index 3ca1ffdd7..d190b1f3a 100644 --- a/roles/kubernetes/node/templates/kubelet.env.v1beta1.j2 +++ b/roles/kubernetes/node/templates/kubelet.env.v1beta1.j2 @@ -18,7 +18,7 @@ KUBELET_HOSTNAME="--hostname-override={{ kube_override_hostname }}" --container-runtime=remote \ --container-runtime-endpoint=unix://{{ cri_socket }} \ {% endif %} -{% if dynamic_kubelet_configuration %} +{% if dynamic_kubelet_configuration and kube_version is version('v1.22.0', '<') %} --dynamic-config-dir={{ dynamic_kubelet_configuration_dir }} \ {% endif %} --runtime-cgroups={{ kubelet_runtime_cgroups }} \ diff --git a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml index 72d1fbf73..3a059c00f 100644 --- a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml +++ b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml @@ -114,6 +114,16 @@ when: - kube_version is version('v1.21.0', '>=') +- name: Stop when dynamic_kubelet_configuration enabled for kubernetes >= 1.22 + assert: + that: not dynamic_kubelet_configuration + msg: > + Feature DynamicKubeletConfig is deprecated in 1.22 and will not move to GA. + It is planned to be removed from Kubernetes in the version 1.23. + Please use alternative ways to update kubelet configuration. + when: + - kube_version is version('v1.22.0', '>=') + # This assertion will fail on the safe side: One can indeed schedule more pods # on a node than the CIDR-range has space for when additional pods use the host # network namespace. It is impossible to ascertain the number of such pods at diff --git a/tests/files/packet_oracle7-canal-ha.yml b/tests/files/packet_oracle7-canal-ha.yml index 993bcf3dd..9369e1c4a 100644 --- a/tests/files/packet_oracle7-canal-ha.yml +++ b/tests/files/packet_oracle7-canal-ha.yml @@ -6,7 +6,6 @@ mode: ha # Kubespray settings calico_datastore: etcd kube_network_plugin: canal -dynamic_kubelet_configuration: true deploy_netchecker: true dns_min_replicas: 1 diff --git a/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml b/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml index 7b27b4bae..2e359ee5b 100644 --- a/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml +++ b/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml @@ -6,6 +6,5 @@ mode: ha # Kubespray settings calico_datastore: etcd kube_network_plugin: canal -dynamic_kubelet_configuration: true deploy_netchecker: true dns_min_replicas: 1