chore: entferne k8s-deployment und tf-konfiguration für native compose migration

This commit is contained in:
Bast 2026-11-02 12:30:37 -06:00
parent 576448a486
commit a39d256d62
2 changed files with 0 additions and 149 deletions

View file

@ -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!"

85
main.tf
View file

@ -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 }
}
}
}
}
}
}
}