Platform Engineer · SRE

Maxime Toris — GitOps Lab

Pipeline de livraison complet du commit au déploiement, avec sécurité et observabilité intégrées — sur une infrastructure à 9€/mois.

Observabilité
Status en temps réel
App Demo
Vérification...
ArgoCD
Vérification...
Grafana
Vérification...
Vault
Vérification...
DefectDojo
Vérification...
Accès démo
Explorer le lab
Service URL Login Mot de passe Rôle
ArgoCD argocd.maxto-platform.cloud ↗ guest guest123 read-only
Grafana grafana.maxto-platform.cloud ↗ guest guest123 viewer
Vault vault.maxto-platform.cloud ↗ hvs.CAESIByooeI-v1Ox… ⎘ copier
Method: Token · accès limité à secret/demo/*
token demo
DefectDojo defectdojo.maxto-platform.cloud ↗ guest Guest@Lab2026! reader
Cliquez sur un credential pour le copier dans le presse-papier.
Infrastructure
Architecture
graph LR DEV[👨‍💻 Developer] -->|git push| GL[GitLab CI] subgraph CI ["Pipeline CI"] GL --> T[Tests\ngolang:1.22] T --> B[Build image\nregistry.gitlab.com] B --> SC[Scan CVE\nTrivy] SC --> DD[DefectDojo\nCVE report] SC --> UM[Bump tag\ninfra-k8s] end subgraph VPS ["VPS Ionos — k3s"] ARGO[🔄 ArgoCD] -->|sync auto| APP[🚀 app-demo] ARGO -->|sync auto| PORT[🌐 Portfolio] APP -->|/metrics| PROM[Prometheus] PROM --> GRAF[📊 Grafana] VAULT[🔐 Vault] -->|ExternalSecrets| APP VAULT -->|ExternalSecrets| ARGO end UM -->|git commit| ARGO DD -->|import scan| DOJO[🛡 DefectDojo] style CI fill:#1c1400,stroke:#d97706 style VPS fill:#0c1929,stroke:#3b82f6
← Faire défiler pour voir le schéma complet →
CI/CD
Parcours d'un commit
👨‍💻
git push
Le développeur pousse son code. GitLab CI déclenche automatiquement le pipeline.
Tests unitaires
Exécution de la suite de tests dans un container Go isolé.
golang:1.22-alpine · go test ./...
🐳
Build & Push image
Construction de l'image Docker et push sur la registry privée GitLab.
registry.gitlab.com/mtoris/app-demo:<sha>
🔍
Scan CVE (Trivy)
Analyse de l'image pour détecter les vulnérabilités. Les CVE CRITICAL bloquent le pipeline.
aquasec/trivy:0.61.0 · rapport JSON
🛡
Import DefectDojo
Le rapport Trivy est automatiquement importé dans DefectDojo pour traçabilité et historique des vulnérabilités.
112 findings · dont CVE-2025-68121 CRITICAL
📝
Bump image tag
Le pipeline met à jour le tag de l'image dans le repo infra-k8s (GitOps).
git commit · infra-k8s/app-demo/deployment.yaml
🔄
ArgoCD détecte le changement
ArgoCD synchronise automatiquement le cluster avec le nouvel état décrit dans le repo.
sync automatique · <3 min
🚀
App déployée en production
Le nouveau pod est live. Prometheus scrape les métriques, Grafana affiche les dashboards.
https://app.maxto-platform.cloud
Stack technique
Outils & Services
k3s — Kubernetes
Orchestrateur léger sur VPS Ionos 4vCPU / 8Go RAM. Production-grade, 9€/mois.
ArgoCD
GitOps — Git est la source de vérité unique. Aucun kubectl apply manuel.
argocd.maxto-platform.cloud ↗
GitLab CI
Pipeline complet test → build → scan → deploy sur runner shell hébergé sur le VPS.
gitlab.com/Mtoris ↗
Prometheus + Grafana
Métriques infra et applicatives. ServiceMonitor, dashboards custom, alerting.
grafana.maxto-platform.cloud ↗
DefectDojo
Gestion centralisée des vulnérabilités CVE importées depuis Trivy à chaque pipeline.
defectdojo.maxto-platform.cloud ↗
HashiCorp Vault + ESO
Gestion des secrets — ExternalSecrets synchronisés depuis Vault vers Kubernetes. Zéro secret en clair dans le code.
vault.maxto-platform.cloud ↗
cert-manager + Let's Encrypt
TLS automatique sur tous les services via nginx-ingress. Renouvellement automatique.
Trivy (Aqua Security)
Scan CVE de chaque image Docker avant déploiement. Les CRITICAL bloquent le pipeline.
Sécurité
Security by design
🔐
Secrets gérés par Vault
Aucun secret en clair dans le code ou les manifests. Synchronisation via External Secrets Operator.
🔍
Scan CVE systématique
Chaque image scannée par Trivy avant déploiement. Les CRITICAL bloquent automatiquement le pipeline.
📋
Traçabilité totale
Chaque CVE est importée dans DefectDojo avec historique complet. Audit trail par commit.
🚫
Zero accès direct cluster
Tout passe par ArgoCD. Aucun kubectl apply manuel en production.
🔒
TLS partout
Tous les services exposés en HTTPS via cert-manager + Let's Encrypt. Renouvellement automatique.
↩️
Rollback instantané
Un incident = un git revert. ArgoCD reconcilie en moins de 3 minutes.