Browse Source

Fix kube-proxy ds win nodeselector check for 1.17 (#5982)

* Fix kube-proxy ds nodeselector for older versions

* Fix for ansible-lint
pull/5993/head
Lovro Seder 4 years ago
committed by GitHub
parent
commit
536606c2ed
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 10 deletions
  1. 2
      roles/win_nodes/kubernetes_patch/defaults/main.yml
  2. 1
      roles/win_nodes/kubernetes_patch/files/nodeselector-os-linux-patch.json
  3. 11
      roles/win_nodes/kubernetes_patch/tasks/main.yml

2
roles/win_nodes/kubernetes_patch/defaults/main.yml

@ -3,3 +3,5 @@
kubernetes_user_manifests_path: "{{ ansible_env.HOME }}/kube-manifests"
# Optionally remove kube_proxy installed by kubeadm
kube_proxy_remove: false
# nodeselector for kube-proxy ds is beta until 1.18
kube_proxy_nodeselector: "{{ 'kubernetes.io/os' if kube_version is version('v1.18.0', '>=') else 'beta.kubernetes.io/os' }}"

1
roles/win_nodes/kubernetes_patch/files/nodeselector-os-linux-patch.json

@ -1 +0,0 @@
{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}

11
roles/win_nodes/kubernetes_patch/tasks/main.yml

@ -9,17 +9,12 @@
- name: Apply kube-proxy nodeselector
block:
- name: Copy kube-proxy daemonset nodeselector patch
copy:
src: nodeselector-os-linux-patch.json
dest: "{{ kubernetes_user_manifests_path }}/nodeselector-os-linux-patch.json"
# Due to https://github.com/kubernetes/kubernetes/issues/58212 we cannot rely on exit code for "kubectl patch"
- name: Check current nodeselector for kube-proxy daemonset
command: >-
{{ bin_dir }}/kubectl --kubeconfig {{ kube_config_dir }}/admin.conf
get ds kube-proxy --namespace=kube-system
-o jsonpath='{.spec.template.spec.nodeSelector.kubernetes\.io/os}'
-o jsonpath='{.spec.template.spec.nodeSelector.{{ kube_proxy_nodeselector | regex_replace('\.', '\\.') }}}'
register: current_kube_proxy_state
retries: 60
delay: 5
@ -30,9 +25,7 @@
shell: >-
{{ bin_dir }}/kubectl --kubeconfig {{ kube_config_dir }}/admin.conf
patch ds kube-proxy --namespace=kube-system --type=strategic -p
"$(cat nodeselector-os-linux-patch.json)"
args:
chdir: "{{ kubernetes_user_manifests_path }}"
'{"spec":{"template":{"spec":{"nodeSelector":{"{{ kube_proxy_nodeselector }}":"linux"} }}}}'
register: patch_kube_proxy_state
when: current_kube_proxy_state.stdout | trim | lower != "linux"

Loading…
Cancel
Save