@@ -24,24 +24,27 @@ jobs:
2424 set -e
2525 THRESHOLD=${AGE_THRESHOLD}
2626 NOW=$(date +%s)
27- echo "Deleting namespaces older than $((THRESHOLD/3600)) hours unless keep_namespace=true"
27+ echo "⚠️ Deleting namespaces older than $((THRESHOLD/3600)) hours unless keep_namespace=true"
2828 NAMESPACES=$(kubectl get ns -o json | jq -r '.items[] | select(.metadata.labels.keep_namespace != "true") | .metadata.name' | grep opencrvs | grep -v "opencrvs-deps-e2e")
29- NAMESPACES_TO_CLEANUP=''
29+ KEEP_NAMESPACES=$(kubectl get ns -o json | jq -r '.items[] | select(.metadata.labels.keep_namespace == "true") | .metadata.name')
30+ echo "🔒 Following namespaces will be skipped, label keep_namespace=true:"
31+ printf '\t- %s\n' $KEEP_NAMESPACES
32+ NAMESPACES_TO_CLEANUP=()
3033 for ns in $NAMESPACES; do
3134 UPDATED_AT=$(kubectl get ns "$ns" -o jsonpath='{.metadata.labels.updated_at}')
3235 AGE=$((NOW - UPDATED_AT))
3336 if [ -z "$UPDATED_AT" ]; then
34- echo "Skipping namespace $ns, no update_at label"
37+ echo "ℹ️ Skipping namespace $ns, no update_at label"
3538 elif [ "$AGE" -ge "$THRESHOLD" ]; then
36- echo "Adding namespace $ns to cleanup list"
37- NAMESPACES_TO_CLEANUP="${NAMESPACES_TO_CLEANUP}$ns\n"
39+ echo "🧹 Adding namespace $ns to cleanup list"
40+ NAMESPACES_TO_CLEANUP+=("$ns")
3841 else
39- echo "Skipping namespace $ns (not old enough: $((AGE/3600))h $(( (AGE%3600)/60 ))m)"
42+ echo "🕒 Skipping namespace $ns (not old enough: $((AGE/3600))h $(( (AGE%3600)/60 ))m)"
4043 fi
4144 done
42- namespaces =$(echo -e $ NAMESPACES_TO_CLEANUP | jq -R -s -c 'split("\n")[:-1]')
43- echo "namespaces=$namespaces " >> $GITHUB_OUTPUT
44- echo "namespaces=$namespaces "
45+ namespaces_json =$(printf '%s\n' "${ NAMESPACES_TO_CLEANUP[@]}" | jq -R -s -c 'split("\n")[:-1]')
46+ echo "namespaces=$namespaces_json " >> $GITHUB_OUTPUT
47+ echo "namespaces=$namespaces_json "
4548 cleanup :
4649 needs : discover_cleanup
4750 runs-on : self-hosted
5962 id : env_vars
6063 run : |
6164 echo "ENV=$(echo ${{ matrix.namespace }} | sed 's/opencrvs-//')" >> $GITHUB_OUTPUT
62- echo "CORE_IMAGE_TAG=$(helm get values opencrvs -ojson | jq .image.tag)" >> $GITHUB_OUTPUT
65+ echo "CORE_IMAGE_TAG=$(helm get values opencrvs -n ${{ matrix.namespace }} - ojson | jq .image.tag)" >> $GITHUB_OUTPUT
6366 - name : Update k8s-env/opencrvs/values.yaml
6467 env :
6568 ENV : ${{ steps.env_vars.outputs.ENV }}
@@ -72,14 +75,13 @@ jobs:
7275 kubectl delete job -n ${{ matrix.namespace }} --ignore-not-found=true data-cleanup
7376 helm template -f k8s-env/opencrvs/values.yaml \
7477 --set data_cleanup.enabled=true \
75- --set image.tag="$CORE_IMAGE_TAG" \
7678 --namespace opencrvs-${ENV} \
7779 -s templates/data-cleanup-job.yaml \
7880 oci://ghcr.io/opencrvs/opencrvs-services | kubectl apply -n opencrvs-${ENV} --wait=true -f -
7981 sleep 30;
8082 kubectl logs job/data-cleanup -f --all-containers=true -n opencrvs-${ENV} || true
8183 kubectl wait --for=condition=complete job/data-cleanup -n opencrvs-${ENV} --timeout=600s;
8284 - name : Uninstall helm release
83- run : helm uninstall opencrvs || echo "Helm release is not installed"
85+ run : helm uninstall opencrvs -n ${{ matrix.namespace }} || echo "Helm release is not installed"
8486 - name : Delete namespace ${{ matrix.namespace }}
8587 run : kubectl delete ns ${{ matrix.namespace }}
0 commit comments