From cf5e520f2b57f0cf2c966b35e9abfc83db891ea0 Mon Sep 17 00:00:00 2001 From: Bast Date: Sun, 1 Nov 2026 06:46:15 -0600 Subject: [PATCH] feat: init cloudmon dashboard mit d3.js mindmap --- .github/workflows/deploy.yml | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..fa6ff3a --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,58 @@ +name: cloudmon GitOps Deploy + +on: + push: + branches: [ "main" ] + workflow_dispatch: + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + container: catthehacker/ubuntu:act-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Trust Local Nginx Certificate Inside Container + run: | + mkdir -p /usr/local/share/ca-certificates/ + cp nginx_ssl/nginx.crt /usr/local/share/ca-certificates/nginx-sandbox.crt 2>/dev/null || echo "Nutze Workspace-Zertifikat" + update-ca-certificates + + # Nutzt dein PAT für den schnellen, unkomplizierten Push via localhost:3005 + - name: Log in to Local Registry + run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login localhost:3005 -u ${{ github.actor }} --password-stdin + + # Baut das schlanke Python-Image für das Dashboard + - name: Build Dashboard Image + run: | + docker build -t localhost:3005/${{ github.repository }}:${{ github.sha }} . + docker build -t localhost:3005/${{ github.repository }}:latest . + + # Schiebt das Image über das unverschlüsselte Socket-Tor hoch + - name: Push Dashboard Image + run: | + docker push localhost:3005/${{ github.repository }}:${{ github.sha }} + docker push localhost:3005/${{ github.repository }}:latest + + # Bereitet die echten K3s-Schlüssel aus dem automatischen Secret vor + - name: Prepare Kubernetes Access + run: | + echo "${{ secrets.KUBECONFIG_DATA }}" > ./kind_kubeconfig + chmod 600 ./kind_kubeconfig + + # Bereinigt alte Reste und zündet das dezentrale Terraform-Zentral-Binary + - name: Terraform Deploy + run: | + docker exec local-k3s-platform kubectl delete deployment cloudmon service cloudmon-service ingress-v1 cloudmon-ingress -n default --ignore-not-found=true 2>/dev/null || true + + terraform init + terraform apply -auto-approve -var="app_version=${{ github.sha }}" + + - name: Verify Dashboard Health + run: | + echo "Warte auf die cloudmon-Pods und das Ingress-Routing..." + sleep 10 + # Testet den Zugriff mit dem passenden Host-Header über das interne Netz + curl --fail --connect-timeout 5 -H "Host: cloudmon.local" http://local-k3s-platform:80/ || exit 1 + echo "Erfolg: Das Boday-IT cloudmon Dashboard läuft fehlerfrei im Cluster!"