Skip to content Skip to footer

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

GitLab CIArgo CDKustomizeTrivyOWASP ZAPDockerRKE2TraefikLonghornNext.jsMongoDB

Ü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

  1. Push startet die PipelineJeder Push ins GitLab-Repository startet die Pipeline: Build, Test, Deploy, Security-Scan, Performance und Cleanup.
  2. 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.
  3. GitOps-Manifeste aktualisierenNach erfolgreichen Tests aktualisiert die Pipeline die Kustomize-Manifeste im GitOps-Repository.
  4. 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.
  5. Traffic über TraefikTraefik terminiert TLS und leitet Leser auf den Blog und Admins über /admin auf das Dashboard.
  6. 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.yaml

Sicherheit 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.

Ismail HamdiHamdiservices, Montréal · Empfehlung auf LinkedIn, Februar 2026 (Original auf Englisch)Empfehlung auf LinkedIn ansehen →

Sie planen etwas Ähnliches?

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