Nightly Helm Cleanup QSOS (Dev and Test) #192
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly Helm Cleanup QSOS (Dev and Test) | |
| on: | |
| schedule: | |
| - cron: "0 8 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: helm-cleanup-${{ github.workflow }} | |
| cancel-in-progress: false | |
| jobs: | |
| helm-uninstall-all: | |
| name: Helm uninstall all (${{ matrix.environment }}) | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| environment: | |
| - qsos-dev | |
| - qsos-test | |
| # Use GitHub Environments so `secrets.*` / `vars.*` resolve per-environment. | |
| environment: ${{ matrix.environment }} | |
| steps: | |
| - name: Login to cluster and uninstall Helm releases | |
| uses: bcgov/action-oc-runner@111868d1fc50db0a40417ba321d865ef5c931bbd # v1.7.0 | |
| with: | |
| oc_namespace: ${{ secrets.oc_namespace }} | |
| oc_token: ${{ secrets.oc_token }} | |
| oc_server: ${{ vars.oc_server }} | |
| commands: | | |
| set -euo pipefail | |
| ns="${{ secrets.oc_namespace }}" | |
| echo "Target namespace: ${ns}" | |
| if ! command -v helm >/dev/null 2>&1; then | |
| echo "ERROR: 'helm' is not available on this runner. Install helm in the runner image or extend this workflow to install it at runtime." >&2 | |
| exit 1 | |
| fi | |
| echo "Helm releases in ${ns}:" | |
| helm ls -n "${ns}" || true | |
| releases="$(helm ls -n "${ns}" -q || true)" | |
| if [ -z "${releases}" ]; then | |
| echo "No Helm releases found in ${ns}. Nothing to uninstall." | |
| exit 0 | |
| fi | |
| echo "Uninstalling releases:" | |
| echo "${releases}" | |
| while IFS= read -r release; do | |
| [ -n "${release}" ] || continue | |
| echo "Uninstalling ${release}..." | |
| helm uninstall "${release}" -n "${ns}" --wait --timeout 10m | |
| done <<< "${releases}" | |
| echo "Cleanup complete." |