Gatus — statut du Homelab
| Propriété | Valeur |
|---|---|
| Namespace | status |
| URL | https://status.lab.djayzone.com |
| API | /api/v1/endpoints/statuses |
| Stockage | Aucun, historique en mémoire |
| Configuration | apps/ovh-primary/status/config.yaml |
Rôle
Gatus exécute la liste déclarée dans son ConfigMap, couvrant API Kubernetes, DNS, observabilité, applications, routes publiques et SSO. Le total doit être lu dynamiquement depuis l'API ; il ne doit pas être codé en dur.
Les surfaces actuellement suspendues restent supervisées lorsqu'une page de maintenance publique existe : c'est notamment le cas de WebWars et Squash TM. L'Atelier Jemimah reste absent tant que son Deployment et sa route utile sont suspendus. NotreCouple est contrôlé sur son runtime public et interne ainsi que sur sa surface d'administration dédiée. La porte MCP Mammouth est contrôlée sans credential et doit répondre 401, ce qui vérifie qu'elle reste fermée sans stocker de secret dans Git.
Exploitation
kubectl -n status get deploy,pod,svc,ingress
kubectl -n status logs deployment/gatus --tail=200
curl.exe https://status.lab.djayzone.com/api/v1/endpoints/statuses
Ajouter un contrôle
Lors de chaque ajout, modification ou suppression d'un site/service, mettre à jour dans le même commit :
- les endpoints de
apps/ovh-primary/status/config.yaml; - le dashboard Grafana applicatif si la nouvelle surface nécessite une vue dédiée ;
- la fiche applicative et la vue d'ensemble du wiki ;
- le portail Admin si l'URL doit être proposée aux utilisateurs.
Modifier le ConfigMap GitOps, définir des conditions explicites sur le statut, le corps et le temps de réponse, valider Kustomize puis pousser.
Gatus ne recharge pas automatiquement le ConfigMap monté. L'annotation homelab.djayzone.com/config-revision de status/deployment.yaml doit donc être égale à gitblob-<12 premiers caractères du Git blob SHA de status/config.yaml>. Le contrat NotreCouple recalcule ce SHA : toute modification du ConfigMap sans mise à jour de la révision échoue. La modification de l'annotation déclenche un rolling restart sans interruption grâce aux deux réplicas et au PDB.