openstack-helm-infra/roles/helm-release-status/tasks/main.yaml

51 lines
2.0 KiB
YAML

# 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
...