
J’ai quatre clusters Kubernetes. Je veux déployer mon app sur prod-eu et prod-us, mais pas sur staging ni dev. Avec les ApplicationSets classiques, c’est du tout ou rien - soit on cible tous les clusters qui matchent un label, soit on hardcode la liste.
Le problème devient vite ingérable. Chaque équipe veut un contrôle fin sur ses déploiements. Modifier les labels des clusters pour chaque app n’est pas réaliste. Et maintenir des listes statiques dans les ApplicationSets, c’est la garantie d’oublier un cluster.
Comment ça marche
Le plugin s’intègre comme un generator dans les ApplicationSets. Au lieu de lister les clusters dans l’ApplicationSet, on délègue au plugin.
|
|
Chaque équipe contrôle ses déploiements via un fichier .argocd.json dans son repo :
|
|
Le plugin clone le repo, parse les fichiers JSON, et renvoie uniquement les clusters avec enabled: true. ArgoCD génère alors les Applications correspondantes.
L’avantage : le contrôle est déclaratif et versionné. Une PR pour activer un cluster, une autre pour le désactiver. L’historique Git trace tout.
Lancer le plugin
|
|
Variables d’environnement :
AUTH_TOKEN: token d’auth pour ArgoCDPAT_TOKEN: token Git pour cloner les repos privésPORT: port du serveur (défaut 8080)
Build Docker
|
|
Code source
📥 app.py - Plugin FastAPI 📥 Dockerfile - Image Docker 📥 test_app.py - Tests unitaires