comprobar_cluster.yml
# Para el playbook si el clúster no está sano: no se toca nada con un nodo caído.
- name: Todos los nodos Ready y ninguno fuera del clúster (cordon)
ansible.builtin.shell: >-
set -o pipefail;
kubectl --kubeconfig {{ kubeconfig }} get nodes --no-headers | awk '$2 != "Ready" {print $1 " (" $2 ")"}'
args:
executable: /bin/bash
register: malos
changed_when: false
failed_when: malos.rc != 0 or malos.stdout != ''
delegate_to: localhost
run_once: true
check_mode: false # solo lee: también en simulación
- name: La API responde por la VIP
ansible.builtin.command: kubectl --kubeconfig {{ kubeconfig }} get --raw /readyz
changed_when: false
delegate_to: localhost
run_once: true
check_mode: false # solo lee: también en simulación