GitOps: Git como Fuente de Verdad
GitOps es un paradigma donde la infraestructura y las aplicaciones se definen declarativamente en Git. Cualquier cambio en produccion se hace via pull request, dando trazabilidad completa y la capacidad de auditar quien cambio que y cuando.
Principios de GitOps
- Declarativo: Todo el estado deseado del sistema esta descrito en Git.
- Versionado: Git es la unica fuente de verdad. Todo cambio es un commit.
- Automatizado: Los cambios aprobados se aplican automaticamente.
- Self-healing: Si el estado real difiere del declarado, se corrige automaticamente.
# argocd-app.yml - Definir aplicacion en ArgoCD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mi-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/empresa/k8s-manifests
targetRevision: main
path: apps/mi-app/overlays/production
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true| Herramienta | Modelo | Mejor para |
|---|---|---|
| ArgoCD | Pull-based (cluster monitorea Git) | Kubernetes nativo, UI web excelente |
| Flux | Pull-based (mas ligero) | Equipos que prefieren CLI |
| Jenkins X | Push-based | Equipos enterprise con Jenkins |
🚀 Dato Clave
El flujo GitOps: Developer hace PR con cambio de manifiesto K8s, equipo revisa, se mergea a main, ArgoCD detecta el cambio y lo aplica automaticamente al cluster. Zero acceso manual al cluster en produccion.
Estructura de Repositorio GitOps
# Estructura recomendada con Kustomize
k8s-manifests/
apps/
mi-app/
base/
deployment.yml
service.yml
kustomization.yml
overlays/
staging/
kustomization.yml # replicas: 1
production/
kustomization.yml # replicas: 3
infrastructure/
monitoring/
ingress/
cert-manager/GitOps es el futuro de la gestion de infraestructura. Aprende ArgoCD y tu perfil DevOps sera mucho mas competitivo.