github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/ansible/roles/kube-proxy/tasks/main.yaml (about) 1 --- 2 - name: create /etc/kubernetes/specs directory 3 file: 4 path: "{{ kubernetes_spec_dir }}" 5 state: directory 6 7 - name: copy kube-proxy.yaml to remote 8 template: 9 src: kube-proxy.yaml 10 dest: "{{ kubernetes_spec_dir }}/kube-proxy.yaml" 11 owner: "{{ kubernetes_owner }}" 12 group: "{{ kubernetes_group }}" 13 mode: "{{ kubernetes_service_mode }}" 14 15 # Used during upgrades: 16 # 1) figure out the pod name running on the node with --template (find the pod with nodeName == inventory_hostname) 17 # 2) apply the new DS 18 # 3) shutdown the existing pod and wait 19 - name: get the name of the kube-proxy pod running on this node 20 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} get pods -l=k8s-app=kube-proxy --template {%raw%}'{{range .items}}{{if eq .spec.nodeName{%endraw%} "{{ inventory_hostname|lower }}"{%raw%}}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}'{%endraw%} -n kube-system 21 register: pod_name 22 when: upgrading is defined and upgrading|bool == true 23 24 - name: start kube-proxy 25 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} apply -f {{ kubernetes_spec_dir }}/kube-proxy.yaml 26 run_once: true 27 28 - name: delete kube-proxy pod running on this node 29 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} delete pod {{ pod_name.stdout }} -n kube-system --now 30 when: pod_name is defined and pod_name.stdout is defined and pod_name.stdout != "" 31 32 # wait for pod to shutdown 33 - name: wait until the kube-proxy pod running on this node is deleted 34 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} get pods {{ pod_name.stdout }} --ignore-not-found=true -n kube-system 35 register: poddeleted 36 until: poddeleted|success and poddeleted.stdout == "" 37 retries: 20 38 delay: 6 39 when: pod_name is defined and pod_name.stdout is defined and pod_name.stdout != "" 40 41 - name: label nodes for kube-proxy 42 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} label --overwrite nodes --selector kubernetes.io/hostname={{ inventory_hostname|lower }} kismatic/kube-proxy=true 43 44 - name: get the name of the kube-proxy pod running on this node 45 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} get pods -l=k8s-app=kube-proxy --template {%raw%}'{{range .items}}{{if eq .spec.nodeName{%endraw%} "{{ inventory_hostname|lower }}"{%raw%}}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}'{%endraw%} -n kube-system 46 register: pod_name 47 until: pod_name is defined and pod_name.stdout is defined and pod_name.stdout != "" 48 retries: 20 49 delay: 6 50 51 - name: wait until pod is in "Running" state 52 command: kubectl --kubeconfig {{ kubernetes_kubeconfig.kubectl }} get pods {{ pod_name.stdout }} -o=jsonpath='{.status.phase}' -n kube-system 53 register: readyPods 54 until: readyPods.stdout == "Running" 55 retries: 20 56 delay: 6