Flux CD Flux CD

Gestiona Flux con la CLI de Flux

Comprueba, inspecciona, reconcilia, compara, rastrea, suspende y soluciona problemas de recursos de Flux desde la terminal.

10 min Principiante

Flux no tiene una interfaz web integrada. Todo lo que haces día a día pasa por la CLI flux y kubectl, lo que también facilita automatizarlo con scripts. Esta guía asume que Flux tiene bootstrap hecho y que la Kustomization webapp de las guías anteriores existe.

Instala la CLI y comprueba el clúster

Instala la CLI (brew install fluxcd/tap/flux en macOS, o curl -s https://fluxcd.io/install.sh | sudo bash) y compruébala:

flux --version
flux check --pre   # antes de instalar: ¿es compatible el clúster?
flux check         # tras instalar: ¿están sanos los controladores?

Ejecuta flux --help para listar los comandos. La mayoría de los comandos leen del namespace flux-system por defecto. Añade -A (--all-namespaces) para mirar en todas partes, o -n <namespace> para uno concreto.

Inspecciona lo que existe

flux get all -A
flux get sources git
flux get kustomizations
flux get helmreleases -A

Cada fila muestra la revisión del objeto, si está Ready, si está suspendido y el último mensaje de estado. flux get all -A es un buen primer comando cuando algo parece ir mal. Para ver cómo se relacionan los objetos:

flux tree kustomization flux-system
flux trace deployment webapp -n webapp

tree lista todo lo que gestiona una Kustomization. trace va en sentido contrario: dado un objeto en vivo, muestra de qué Kustomization y de qué source y revisión de Git procede.

Reconcilia bajo demanda

Flux consulta según un intervalo. Para forzarlo ahora:

flux reconcile source git flux-system
flux reconcile kustomization webapp --with-source
flux reconcile helmrelease podinfo -n podinfo

--with-source actualiza el source de Git antes de aplicar, de modo que un commit que acabas de subir se recoge de inmediato.

Previsualiza antes de hacer push

Dos comandos renderizan y comparan sin cambiar el clúster, lo que es útil en revisión de código y en CI:

flux build kustomization webapp --path ./apps/webapp --dry-run
flux diff kustomization webapp --path ./apps/webapp

build imprime los manifiestos que Flux aplicaría. diff los compara con lo que está en ejecución. Ambos leen de una carpeta local, así que ejecútalos desde un clon del repositorio.

Soluciona problemas

flux logs --all-namespaces --level=error --follow
flux events --for Kustomization/webapp
kubectl describe kustomization webapp -n flux-system

flux logs transmite los logs de los controladores, flux events muestra los eventos de Kubernetes de un objeto concreto y kubectl describe muestra las condiciones y el último error de un objeto. Causas comunes de una Kustomization que falla son una path incorrecta, una dependencia ausente (comprueba dependsOn), YAML inválido o una comprobación de salud fallida cuando wait: true está definido. En un GitRepository atascado, describe suele mostrar un error de autenticación.

Crea recursos sin escribir YAML

La mayoría de los comandos flux create pueden imprimir YAML en lugar de aplicarlo. Haz commit de la salida en Git, lo que mantiene todo declarativo:

flux create source git webapp-config \
  --url=https://github.com/your-org/webapp-config \
  --branch=main --interval=1m --export > webapp-source.yaml

flux create kustomization webapp \
  --source=GitRepository/webapp-config \
  --path=./apps/webapp --prune=true --interval=10m --export > webapp.yaml

Sin --export el comando aplica el objeto directamente, lo cual está bien para experimentos pero deja el clúster desincronizado respecto a Git. Para volcar objetos existentes como YAML, usa flux export:

flux export source git --all
flux export kustomization --all

Pausa, reanuda y limpia

flux suspend kustomization webapp
flux resume kustomization webapp
flux delete kustomization webapp
flux uninstall

suspend detiene la reconciliación y resume la reinicia. delete elimina la Kustomization y, con prune: true, también elimina los recursos que gestiona, así que puede tardar un momento. uninstall elimina el propio Flux del clúster. Ejecuta flux get kustomizations después para confirmarlo.

Extras prácticos

  • flux stats resume cuántos recursos de Flux existen y cuántos están listos.
  • Flux 2.9 añadió un sistema de plugins de CLI (flux plugin) con plugins como mirror y schema. Ejecuta flux plugin --help para ver qué ofrece tu versión.
  • Como no hay interfaz, muchos equipos añaden dashboards de Grafana o un dashboard de la comunidad sobre las métricas que expone Flux.

Guías populares