All checks were successful
cloudmon GitOps Deploy / build-and-deploy (push) Successful in 42s
58 lines
2.4 KiB
YAML
58 lines
2.4 KiB
YAML
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!"
|