From d64cdcba8844ff4b9f8ff4a9be7530df50b5f632 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Sat, 9 Mar 2024 16:23:11 -0300 Subject: [PATCH] Remove helm-upgrade-logs (use werf helm upgrade instead) --- home/.chezmoiremove | 3 + .../bin/executable_helm-upgrade-logs.tmpl | 121 ------------------ 2 files changed, 3 insertions(+), 121 deletions(-) delete mode 100644 home/dot_local/bin/executable_helm-upgrade-logs.tmpl diff --git a/home/.chezmoiremove b/home/.chezmoiremove index 118509b5..ce794470 100644 --- a/home/.chezmoiremove +++ b/home/.chezmoiremove @@ -17,6 +17,9 @@ .local/bin/docker-credential-wincred.exe .local/bin/docker-credential-secretservice +# use werf helm upgrade --wait instead +.local/bin/helm-upgrade-logs + # tea got renamed to pkgx .local/bin/tea .tea diff --git a/home/dot_local/bin/executable_helm-upgrade-logs.tmpl b/home/dot_local/bin/executable_helm-upgrade-logs.tmpl deleted file mode 100644 index 4a1ed13e..00000000 --- a/home/dot_local/bin/executable_helm-upgrade-logs.tmpl +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -# {{ template "scripts-library" }} - -# The following line is for ShellCheck to correctly identify the above include -true || source ../../.chezmoitemplates/scripts-library - -watching_pods_logs_file=$(mktemp /dev/shm/helm-upgrade-logs.watching-pods-logs.XXXXXX) -watching_pods_events_file=$(mktemp /dev/shm/helm-upgrade-logs.watching-pods-events.XXXXXX) - -function cleanup() { - rm -f "${watching_pods_logs_file}" "${watching_pods_events_file}" || true - jobs -pr | xargs -r kill -} - -trap cleanup EXIT - -function prefix_output() { - local prefix="$1" - local color_code="$2" - shift 2 - - local sed_replace - sed_replace=$(printf "\033[${color_code}m%s: &\033[0m" "${prefix}") - - # shellcheck disable=SC2312 - "$@" &> >(sed "s,^.*$,${sed_replace}," >&2) -} - -function watch_pods() { - local release="$1" - - sleep 3 # Prevent flodding the logs with the initial output - prefix_output "pods" "1;32" c kubectl get pods \ - --watch \ - --selector "app.kubernetes.io/instance=${release}" -} - -function watch_pod_logs() { - local pod="$1" - - if grep -q "^${pod}$" "${watching_pods_logs_file}"; then - return - fi - - echo "${pod}" >>"${watching_pods_logs_file}" - - prefix_output "pod ${pod} logs" "0;34" c kubectl logs \ - --all-containers \ - --prefix \ - --follow \ - "${pod}" || true - - # remove from watch list (it may be added again) - sed -i "/^${pod}$/d" "${watching_pods_logs_file}" -} - -function watch_pod_events() { - local pod="$1" - - if grep -q "^${pod}$" "${watching_pods_events_file}"; then - return - fi - - echo "${pod}" >>"${watching_pods_events_file}" - - prefix_output "pod ${pod} events" "0;35" c kubectl get events \ - --watch-only \ - --field-selector involvedObject.name="${pod}" || true - - # remove from watch list (it may be added again) - sed -i "/^${pod}$/d" "${watching_pods_events_file}" -} - -function watch_pods_logs_and_events() { - local release="$1" - - sleep 5 # Prevent flodding the logs with the initial output - while true; do - local args=( - --selector "app.kubernetes.io/instance=${release}" - --output jsonpath='{.items[*].metadata.name}' - ) - - for pod in $( - kubectl get pods "${args[@]}" - ); do - watch_pod_events "${pod}" & - done - - for pod in $( - kubectl get pods \ - --field-selector=status.phase=Running \ - "${args[@]}" - ); do - watch_pod_logs "${pod}" & - done - - sleep 1 - done -} - -function get_first_non_option() { - for arg in "$@"; do - if [[ "${arg}" != "-"* ]]; then - echo "${arg}" - return - fi - done -} - -release="$(get_first_non_option "$@")" - -c helm upgrade "$@" --wait & -pid="$!" - -watch_pods "${release}" & - -watch_pods_logs_and_events "${release}" & - -wait "${pid}"