kubernetesbare-metalk8s-sig-cluster-lifecycleawskubesprayhigh-availabilityansiblekubernetes-clustergce
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
---
|
|
- import_role: # noqa name[missing]
|
|
name: cluster-dump
|
|
|
|
- name: Check kubectl output
|
|
command: "{{ bin_dir }}/kubectl get pods --all-namespaces -owide"
|
|
changed_when: false
|
|
|
|
- name: Check pods
|
|
vars:
|
|
query_pods_not_running: "items[?status.phase != 'Running']"
|
|
query_pods_not_ready: "items[?(status.conditions[?type == 'Ready'])[0].status != 'True']"
|
|
pods_not_running: "{{ run_pods_log.stdout | from_json | json_query(query_pods_not_running + '.metadata') }}"
|
|
pods_not_ready: "{{ run_pods_log.stdout | from_json | json_query(query_pods_not_ready + '.metadata') }}"
|
|
block:
|
|
- name: Check that all pods are running
|
|
command: "{{ bin_dir }}/kubectl get pods --all-namespaces -o json"
|
|
register: run_pods_log
|
|
changed_when: false
|
|
until:
|
|
# Check that all pods are running
|
|
- run_pods_log.stdout | from_json | json_query(query_pods_not_running) == []
|
|
# Check that all pods are ready
|
|
- run_pods_log.stdout | from_json | json_query(query_pods_not_ready) == []
|
|
retries: 30
|
|
delay: 10
|
|
rescue:
|
|
- name: Describe broken pods
|
|
command: "{{ bin_dir }}/kubectl describe pod -n {{ item.namespace }} {{ item.name }}"
|
|
loop: "{{ pods_not_running + pods_not_ready }}"
|
|
loop_control:
|
|
label: "{{ item.namespace }}/{{ item.name }}"
|
|
- name: Get logs from broken pods
|
|
command: "{{ bin_dir }}/kubectl logs -n {{ item.namespace }} {{ item.name }}"
|
|
loop: "{{ pods_not_running + pods_not_ready }}"
|
|
loop_control:
|
|
label: "{{ item.namespace }}/{{ item.name }}"
|
|
- name: Fail CI
|
|
fail: {}
|