--- - name: Set proper facts ansible.builtin.set_fact: namespace_opt: "-n {{ namespace }}" dest_dir: "{{ output_dir }}/{{ namespace }}" - name: "Ensure {{ dest_dir }}" ansible.builtin.file: path: "{{ dest_dir }}" state: directory - name: Get all resources ansible.builtin.shell: | kubectl {{ namespace_opt }} get all > {{ dest_dir }}/resources-all.txt ignore_errors: true - name: Get events ansible.builtin.shell: | kubectl {{ namespace_opt }} get events --output custom-columns="DATE:metadata.creationTimestamp,TYPE:type,REASON:reason,OBJECT KIND:involvedObject.kind,OBJECT NAME:involvedObject.name,MESSAGE:message" --sort-by=".metadata.creationTimestamp" > {{ dest_dir }}/events.txt ignore_errors: true - name: Describe namespace resources ansible.builtin.shell: | for item in $(kubectl {{ namespace_opt }} get {{ item }} -o name); do mkdir -p {{ dest_dir }}/$(dirname $item) kubectl {{ namespace_opt }} describe $item > {{ dest_dir }}/${item}.txt done ignore_errors: true loop: - pods - deployments - statefulsets - services - secrets - configmaps - jobs - pvc - routes - csvs - installplans - sub - catalogsources - logservers - softwarefactories - issuers - certificates - challenges - orders - prometheuses - prometheusrules - podmonitors - servicemonitors tags: - skip_ansible_lint - name: Fetch decoded secrets ansible.builtin.shell: | mkdir -p {{ dest_dir }}/secret_data for item in $(kubectl {{ namespace_opt }} get secret -o name); do kubectl {{ namespace_opt }} get $item -o json | jq -r ".data | map_values(@base64d)" > {{ dest_dir }}/secret_data/$(basename $item) done ignore_errors: true - name: Collect pod logs in namespace when: namespace != "sf" block: - name: Create Pods Logs directory ansible.builtin.file: path: "{{ dest_dir }}/pod" state: directory mode: "0755" - name: Collect namespace pods logs ansible.builtin.shell: | for pod in $(kubectl {{ namespace_opt }} get pods -o name); do for container in $(kubectl {{ namespace_opt }} get $pod -o jsonpath='{.spec.containers[*].name}'); do kubectl {{ namespace_opt }} logs {{ logs_arguments }} $pod -c $container > {{ dest_dir }}/${pod}-${container}-logs.txt done done ignore_errors: true