# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - name: "creating directory for helm release status" file: path: "{{ logs_dir }}/helm/{{ directory }}" state: directory loop_control: loop_var: directory with_items: - values - releases - name: "Gather get release status for helm charts" shell: |- set -e for namespace in $(kubectl get namespaces --no-headers --output custom-columns=":metadata.name"); do # get all Helm releases including pending and failed releases for release in $(helm list --all --short --namespace $namespace); do # Make respective directories only when a Helm release actually exists in the namespace # to prevent uploading a bunch of empty directories for namespaces without a Helm release. mkdir -p {{ logs_dir }}/helm/releases/$namespace mkdir -p {{ logs_dir }}/helm/values/$namespace helm status $release --namespace $namespace >> {{ logs_dir }}/helm/releases/$namespace/$release.txt helm get values $release --namespace $namespace --all >> {{ logs_dir }}/helm/values/$namespace/$release.yaml done done args: executable: /bin/bash ignore_errors: True - name: "Downloads logs to executor" synchronize: src: "{{ logs_dir }}/helm" dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}" mode: pull ignore_errors: True ...