Pipeline CI/CD Self-hosted
Desafío y Solución
Diseñé e implementé un pipeline de CI/CD completo sobre infraestructura self-hosted, conectando GitHub Actions, Terraform y Kubernetes. El flujo construye y publica una API en FastAPI, provisiona un repositorio ECR mediante Floci y actualiza el clúster con un patrón GitOps, sin necesidad de una cuenta AWS real.
Arquitectura del Pipeline
Push a main
GitHub activa el workflow.
Build Docker
El runner crea una imagen con el hash del commit.
Terraform apply
Asegura el ECR emulado y su estado remoto.
Push al ECR
Publica la imagen versionada en el registry.
Deploy GitOps
Actualiza el manifiesto, aplica kubectl y valida el rollout.
Commit [skip ci]
Git conserva el estado desplegado sin crear loops.
Decisiones Clave
GitOps como fuente única de verdad: el manifiesto actualizado vuelve al repositorio.
Backend remoto S3 emulado para conservar el estado de Terraform entre ejecuciones.
Tags únicos por commit en lugar de latest para activar despliegues deterministas.
Credenciales fuera del control de versiones mediante variables y configuración externa.