From a39d256d6219ee6f0de6ca17295a55782e621e25 Mon Sep 17 00:00:00 2001 From: Bast Date: Mon, 2 Nov 2026 12:30:37 -0600 Subject: [PATCH] =?UTF-8?q?chore:=20entferne=20k8s-deployment=20und=20tf-k?= =?UTF-8?q?onfiguration=20f=C3=BCr=20native=20compose=20migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 64 --------------------------- main.tf | 85 ------------------------------------ 2 files changed, 149 deletions(-) delete mode 100644 .github/workflows/deploy.yml delete mode 100644 main.tf diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 21b7251..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,64 +0,0 @@ -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 - - - name: Terraform Deploy - run: | - # DIE RADIKALE RETTUNG: Zwingt Kubernetes, die Altlasten SOFORT und rückstandslos zu löschen! - docker exec local-k3s-platform kubectl delete ingress cloudmon-ingress -n default --ignore-not-found=true --force --grace-period=0 2>/dev/null || true - docker exec local-k3s-platform kubectl delete service cloudmon-service -n default --ignore-not-found=true --force --grace-period=0 2>/dev/null || true - docker exec local-k3s-platform kubectl delete deployment cloudmon -n default --ignore-not-found=true --force --grace-period=0 2>/dev/null || true - - # Kurze Atempause für die Cluster-API (2 Sekunden) - sleep 2 - - 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!" diff --git a/main.tf b/main.tf deleted file mode 100644 index a81ebbd..0000000 --- a/main.tf +++ /dev/null @@ -1,85 +0,0 @@ -terraform { - required_providers { - kubernetes = { - source = "hashicorp/kubernetes" - version = "~> 2.26" - } - } -} - -variable "app_version" { - type = string - default = "latest" -} - -provider "kubernetes" { - config_path = "./kind_kubeconfig" - host = "https://local-k3s-platform:6443" - insecure = true -} - -# 1. DAS DASHBOARD DEPLOYMENT -resource "kubernetes_deployment_v1" "cloudmon" { - metadata { - name = "cloudmon" - namespace = "default" - labels = { app = "cloudmon" } - } - spec { - replicas = 1 - selector { match_labels = { app = "cloudmon" } } - template { - metadata { labels = { app = "cloudmon" } } - spec { - container { - name = "dashboard" - image = "registry.local/bast/cloudmon:${var.app_version}" - image_pull_policy = "Always" - port { container_port = 8000 } - } - } - } - } -} - -# 2. DER KUBERNETES SERVICE (Port 8000 intern freischalten) -resource "kubernetes_service_v1" "cloudmon_service" { - metadata { - name = "cloudmon-service" - namespace = "default" - } - spec { - selector = { app = "cloudmon" } - port { - port = 80 - target_port = 8000 - } - } -} - -# 3. DAS INGRESS ROUTING (Macht cloudmon unter cloudmon.local über Port 8080 erreichbar!) -resource "kubernetes_ingress_v1" "cloudmon_ingress" { - metadata { - name = "cloudmon-ingress" - namespace = "default" - annotations = { "kubernetes.io/ingress.class" = "nginx" } - } - spec { - rule { - host = "cloudmon.local" - http { - path { - path = "/" - path_type = "Prefix" - backend { - service { - name = kubernetes_service_v1.cloudmon_service.metadata[0].name - port { number = 80 } - } - } - } - } - } - } -} -