From 1882d5d2b923a222cfb254003c2921bca4ea4454 Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Tue, 17 Oct 2023 17:24:30 +1100 Subject: [PATCH] fix: cronjob cleanup use matching function instead of regex (#244) --- legacy/build-deploy-docker-compose.sh | 33 ++++++++++++++++----------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/legacy/build-deploy-docker-compose.sh b/legacy/build-deploy-docker-compose.sh index cdfe5f33..b9ca3865 100755 --- a/legacy/build-deploy-docker-compose.sh +++ b/legacy/build-deploy-docker-compose.sh @@ -1690,19 +1690,26 @@ set -x ############################################## CURRENT_CRONJOBS=$(kubectl -n ${NAMESPACE} get cronjobs --no-headers | cut -d " " -f 1 | xargs) - -IFS=' ' read -a SPLIT_CURRENT_CRONJOBS <<< $CURRENT_CRONJOBS - -for SINGLE_NATIVE_CRONJOB in ${SPLIT_CURRENT_CRONJOBS[@]} -do - re="\<^$SINGLE_NATIVE_CRONJOB$\>" - text=$( IFS=' '; echo "${NATIVE_CRONJOB_CLEANUP_ARRAY[*]}") - if [[ "$text" =~ $re ]]; then - #echo "Single cron found: ${SINGLE_NATIVE_CRONJOB}" - continue - else - #echo "Single cron missing: ${SINGLE_NATIVE_CRONJOB}" - kubectl -n ${NAMESPACE} delete cronjob ${SINGLE_NATIVE_CRONJOB} +MATCHED_CRONJOB=false +DELETE_CRONJOBS=() +# NATIVE_CRONJOB_CLEANUP_ARRAY is calculated in a prior step, when cronjobs are generated by the build-deploy-tool, this will need to be re-calculated using the tool +for SINGLE_NATIVE_CRONJOB in $CURRENT_CRONJOBS; do + for CLEANUP_NATIVE_CRONJOB in $NATIVE_CRONJOB_CLEANUP_ARRAY; do + if [ "${SINGLE_NATIVE_CRONJOB}" == "${CLEANUP_NATIVE_CRONJOB}" ]; then + MATCHED_CRONJOB=true + continue + fi + done + if [ "${MATCHED_CRONJOB}" != "true" ]; then + DELETE_CRONJOBS+=($SINGLE_NATIVE_CRONJOB) + fi + MATCHED_CRONJOB=false +done +for DC in ${!DELETE_CRONJOBS[@]}; do + # delete any cronjobs if they were removed + if kubectl -n ${NAMESPACE} get cronjob ${DELETE_CRONJOBS[$DC]} &> /dev/null; then + echo ">> Removing cronjob ${DELETE_CRONJOBS[$DC]} because it was removed" + kubectl -n ${NAMESPACE} delete cronjob ${DELETE_CRONJOBS[$DC]} fi done