J’aime beaucoup Kubernetes, mais des fois il est difficile de suivre l’évolution de ses API. Pour garder vos fichiers YAML à jour, je vous présente un outil en ligne de commandes nommé Pluto.
Vous pouvez l’installer depuis le repo du projet, ou avec brew si vous êtes sur Mac.
Essayons-le sur nos fichiers YAML
Ouvrez votre invite de commandes, placez-vous dans votre projet et scannons nos fichiers.
pluto detect-files -d .
NAME KIND VERSION REPLACEMENT REMOVED DEPRECATED
felixconfigurations.crd.projectcalico.org CustomResourceDefinition apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 false true
ipamblocks.crd.projectcalico.org CustomResourceDefinition apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 false true
blockaffinities.crd.projectcalico.org CustomResourceDefinition
...
Comme nous pouvons le voir, j’ai quelques ressources à mettre à jour.
Et pour notre cluster ?
Il est aussi possible de scanner un cluster Kubernetes distant. Pluto va utiliser notre configuration kubectl locale.
pluto detect-helm -owide
NAME NAMESPACE KIND VERSION REPLACEMENT DEPRECATED DEPRECATED IN REMOVED REMOVED IN
cert-manager/certificaterequests.cert-manager.io cert-manager CustomResourceDefinition apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 true v1.16.0 false v1.19.0
cert-manager/certificates.cert-manager.io cert-manager CustomResourceDefinition apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 true v1.16.0 false v1.19.0
...
J’ai aussi quelques API à mettre à jour sur mon cluster.
Conclusion
Comme nous pouvons le voir, Pluto est un outil simple et facile à utiliser. Il peut vous aider à garder vos API Kubernetes à jour et à préparer leur futures évolutions.
La dernière version de kubectl affiche un warnings lors de l’utilisation d’une version obsolète mais il est toujours intéressant de pouvoir vérifier manuellement. Il est aussi possible d’intégrer Pluto dans votre CI/CD pour éviter de déployer des apiVersion
obsolètes.