Flux CD Flux CD

Gérer Flux avec la CLI Flux

Vérifiez, inspectez, réconciliez, comparez, tracez, suspendez et dépannez les ressources Flux depuis le terminal.

10 min Débutant

Flux n’a pas d’interface web intégrée. Tout ce que vous faites au quotidien passe par la CLI flux et kubectl, ce qui facilite aussi le scripting. Ce guide suppose que Flux est bootstrappé et que la Kustomization webapp des guides précédents existe.

Installer la CLI et vérifier le cluster

Installez la CLI (brew install fluxcd/tap/flux sur macOS, ou curl -s https://fluxcd.io/install.sh | sudo bash) et vérifiez-la :

flux --version
flux check --pre   # avant l'installation : le cluster est-il compatible ?
flux check         # après l'installation : les contrôleurs sont-ils sains ?

Exécutez flux --help pour lister les commandes. La plupart des commandes lisent par défaut le namespace flux-system. Ajoutez -A (--all-namespaces) pour regarder partout, ou -n <namespace> pour un namespace précis.

Inspecter ce qui existe

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

Chaque ligne affiche la révision de l’objet, s’il est Ready, s’il est suspendu, et le dernier message d’état. flux get all -A est une bonne première commande quand quelque chose semble anormal. Pour voir comment les objets sont reliés entre eux :

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

tree liste tout ce qu’une Kustomization gère. trace fait l’inverse : à partir d’un objet en cours d’exécution, il montre de quelle Kustomization, de quelle source Git et de quelle révision il provient.

Réconcilier à la demande

Flux interroge selon un intervalle. Pour forcer tout de suite :

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

--with-source rafraîchit la source Git avant d’appliquer, de sorte qu’un commit que vous venez de pousser est pris en compte immédiatement.

Prévisualiser avant de pousser

Deux commandes génèrent et comparent sans modifier le cluster, ce qui est utile en revue de code et en CI :

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

build affiche les manifestes que Flux appliquerait. diff les compare avec ce qui tourne. Les deux lisent un dossier local, exécutez-les donc depuis un clone du dépôt.

Dépanner

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

flux logs diffuse les logs des contrôleurs, flux events affiche les événements Kubernetes d’un objet précis, et kubectl describe affiche les conditions et la dernière erreur d’un objet. Les causes courantes d’une Kustomization en échec sont un path erroné, une dépendance manquante (vérifiez dependsOn), un YAML invalide ou un contrôle de santé en échec quand wait: true est défini. Pour un GitRepository bloqué, describe montre généralement une erreur d’authentification.

Créer des ressources sans écrire de YAML

La plupart des commandes flux create peuvent afficher du YAML au lieu de l’appliquer. Committez la sortie dans Git, ce qui garde tout déclaratif :

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

Sans --export, la commande applique directement l’objet, ce qui convient pour des expériences mais laisse le cluster désynchronisé de Git. Pour exporter des objets existants en YAML, utilisez flux export :

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

Mettre en pause, reprendre et nettoyer

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

suspend arrête la réconciliation et resume la relance. delete supprime la Kustomization, et avec prune: true il supprime aussi les ressources qu’elle gère, ce qui peut prendre un moment. uninstall retire Flux lui-même du cluster. Exécutez flux get kustomizations ensuite pour confirmer.

Petits extras utiles

  • flux stats résume combien de ressources Flux existent et combien sont prêtes.
  • Flux 2.9 a ajouté un système de plugins pour la CLI (flux plugin) avec des plugins comme mirror et schema. Exécutez flux plugin --help pour voir ce que propose votre version.
  • Comme il n’y a pas d’interface, de nombreuses équipes ajoutent des tableaux de bord Grafana ou un tableau de bord communautaire au-dessus des métriques exposées par Flux.

Guides populaires