Este repo usa GitHub Actions para:
- CI: validar que
backendyfrontendbuildéan. - CD: build + push a GHCR y deploy automático en k3s (EC2).
Se ejecuta en:
pull_requesthaciamasterpushamaster
Hace:
- Build de imágenes Docker (backend/frontend).
- No publica imágenes.
Objetivo:
- que un PR no rompa el build.
Se ejecuta en:
pushamaster(tambien cuando se mergea a master).
Flujo:
- Build + push de imágenes a GHCR con tags inmutables:
ghcr.io/<owner-lc>/devops-portfolio-fastapi-backend:sha-<commit>ghcr.io/<owner-lc>/devops-portfolio-fastapi-frontend:sha-<commit>
- Deploy desde un runner self-hosted en la EC2 usando
kubectl:- actualiza imágenes con
kubectl set image - corre migraciones (Job) y espera que terminen
- verifica rollout (
kubectl rollout status)
- actualiza imágenes con
- GitHub Actions publica imágenes en GHCR.
- k3s en la EC2 hace pull de esas imágenes y recrea los pods.
- Traefik expone:
/→ frontend/api→ backend
URLs:
http://54.227.12.89/loginhttp://54.227.12.89/docs