Saltar al contenido principal
Este artículo contiene la infraestructura como código (IaC) de Terraform y Terragrunt para gestionar la plataforma EKB en AWS EKS, con módulos de soporte para GKE, AKS y Kubernetes bare-metal. Incluye todos los despliegues de charts Helm y plantillas de configuración de entornos.

Documentación


Estructura del Repositorio


Inicio Rápido

1. Instale las Herramientas Requeridas

Terraform
Terragrunt
kubectl y Helm
Verificar instalación

2. Cree un Nuevo Entorno

Los nuevos entornos se crean copiando env-template-folder y completando los placeholders. Consulte la Guía de Despliegue con Terragrunt para el proceso completo paso a paso. El flujo de alto nivel es:

Banderas de Habilitación/Deshabilitación de Servicios

Todos los servicios opcionales se activan a través de variables de entorno. Establézcalas antes de ejecutar terragrunt apply.
Orden de Despliegue de Supabase AutoalojadoLos componentes de Supabase deben desplegarse en secuencia:

Referencia de Charts Helm


Referencia de Módulos

modules/eks

El módulo principal. Provisiona:
  • VPC con subredes públicas/privadas en 3 AZs
  • Cluster EKS (Kubernetes 1.33) y grupo de nodos administrado para Karpenter
  • Controlador Karpenter + NodePool + EC2NodeClass
  • Roles IAM (cluster, grupo de nodos, Karpenter, controlador ALB, controlador EBS CSI)
  • Todos los releases de Helm a través del mapa de entrada helm_releases

modules/aws-services

Provisiona ElastiCache Redis y Amazon MQ RabbitMQ. Solo activo cuando ENABLE_AWS_SERVICES=true.

modules/state

Inicializa el bucket de estado S3 para un nuevo entorno (versionado, cifrado, bloqueo de acceso público).

modules/helm

Módulo de release Helm reutilizable que soporta repositorios de charts upstream y charts locales con chart_path.

Configuración del Entorno

Placeholders

Cada valor en env-template-folder que sea específico del entorno usa un placeholder <YOUR_*>. Ejecute lo siguiente para verificar que no quede nada pendiente antes de desplegar:

Estado Remoto

El estado se almacena en S3 por entorno. El bucket es inicializado por state/terragrunt.hcl y referenciado por root.hcl. El patrón de nombres es ekb-terraform-state-<env-name>.

Secretos

Los valores sensibles (contraseñas, claves API, ARNs de certificados) nunca se comprometen en el repositorio. Se pasan como variables de entorno consumidas por las llamadas get_env() en terragrunt.hcl, o como placeholders <YOUR_*> en archivos de valores que deben completarse antes del despliegue.

Solución de Problemas

Verificar credenciales de AWS
Verificar acceso al cluster
Verificar el Controlador ALB
Verificar Karpenter
Verificar bloqueo de estado
Verificar que no queden placeholders
Verificar el estado de los releases Helm

Soporte Multi-Nube (Planificado)