Kundenprojekt für Hamdiservices
GitOps-Delivery für eine Next.js-Plattform
Eine GitLab-integrierte CI/CD- und GitOps-Pipeline für eine Next.js-Blogplattform auf RKE2: bauen, testen, scannen und per Argo CD ausrollen, wie in Produktion.
Projekt
Kundenprojekt für Hamdiservices
Schwerpunkte
CI/CD, GitOps, Security
Technologien
Überblick
Die Anwendung ist ein Next.js-Blog mit MongoDB und NextAuth.js. Ziel war ein produktionsnahes Setup: Container in GitLab CI bauen, testen und scannen und das Deployment dann sauber per GitOps an Argo CD übergeben.
Die Pipeline umfasst 14 Jobs in 6 Stages, darunter Container-Scanning mit Trivy, SAST, Secret Detection und OWASP-ZAP-Baseline-Scans. Kustomize-Overlays trennen Dev und Prod.
Umsetzung
- Push startet die PipelineJeder Push ins GitLab-Repository startet die Pipeline: Build, Test, Deploy, Security-Scan, Performance und Cleanup.
- Image bauen und pushenMulti-Stage-Build auf Node.js 18 Alpine, Push nach Docker Hub (elmehdi74/blog-rke2) mit latest- und Versions-Tags. Finale Größe rund 156 MB.
- GitOps-Manifeste aktualisierenNach erfolgreichen Tests aktualisiert die Pipeline die Kustomize-Manifeste im GitOps-Repository.
- Argo CD synchronisiertArgo CD v3.2.2 erkennt die Änderung und gleicht den Cluster automatisch ab, mit Auto-Sync, Self-Healing und Rollback per Klick.
- Traffic über TraefikTraefik terminiert TLS und leitet Leser auf den Blog und Admins über /admin auf das Dashboard.
- Persistenz mit LonghornMongoDB läuft als StatefulSet auf einem 10-GiB-Longhorn-Volume und übersteht Pod-Neustarts und Cluster-Updates.
Einblicke
GitLab-CI/CD-Pipeline · GitOps mit Argo CD: 21 Ressourcen, alle Healthy und Synced · Startseite der Blog-Anwendung · Admin-Dashboard
Von Argo CD verwaltete Ressourcen
- Deployment nextjs-blog mit 3 Replikas und Rolling Updates
- StatefulSet mongodb mit 10-GiB-PVC auf Longhorn
- Service ClusterIP auf Port 3000 und Ingress über Traefik
- ConfigMap und Secret für Umgebungsvariablen und Zugangsdaten
Kustomize-Struktur
k8s/
├── base/ deployment, service, ingress, configmap, secret, mongodb
└── overlays/
├── dev/ kustomization.yaml
└── prod/ kustomization.yaml, replica-patch.yamlSicherheit im Container
- Non-root-User zur Laufzeit
- Alpine-Basis mit minimaler Angriffsfläche
- Keine Dev-Abhängigkeiten im finalen Image
- Trivy-Scan in jeder Pipeline
Ergebnisse
- Vollständige CI/CD-Pipeline mit 14 Jobs in 6 Stages
- GitOps-Deployment mit Argo CD und Auto-Sync
- Security-Scans mit Trivy, SAST und OWASP ZAP
- Zero-Downtime-Deployments mit Health Checks
- Persistenter Storage mit Longhorn
- Rollenbasierte Zugriffskontrolle mit 4 Rollen und JWT-Authentifizierung
Kundenstimme
“I had the pleasure of working with Elmehdi on our infrastructure modernization project for us over four months. He is an incredibly skilled professional who brought deep Kubernetes and automation expertise to our team. I was particularly impressed by his ability to build a complete production-grade Kubernetes platform that reduced our deployment time.


Sie planen etwas Ähnliches?
Ich unterstütze Teams in der DACH-Region und in frankophonen Ländern, remote oder vor Ort im Raum Stuttgart.