Aller au contenu

Il était une fois... Kyverno

Conçu pour simplifier la gestion des politiques de sécurité et de conformité, Kyverno est aujourd'hui l'un des outils de gouvernance de politiques les plus populaires dans l'écosystème Kubernetes. Installez-vous, je vais vous raconter cette histoire.

Il était une fois Kyverno

Bonjour, je suis Kyverno. Mon nom vient du grec "κυβερνώ" (kyverno), qui signifie "gouverner", un nom qui reflète parfaitement ma mission dans l'univers Kubernetes.

Avant de vous raconter mon histoire, laissez-moi vous décrire le monde dans lequel je suis né. Dans les premiers temps de Kubernetes, la gestion des politiques et de la conformité était un véritable défi. Les équipes DevOps et les administrateurs de clusters n'avaient pas d'outils dédiés pour appliquer des règles de sécurité ou de conformité de manière cohérente.

Le monde avant Kyverno

Au début, les administrateurs Kubernetes utilisaient des scripts personnalisés ou des webhooks d'admission basiques pour tenter de maintenir l'ordre dans leurs clusters. C'était une approche fragmentée et difficile à maintenir.

Puis est arrivé Open Policy Agent (OPA) et son implémentation Kubernetes, Gatekeeper. Ce fut une avancée significative : enfin un outil dédié à la gouvernance des politiques ! Mais Gatekeeper avait ses limites. Il nécessitait l'apprentissage de Rego, un langage de politique spécifique, créant ainsi une barrière d'entrée pour de nombreux utilisateurs. De plus, son architecture et son approche n'étaient pas toujours intuitives pour ceux qui étaient déjà familiers avec les concepts Kubernetes.

Ma naissance (2019)

C'est dans ce contexte que je suis né en 2019, créé par Nirmata. Mes créateurs avaient une vision claire : pourquoi ne pas concevoir un outil de politique qui parle le même langage que Kubernetes lui-même ? Pourquoi ajouter une couche de complexité supplémentaire quand on pourrait utiliser le YAML, déjà familier à tous les utilisateurs de Kubernetes ?

Dès mes premiers jours, j'ai embrassé cette philosophie : être accessible, intuitif et puissant, sans nécessiter l'apprentissage d'un nouveau langage. Je me suis construit autour des ressources Kubernetes natives, permettant aux utilisateurs de définir des politiques en YAML, exactement comme ils définissent leurs autres ressources Kubernetes.

Mes premiers pas (2019-2020)

En juin 2020, j'ai atteint ma version 1.0, une étape importante dans mon développement. J'offrais déjà mes fonctionnalités fondamentales :

  • La validation des ressources pour garantir leur conformité
  • La mutation des ressources pour les corriger automatiquement
  • La génération de ressources pour créer des objets complémentaires
  • La vérification des images pour assurer la sécurité des conteneurs

Contrairement à mon prédécesseur Gatekeeper, j'ai choisi une approche plus intuitive et plus intégrée à l'écosystème Kubernetes. Les utilisateurs ont rapidement apprécié ma simplicité d'utilisation et ma puissance, me permettant de gagner en popularité.

Mon entrée dans la CNCF (2020)

En novembre 2020, j'ai franchi une étape décisive en rejoignant la Cloud Native Computing Foundation (CNCF) en tant que projet "Sandbox". Cette reconnaissance a considérablement augmenté ma visibilité et a attiré davantage de contributeurs à mon développement.

Mon évolution (2021)

L'année 2021 a été riche en nouvelles fonctionnalités :

  • En mai (v1.4), j'ai introduit les rapports de politiques, permettant de visualiser l'état de conformité des ressources
  • En août (v1.5), j'ai ajouté le support pour les variables contextuelles, rendant mes politiques plus dynamiques
  • En novembre (v1.6), j'ai intégré les tests unitaires pour les politiques, facilitant leur validation

Pendant ce temps, je continuais à me différencier de Gatekeeper par ma simplicité et mon approche native Kubernetes, attirant de plus en plus d'utilisateurs qui cherchaient une alternative plus accessible.

Ma graduation au niveau "Incubation" (2022)

En novembre 2022, j'ai été promu au niveau "Incubation" au sein de la CNCF, témoignant de mon adoption croissante et de ma maturité. Cette année-là, j'ai également enrichi mes capacités :

  • En février (v1.7), j'ai introduit les politiques d'exception
  • En juin (v1.8), j'ai amélioré mon support des politiques de vérification d'images
  • En octobre (v1.9), j'ai ajouté la fonctionnalité de génération de ressources en cascade

Ma maturité (2023)

En 2023, je suis entré dans une phase de maturité avec des améliorations significatives :

  • En avril (v1.10), j'ai lancé Kyverno CLI, permettant de tester les politiques localement
  • En juillet (v1.11), j'ai ajouté le support pour les politiques de vérification des certificats
  • En novembre (v1.12), j'ai amélioré mes performances avec l'introduction du mode "background scan"

Ma transformation (2024)

En février 2024, j'ai connu une transformation majeure avec ma version 2.0, qui a apporté des changements architecturaux significatifs :

  • Une nouvelle architecture modulaire
  • Une amélioration drastique des performances
  • L'introduction du concept de "policy sets" pour organiser les politiques
  • Un support amélioré pour les environnements multi-clusters
  • Une nouvelle interface utilisateur pour la visualisation des politiques

Ma communauté aujourd'hui

Au fil des ans, j'ai vu ma communauté grandir considérablement. Aujourd'hui, je compte plus de 4 000 étoiles sur GitHub et plus de 300 contributeurs.

J'ai progressivement pris une place importante dans l'écosystème Kubernetes, offrant une alternative plus simple et plus intuitive à Gatekeeper, sans sacrifier la puissance ou la flexibilité.

Mon avenir

Alors que je continue à évoluer, je reste fidèle à ma philosophie initiale : rendre la gouvernance des politiques Kubernetes accessible à tous, sans complexité inutile. Je suis fier de voir comment ma communauté grandit et comment je contribue à rendre les clusters Kubernetes plus sécurisés et conformes.

L'avenir s'annonce prometteur, et je suis impatient de continuer à innover pour répondre aux défis changeants de la sécurité et de la conformité dans le monde cloud-native.

Dernier