64 lines
2.6 KiB
YAML
64 lines
2.6 KiB
YAML
---
|
|
|
|
- name: Ensure that user manifests directory exists
|
|
file:
|
|
path: "{{ kubernetes_user_manifests_path }}/kubernetes"
|
|
state: directory
|
|
recurse: yes
|
|
tags: [init, cni]
|
|
|
|
- name: Apply kube-proxy hostnameOverride
|
|
block:
|
|
- name: Copy kube-proxy daemonset hostnameOverride patch
|
|
copy:
|
|
src: hostnameOverride-patch.json
|
|
dest: "{{ kubernetes_user_manifests_path }}/hostnameOverride-patch.json"
|
|
|
|
- name: Check current command for kube-proxy daemonset
|
|
shell: "{{bin_dir}}/kubectl get ds kube-proxy --namespace=kube-system -o jsonpath='{.spec.template.spec.containers[0].command}'"
|
|
register: current_kube_proxy_command
|
|
|
|
- name: Apply hostnameOverride patch for kube-proxy daemonset
|
|
shell: "{{bin_dir}}/kubectl patch ds kube-proxy --namespace=kube-system --type=json -p \"$(cat hostnameOverride-patch.json)\""
|
|
args:
|
|
chdir: "{{ kubernetes_user_manifests_path }}"
|
|
register: patch_kube_proxy_command
|
|
when: not current_kube_proxy_command.stdout is search("--hostname-override=${NODE_NAME}")
|
|
|
|
- debug: msg={{ patch_kube_proxy_command.stdout_lines }}
|
|
when: patch_kube_proxy_command is not skipped
|
|
|
|
- debug: msg={{ patch_kube_proxy_command.stderr_lines }}
|
|
when: patch_kube_proxy_command is not skipped
|
|
tags: init
|
|
when:
|
|
- not kube_proxy_remove
|
|
|
|
- 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
|
|
shell: "{{bin_dir}}/kubectl get ds kube-proxy --namespace=kube-system -o jsonpath='{.spec.template.spec.nodeSelector.beta.kubernetes.io/os}'"
|
|
register: current_kube_proxy_state
|
|
|
|
- name: Apply nodeselector patch for kube-proxy daemonset
|
|
shell: "{{bin_dir}}/kubectl patch ds kube-proxy --namespace=kube-system --type=strategic -p \"$(cat nodeselector-os-linux-patch.json)\""
|
|
args:
|
|
chdir: "{{ kubernetes_user_manifests_path }}"
|
|
register: patch_kube_proxy_state
|
|
when: current_kube_proxy_state.stdout | trim | lower != "linux"
|
|
|
|
- debug: msg={{ patch_kube_proxy_state.stdout_lines }}
|
|
when: patch_kube_proxy_state is not skipped
|
|
|
|
- debug: msg={{ patch_kube_proxy_state.stderr_lines }}
|
|
when: patch_kube_proxy_state is not skipped
|
|
tags: init
|
|
when:
|
|
- not kube_proxy_remove
|