Aller au contenu principal

Kyverno

Overview

Kyverno, c'est le policy engine Kubernetes CNCF qui pense que forcer tes équipes à apprendre Rego (OPA) pour écrire des policies, c'est de la torture. Il utilise du YAML standard avec syntax Kubernetes native pour définir des règles de validation, mutation, et génération automatique de ressources. Si tu veux de la policy governance sans PhD en langage exotique, c'est parfait.

Kyverno fonctionne avec des CRDs Policy et ClusterPolicy qui définissent des règles en YAML. Validation (bloquer ressources non conformes), mutation (modifier ressources automatiquement), génération (créer ressources automatiquement). Admission controller natif K8s avec reporting et observability intégrés.

Kyverno se distingue par sa simplicité YAML (pas de DSL custom), son approche Kubernetes-native (CRDs standard), et ses capabilities complètes (validate, mutate, generate) dans un seul outil unifié.


Informations essentielles

PropriétéValeur
Site officielhttps://kyverno.io/
Repositoryhttps://github.com/kyverno/kyverno
LicenceApache 2.0
DéveloppeurKyverno (CNCF)
LangageGo
Version K8s1.25+

Cas d'usage typiques

  • Enforcement de security policies (NetworkPolicies obligatoires, pas de priviléged containers)
  • Mutation automatique de resources (ajout labels, annotations, sidecars)
  • Génération automatique de ressources (RBAC, NetworkPolicies, Secrets)
  • Compliance et governance avec rules centralisées et auditables
  • Multi-tenancy avec isolation automatique entre namespaces
  • GitOps policies avec policies-as-code versionnées

Intégrations et écosystème

  • Kubernetes : admission controller natif, CRDs standard, RBAC integration
  • Policy libraries : Kyverno Policy Library avec 100+ policies prêtes
  • CI/CD : validation policies en amont avec Kyverno CLI
  • GitOps : ArgoCD, Flux pour déploiement policies automatique
  • Monitoring : métriques Prometheus, policy violations reporting
  • Tools : kubectl plugin, VS Code extension, policy testing framework

Avantages

  • YAML natif : pas de DSL custom, syntax Kubernetes familière
  • CNCF officiel : projet mature, production-ready, bien maintenu
  • Triple capability : validate, mutate, generate dans un seul outil
  • No learning curve : si tu connais YAML K8s, tu sais utiliser Kyverno
  • Policy library : 100+ policies prêtes pour use cases communs
  • Observability : reporting detaillé, métriques, policy violations tracking

Inconvénients et limitations

  • Performance impact : validation/mutation ajoute latence aux déploiements
  • YAML verbosity : policies complexes peuvent devenir verbeuses
  • Limited expressiveness : moins flexible que Rego pour logique complexe
  • Debugging challenges : troubleshooting policies failures peut être délicat
  • Resource consumption : admission controller consomme ressources cluster

Alternatives

  • Open Policy Agent (OPA) : plus flexible mais nécessite apprentissage Rego
  • Gatekeeper : OPA pour Kubernetes avec CRDs (compromis entre les deux)
  • ValidatingAdmissionWebhooks : custom admission controllers (dev heavy)
  • Falco : pour runtime security policies (pas admission control)
  • Cloud native : AWS Config Rules, Azure Policy (vendor lock-in)

Ressources