Installation et Bootstrap
Table des matières
1 - Prérequis
Cluster Kubernetes
# Vérifier kubectl
kubectl version --client
# Vérifier l'accès au cluster
kubectl cluster-info
# Version minimum : Kubernetes 1.25+
Token GitHub/GitLab
# GitHub Personal Access Token (PAT)
# Permissions requises : repo (full control)
# GitLab Personal Access Token
# Scopes : api, read_repository, write_repository
Ressources recommandées
| Composant | CPU | Mémoire |
|---|---|---|
| Source Controller | 50m | 64Mi |
| Kustomize Controller | 50m | 64Mi |
| Helm Controller | 50m | 64Mi |
| Notification Controller | 50m | 64Mi |
| Total | 200m | 256Mi |
🔝 Retour à la table des matières
2 - Installer le CLI
macOS
brew install fluxcd/tap/flux
Linux
curl -s https://fluxcd.io/install.sh | sudo bash
Windows
choco install flux
Vérification
flux --version
# flux version 2.x.x
# Vérifier les prérequis
flux check --pre
🔝 Retour à la table des matières
3 - Bootstrap
Concept
Le bootstrap installe Flux ET crée la structure GitOps dans votre repo.
Bootstrap avec GitHub
export GITHUB_TOKEN=<your-token>
flux bootstrap github \
--owner=my-org \
--repository=gitops-fleet \
--branch=main \
--path=clusters/my-cluster \
--personal
Bootstrap avec GitLab
export GITLAB_TOKEN=<your-token>
flux bootstrap gitlab \
--owner=my-org \
--repository=gitops-fleet \
--branch=main \
--path=clusters/my-cluster
Bootstrap avec un repo existant
flux bootstrap github \
--owner=my-org \
--repository=existing-repo \
--branch=main \
--path=clusters/production \
--personal
Structure créée
gitops-fleet/
└── clusters/
└── my-cluster/
└── flux-system/
├── gotk-components.yaml # Manifests Flux
├── gotk-sync.yaml # Self-sync
└── kustomization.yaml
Options importantes
| Option | Description |
|---|---|
--owner | Organisation ou utilisateur |
--repository | Nom du repo |
--path | Chemin dans le repo |
--personal | Repo personnel (pas org) |
--private | Créer un repo privé |
--components | Composants à installer |
🔝 Retour à la table des matières
4 - Vérification
État du système
# Vérifier tous les composants
flux check
# Résultat attendu
✔ Kubernetes 1.28.0 >=1.25.0-0
✔ prerequisites checks passed
✔ source-controller: deployment ready
✔ kustomize-controller: deployment ready
✔ helm-controller: deployment ready
✔ notification-controller: deployment ready
✔ all checks passed
Lister les ressources
# GitRepositories
flux get sources git
# Kustomizations
flux get kustomizations
# HelmReleases
flux get helmreleases
Voir les pods
kubectl get pods -n flux-system
# Résultat
NAME READY STATUS
helm-controller-xxx 1/1 Running
kustomize-controller-xxx 1/1 Running
notification-controller-xxx 1/1 Running
source-controller-xxx 1/1 Running
🔝 Retour à la table des matières
5 - Désinstallation
Uninstall complet
flux uninstall --silent
Garder les resources déployées
flux uninstall --keep-namespace
Supprimer manuellement
kubectl delete namespace flux-system
🔝 Retour à la table des matières
6 - Exercices pratiques
Exercice 1 : Installation locale
# 1. Créer un cluster
kind create cluster --name flux-demo
# 2. Installer le CLI
curl -s https://fluxcd.io/install.sh | sudo bash
# 3. Vérifier les prérequis
flux check --pre
# 4. Bootstrap (remplacer par vos valeurs)
export GITHUB_TOKEN=<token>
flux bootstrap github \
--owner=YOUR-USER \
--repository=flux-demo \
--branch=main \
--path=clusters/demo \
--personal
# 5. Vérifier
flux check
flux get all
Quiz
Q1. Que fait la commande flux bootstrap ?
Réponse
flux bootstrap fait 3 choses :
- Installe les controllers Flux dans le cluster
- Crée la structure GitOps dans le repo Git
- Configure Flux pour se synchroniser lui-même depuis Git
C'est un processus auto-référentiel : Flux gère sa propre configuration.
Q2. Où sont installés les composants Flux ?
Réponse
Dans le namespace flux-system par défaut. Ce namespace contient tous les controllers et leurs configurations.
🔝 Retour à la table des matières
Points clés à retenir
- CLI flux pour l'administration
- Bootstrap = installation + structure Git
- Namespace par défaut : flux-system
flux checkpour vérifier l'état- Flux se synchronise lui-même (GitOps)