From c20150566a55e205cfb010c64329e01af9c17ca3 Mon Sep 17 00:00:00 2001 From: olesandr kozachenko Date: Mon, 23 Mar 2020 21:34:33 +0200 Subject: [PATCH] add role for collecting the kubernetes pod&kubelet logs Change-Id: I73a0cf471b9e7a8b924655e22e1f7dde069df5c7 --- doc/source/kubernetes-roles.rst | 4 +- roles/collect-kubernetes-logs/README.rst | 1 + roles/collect-kubernetes-logs/tasks/main.yaml | 42 +++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100755 roles/collect-kubernetes-logs/README.rst create mode 100755 roles/collect-kubernetes-logs/tasks/main.yaml 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