diff --git a/roles/kubernetes/master/tasks/pre-upgrade.yml b/roles/kubernetes/master/tasks/pre-upgrade.yml index 244c8b13e06b664675e890bfb21d39390bc4f91e..adafe80aefb6f00156061f275aa775a094dd3c77 100644 --- a/roles/kubernetes/master/tasks/pre-upgrade.yml +++ b/roles/kubernetes/master/tasks/pre-upgrade.yml @@ -93,3 +93,5 @@ delegate_to: "{{item}}" with_items: "{{groups['etcd']}}" when: needs_etcd_migration|bool + notify: "Master | reload kubelet" + diff --git a/roles/upgrade/post-upgrade/tasks/main.yml b/roles/upgrade/post-upgrade/tasks/main.yml index d8243d04d1b56e05ca47f6c4a20e0806ca554424..bff9983ffc8b7ae6184c2c172af048189432f824 100644 --- a/roles/upgrade/post-upgrade/tasks/main.yml +++ b/roles/upgrade/post-upgrade/tasks/main.yml @@ -3,3 +3,4 @@ - name: Uncordon node command: "{{ bin_dir }}/kubectl uncordon {{ ansible_hostname }}" delegate_to: "{{ groups['kube-master'][0] }}" + when: needs_cordoning|default(false) diff --git a/roles/upgrade/pre-upgrade/tasks/main.yml b/roles/upgrade/pre-upgrade/tasks/main.yml index 9b47c845bb3af11b0a1f25df54792fd07fd4f3f7..e0e5ded8144d481620f6901b1ccf2278415f8daf 100644 --- a/roles/upgrade/pre-upgrade/tasks/main.yml +++ b/roles/upgrade/pre-upgrade/tasks/main.yml @@ -1,8 +1,21 @@ --- +- name: See if node is in ready state + command: "kubectl get nodes | grep {{ inventory_hostname }}" + register: kubectl_nodes + ignore_errors: true + +- set_fact: + needs_cordoning: >- + {% if " Ready" in kubectl_nodes.stdout %} + true + {% else %} + false + {% endif %} - name: Cordon node command: "{{ bin_dir }}/kubectl cordon {{ ansible_hostname }}" delegate_to: "{{ groups['kube-master'][0] }}" + when: needs_cordoning - name: Drain node command: >- @@ -13,6 +26,4 @@ --timeout {{ drain_timeout }} --delete-local-data {{ ansible_hostname }} delegate_to: "{{ groups['kube-master'][0] }}" - -- name: Sleep for grace period for draining - pause: seconds=30 + when: needs_cordoning