Aller au contenu principal

Installation et Bootstrap


Table des matières

  1. Prérequis
  2. Installer le CLI
  3. Bootstrap
  4. Vérification
  5. Désinstallation
  6. Exercices pratiques

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

ComposantCPUMémoire
Source Controller50m64Mi
Kustomize Controller50m64Mi
Helm Controller50m64Mi
Notification Controller50m64Mi
Total200m256Mi

🔝 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

OptionDescription
--ownerOrganisation ou utilisateur
--repositoryNom du repo
--pathChemin dans le repo
--personalRepo personnel (pas org)
--privateCréer un repo privé
--componentsComposants à 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 :

  1. Installe les controllers Flux dans le cluster
  2. Crée la structure GitOps dans le repo Git
  3. 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 check pour vérifier l'état
  • Flux se synchronise lui-même (GitOps)

← Chapitre précédent | Chapitre suivant : Sources →