Skip to main content
Cet article contient l’infrastructure-as-code Terraform et Terragrunt pour gérer la plateforme EKB sur AWS EKS, avec stubs de support pour GKE, AKS et Kubernetes bare-metal. Il inclut tous les déploiements de graphiques Helm et les modèles de configuration d’environnement.

Documentation


Structure du référentiel


Démarrage rapide

1. Installer les outils requis

Terraform
Terragrunt
kubectl et Helm
Vérifier l’installation

2. Créer un nouvel environnement

Les nouveaux environnements sont créés en copiant env-template-folder et en remplissant les espaces réservés. Consultez Guide de déploiement Terragrunt pour le processus complet étape par étape. Le flux de haut niveau est :

Drapeaux d’activation/désactivation de service

Tous les services optionnels sont activés via des variables d’environnement. Définissez-les avant d’exécuter terragrunt apply.
Ordre de déploiement de Supabase auto-hébergéLes composants Supabase doivent être déployés dans l’ordre :

Référence des graphiques Helm


Référence des modules

modules/eks

Le module principal. Provisionne :
  • VPC avec subnets publics/privés sur 3 AZs
  • Cluster EKS (Kubernetes 1.33) et groupe de nœuds gérés pour Karpenter
  • Contrôleur Karpenter + NodePool + EC2NodeClass
  • Rôles IAM (cluster, groupe de nœuds, Karpenter, contrôleur ALB, pilote CSI EBS)
  • Toutes les versions Helm via la carte d’entrée helm_releases

modules/aws-services

Provisionne ElastiCache Redis et Amazon MQ RabbitMQ. Actif uniquement lorsque ENABLE_AWS_SERVICES=true.

modules/state

Bootstrap du bucket S3 d’état pour un nouvel environnement (versioning, chiffrement, blocage d’accès public).

modules/helm

Module de version Helm réutilisable supportant les référentiels de graphiques upstream et les graphiques locaux chart_path.

Configuration d’environnement

Espaces réservés

Chaque valeur dans env-template-folder spécifique à l’environnement utilise un espace réservé <YOUR_*>. Exécutez ce qui suit pour vérifier qu’aucun n’a été oublié avant de déployer :

État distant

L’état est stocké dans S3 par environnement. Le bucket est amorcé par state/terragrunt.hcl et référencé par root.hcl. Le modèle d’appellation est ekb-terraform-state-<env-name>.

Secrets

Les valeurs sensibles (mots de passe, clés API, ARNs de certificats) ne sont jamais validées. Elles sont transmises en tant que variables d’environnement consommées par les appels get_env() dans terragrunt.hcl, ou en tant qu’espaces réservés <YOUR_*> dans les fichiers de valeurs qui doivent être remplis avant le déploiement.

Dépannage

Vérifier les identifiants AWS
Vérifier l’accès au cluster
Vérifier le contrôleur ALB
Vérifier Karpenter
Vérifier le verrouillage d’état
Vérifier l’absence d’espaces réservés restants
Vérifier l’état de la version Helm

Support multi-cloud (Planifié)