Merge pull request #2293 from bradbeam/upgrade

Making node status and scheduling detection mo betta for upgrades
pull/2298/head
Brad Beam 2018-02-09 13:15:55 -06:00 committed by GitHub
commit c6c74616d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View File

@ -2,4 +2,5 @@
- name: Uncordon node - name: Uncordon node
command: "{{ bin_dir }}/kubectl uncordon {{ inventory_hostname }}" command: "{{ bin_dir }}/kubectl uncordon {{ inventory_hostname }}"
delegate_to: "{{ groups['kube-master'][0] }}" delegate_to: "{{ groups['kube-master'][0] }}"
when: needs_cordoning|default(false) when:
- needs_cordoning|default(false)

View File

@ -1,13 +1,27 @@
--- ---
# Node Ready: type = ready, status = True
# Node NotReady: type = ready, status = Unknown
- name: See if node is in ready state - name: See if node is in ready state
shell: "{{ bin_dir }}/kubectl get nodes | grep {{ inventory_hostname }}" shell: >-
register: kubectl_nodes {{ bin_dir }}/kubectl get node {{ inventory_hostname }}
-o jsonpath='{ range .status.conditions[?(@.type == "Ready")].status }{ @ }{ end }'
register: kubectl_node_ready
delegate_to: "{{ groups['kube-master'][0] }}"
failed_when: false
# SchedulingDisabled: unschedulable = true
# else unschedulable key doesn't exist
- name: See if node is schedulable
shell: >-
{{ bin_dir }}/kubectl get node {{ inventory_hostname }}
-o jsonpath='{ .spec.unschedulable }'
register: kubectl_node_schedulable
delegate_to: "{{ groups['kube-master'][0] }}" delegate_to: "{{ groups['kube-master'][0] }}"
failed_when: false failed_when: false
- set_fact: - set_fact:
needs_cordoning: >- needs_cordoning: >-
{% if " Ready" in kubectl_nodes.stdout -%} {% if kubectl_node_ready.stdout == "True" and kubectl_node_schedulable.stdout == "" -%}
true true
{%- else -%} {%- else -%}
false false