Aller au contenu principal

Kustomize

Overview

Kustomize est un outil natif Kubernetes (intégré dans kubectl depuis la version 1.14) qui permet de personnaliser des manifests YAML Kubernetes sans utiliser de templating. L'outil fonctionne par composition et patches : tu définis une base de manifests, puis tu appliques des modifications (kustomizations) pour créer des variantes pour différents environnements.

Kustomize évite la duplication de code en permettant de réutiliser des manifests de base et d'appliquer uniquement les différences nécessaires. L'approche est purement déclarative et ne nécessite pas de langage de templating.


Informations essentielles

PropriétéValeur
Site officielhttps://kustomize.io/
LicenceApache 2.0
NationalitéInternational (projet Kubernetes)
TypePersonnalisation de manifests Kubernetes sans templating
DéploiementCLI, intégré dans kubectl, CI/CD
DifficultéDébutant à intermédiaire
TechnologiesGo, Kubernetes, YAML

TL;DR

Kustomize est idéal si tu veux personnaliser des manifests Kubernetes sans templating, en utilisant une approche de composition purement déclarative. Il convient particulièrement aux cas où tu veux maintenir plusieurs environnements (dev, staging, prod) avec des variations minimales. L'outil est simple, natif Kubernetes, et évite la complexité des templates. En contrepartie, pour des cas très complexes, les templates (Helm) peuvent être plus adaptés. La gestion de nombreuses variantes peut devenir verbeuse. Certaines opérations avancées peuvent être limitées.


Compatibilité et intégrations

  • Kubernetes : intégré natif dans kubectl
  • Format : YAML pur, pas de templating
  • Intégration : kubectl, GitOps (Flux, ArgoCD), CI/CD
  • Écosystème : compatible avec tous les manifests Kubernetes
  • Simplicité : pas de dépendances externes

Avantages

  • Intégré natif dans kubectl
  • Approche simple sans templating
  • Purement déclaratif (YAML)
  • Évite la duplication de code
  • Pas de dépendances externes
  • Facile à apprendre et utiliser

Limites

  • Moins flexible que Helm pour des cas complexes
  • Gestion de nombreuses variantes peut devenir verbeuse
  • Certaines opérations avancées peuvent être limitées
  • Pas de gestion de dépendances comme Helm
  • Moins de fonctionnalités que les outils avec templating

Ressources