À propos du projet

Ce dépôt fournit une stack racine Terraform pour héberger plusieurs locataires sur une plateforme Kubernetes locale (k3s ou Minikube). Il suit une approche « un domaine = un fichier YAML », permettant aux opérateurs de gérer l'hébergement multi-domaines sur un seul cluster. La plateforme provisionne un cloisonnement par locataire avec des namespaces dédiés, des ResourceQuotas et des identifiants de base de données. Les fonctionnalités clés incluent : - 16 services partagés optionnels tels que MySQL, PostgreSQL, Redis, Ollama, Vault, Zitadel, Argo CD, MinIO et Longhorn. - Deux chemins d'ingress : Cloudflare Tunnel pour les charges de travail HTTP/HTTPS et MetalLB L2 pour les protocoles L4 (UDP/TCP brut). - TLS via Let's Encrypt et cert-manager, avec Traefik comme contrôleur d'ingress. - GitOps via Argo CD pour les applications gérées par charts. - Stockage persistant sur le système de fichiers de l'hôte par défaut, avec réplication de blocs inter-nœuds optionnelle via Longhorn. - Sauvegardes automatisées vers B2 avec restic pour les bases de données et les volumes persistants. La stack compose trois modules Terraform upstream (cluster, addons et charges de travail des locataires) et peut être amorcée à partir de zéro avec une seule commande (`./tf bootstrap-k3s` ou `./tf bootstrap-minikube`). Elle est conçue pour une limite de confiance à opérateur unique où chaque locataire est géré par le même opérateur.