diff --git a/doc/source/kubernetes-roles.rst b/doc/source/kubernetes-roles.rst index 88d4336c6..a4d68ef7a 100644 --- a/doc/source/kubernetes-roles.rst +++ b/doc/source/kubernetes-roles.rst @@ -1,4 +1,4 @@ Kubernetes Roles ================ - -.. zuul:autorole:: wait-for-pods \ No newline at end of file +.. zuul:autorole:: collect-kubernetes-logs +.. zuul:autorole:: wait-for-pods diff --git a/roles/collect-kubernetes-logs/README.rst b/roles/collect-kubernetes-logs/README.rst new file mode 100755 index 000000000..6213477f7 --- /dev/null +++ b/roles/collect-kubernetes-logs/README.rst @@ -0,0 +1 @@ +An ansible role to collect all pod descriptions and kubelet logs. diff --git a/roles/collect-kubernetes-logs/tasks/main.yaml b/roles/collect-kubernetes-logs/tasks/main.yaml new file mode 100755 index 000000000..1854bc5ea --- /dev/null +++ b/roles/collect-kubernetes-logs/tasks/main.yaml @@ -0,0 +1,42 @@ +- name: List pods + command: "kubectl get pod -o=custom-columns=NAME:.metadata.name --no-headers" + register: podlist + ignore_errors: true + +- name: Create pod describe dir + file: + path: "{{ ansible_user_dir }}/zuul-output/logs/pods" + state: directory + +- name: Save pod descriptions + loop: "{{ podlist.stdout_lines | default([]) }}" + loop_control: + loop_var: pod_name + shell: "kubectl describe po {{ pod_name }} &> {{ ansible_user_dir }}/zuul-output/logs/pods/{{ pod_name }}.txt" + args: + executable: /bin/bash + ignore_errors: true + +- name: Open pod descriptions permissions + file: + dest: "{{ ansible_user_dir }}/zuul-output/logs/pods" + mode: u=rwX,g=rX,o=rX + recurse: yes + +- name: Create kubelet log dir + file: + path: "{{ ansible_user_dir }}/zuul-output/logs/kubelet" + state: directory + +- name: Save kubelet logs + shell: "journalctl -u kubelet &> {{ ansible_user_dir }}/zuul-output/logs/kubelet/kubelet.txt" + args: + executable: /bin/bash + ignore_errors: true + become: yes + +- name: Open kubelet logs permissions + file: + dest: "{{ ansible_user_dir }}/zuul-output/logs/kubelet" + mode: u=rwX,g=rX,o=rX + recurse: yes