Flux CD Flux CD

Installer Flux et bootstrapper un cluster

Installez la CLI Flux, lancez les vérifications préalables et bootstrappez Flux pour qu'il se gère lui-même depuis Git.

10 min Débutant

Ce guide installe la CLI Flux, bootstrappe Flux dans un cluster et montre ce qu’il a committé dans votre dépôt Git. Il vous faut kubectl configuré sur un cluster avec lequel vous pouvez expérimenter librement. Un cluster local kind ou minikube est idéal, ainsi qu’un compte GitHub pour héberger le dépôt.

Créer un cluster et installer la CLI

Pour un cluster local jetable :

kind create cluster --name flux-demo
kubectl get nodes

Installez la CLI Flux avec Homebrew, ou avec le script d’installation sous Linux :

brew install fluxcd/tap/flux
# ou
curl -s https://fluxcd.io/install.sh | sudo bash

Vérifiez qu’elle fonctionne :

flux --version

Vous pouvez aussi télécharger un binaire depuis la page des releases. Flux prend en charge les trois dernières versions mineures de Kubernetes, utilisez donc un cluster raisonnablement récent.

Lancer les vérifications préalables

Avec kubectl pointant vers votre cluster, demandez à Flux si le cluster est compatible :

flux check --pre

Vous devriez voir la version de Kubernetes et une dernière ligne indiquant que les prérequis sont satisfaits.

Créer un jeton d’accès personnel

Le bootstrap a besoin d’un jeton pour créer le dépôt, pousser des commits et enregistrer une deploy key. Dans GitHub, créez un jeton d’accès personnel classic avec le scope repo, ou un jeton fine-grained avec un accès en lecture et en écriture à Contents et Administration sur le dépôt cible. Exportez-le pour le shell courant :

export GITHUB_TOKEN=<your-token>

Le jeton n’est utilisé que par la CLI pendant le bootstrap. Par défaut, Flux crée une deploy key SSH pour son accès à long terme, et le jeton n’est pas stocké dans le cluster, une courte durée de validité (des jours, pas des mois) convient donc.

Bootstrapper Flux

Lancez le bootstrap sur un compte personnel. Le dépôt est créé s’il n’existe pas :

flux bootstrap github \
  --owner=<your-github-user> \
  --repository=fleet-infra \
  --branch=main \
  --path=clusters/dev \
  --personal

Pour une organisation, omettez --personal. Les options qui comptent :

  • --repository est l’endroit où Flux stocke ses propres manifestes et, plus tard, la configuration de vos applications.
  • --path est le dossier du dépôt à partir duquel ce cluster se synchronise. Utilisez un chemin par cluster, comme clusters/dev et clusters/production, pour qu’un même dépôt puisse servir plusieurs clusters.
  • --branch est la branche sur laquelle Flux committe et qu’il suit.

La commande se connecte à GitHub, clone le dépôt, génère les manifestes de Flux, les committe et les pousse, installe Flux dans le cluster et attend que les contrôleurs soient prêts. Deux variantes que vous rencontrerez plus tard :

  • --token-auth utilise le jeton d’accès personnel lui-même via HTTPS au lieu de générer une deploy key SSH.
  • --read-write-key donne un accès en écriture à la deploy key. Vous en avez besoin quand Flux pousse lui-même des commits, comme pour l’automatisation d’images.

Le bootstrap peut être relancé sans risque. L’exécuter avec une CLI plus récente met à niveau les contrôleurs, et il prendra en compte toutes les options supplémentaires que vous passez.

Vérifier l’installation

flux check
kubectl get pods -n flux-system

flux check indique que chaque contrôleur est sain. Vous devriez voir les contrôleurs source, kustomize, helm et notification en cours d’exécution. Regardez ensuite ce que Flux a committé :

git clone https://github.com/<your-github-user>/fleet-infra.git
cd fleet-infra
tree clusters
clusters/
└── dev/
    └── flux-system/
        ├── gotk-components.yaml   # les contrôleurs et les CRD de Flux
        ├── gotk-sync.yaml         # un GitRepository et une Kustomization qui pointent vers ce dépôt
        └── kustomization.yaml

gotk signifie GitOps Toolkit. Les deux objets de gotk-sync.yaml sont le cœur de la configuration :

flux get sources git
flux get kustomizations

Le GitRepository flux-system indique à source-controller où se trouve votre dépôt et quelle branche suivre. La Kustomization flux-system indique à kustomize-controller d’appliquer tout ce qui se trouve sous ./clusters/dev de ce dépôt. Tout ce que vous ajoutez sous ce chemin est pris en compte automatiquement, et c’est ainsi que le guide suivant déploie une application.

Nettoyer

Pour retirer Flux du cluster :

flux uninstall

Cela supprime les contrôleurs, les CRD et les ressources que Flux gère dans le cluster. Cela ne supprime pas votre dépôt Git. Pour une expérience locale, kind delete cluster --name flux-demo supprime tout.

Guides populaires