Add role for collecting pods logs

Change-Id: I83f86839d15e61f815428ff7218b2a0a685c6791
Co-Authored-By: Radosław Piliszek <rpiliszek@7bulls.com>
This commit is contained in:
jmarchel 2023-09-22 12:36:11 +02:00 committed by Radosław Piliszek
parent 73570b3859
commit 51027a94d5
5 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,3 @@
- hosts: all
roles:
- collect-kubernetes-pods-logs

View File

@ -0,0 +1,2 @@
collect_kubernetes_pods_logs_all_namespaces: false
collect_kubernetes_pods_logs_namespaces: [""]

View File

@ -0,0 +1,19 @@
- name: List pods for namespace
command: "kubectl get pod {% if namespace != '' %}-n {{ namespace }}{% endif %} -o=custom-columns=NAME:.metadata.name --no-headers"
register: zj_pods
failed_when: false
- name: Create pods logs dir for namespace
file:
path: "{{ ansible_user_dir }}/zuul-output/logs/pods_logs/{{ namespace }}"
state: directory
mode: 0755
- name: Save pods logs for namespace
loop: "{{ zj_pods.stdout_lines | default([]) }}"
loop_control:
loop_var: zj_pod_name
shell: "kubectl logs {{ zj_pod_name }} --all-containers=true {% if namespace != '' %}-n {{ namespace }}{% endif %} &> {{ ansible_user_dir }}/zuul-output/logs/pods_logs/{{ namespace }}/{{ zj_pod_name }}.txt"
args:
executable: /bin/bash
failed_when: false

View File

@ -0,0 +1,30 @@
- name: Create pods logs dir
file:
path: "{{ ansible_user_dir }}/zuul-output/logs/pods_logs"
state: directory
mode: 0755
- name: List namespaces
command: "kubectl get namespaces -o=custom-columns=NAME:.metadata.name --no-headers"
register: zj_kubectl_get_namespaces
failed_when: false
when: collect_kubernetes_pods_logs_all_namespaces
- name: Save namespaces to a fact
set_fact:
collect_kubernetes_pods_logs_namespaces: "{{ zj_kubectl_get_namespaces.stdout_lines }}"
when: collect_kubernetes_pods_logs_all_namespaces
- name: Collect pods logs for namespace
include_tasks: collect-pods-logs-for-namespace.yaml
vars:
namespace: "{{ zj_namespace }}"
loop: "{{ collect_kubernetes_pods_logs_namespaces }}"
loop_control:
loop_var: zj_namespace
- name: Open pods logs permissions
file:
dest: "{{ ansible_user_dir }}/zuul-output/logs/pods_logs"
mode: u=rwX,g=rX,o=rX
recurse: true

View File

@ -22,6 +22,7 @@
roles:
- zuul: zuul/zuul-jobs
pre-run: playbooks/helm/pre.yaml
post-run: playbooks/kubernetes/post.yaml
vars:
helm_version: *helm_version
kubernetes_runtime: cri-o