Detect your Kubernetes deprecated API with pluto

Posted by

I like Kubernetes, but sometimes it’s a bit hard to follow the evolution of its API. To keep your YAML with the correct value for apiVersion I’m presenting you a tool named Pluto.

You can install it from the repo of the project, or on Mac with brew.

Let’s try it on our YAML files

Open the command line, go to your project and lets scan our local files.

pluto detect-files -d .
NAME                                          KIND                       VERSION                        REPLACEMENT               REMOVED   DEPRECATED     CustomResourceDefinition   false     true              CustomResourceDefinition   false     true         CustomResourceDefinition   

As we can see, I have some Custom resources to update.

What about our cluster?

It’s also possible to scan a remote Kubernetes cluster, Pluto will use your local kubectl configuration.

pluto detect-helm -owide
NAME                                               NAMESPACE      KIND                           VERSION                                REPLACEMENT                       DEPRECATED   DEPRECATED IN   REMOVED   REMOVED IN  
cert-manager/   cert-manager   CustomResourceDefinition            true         v1.16.0         false     v1.19.0     
cert-manager/          cert-manager   CustomResourceDefinition            true         v1.16.0         false     v1.19.0

I have also some API to update in my cluster.


As we can see Pluto is a nice and easy to use tool. It can help to keep Kubernetes API up to date and to prepare its future evolution.

The latest versions of kubectl are throwing warnings when a version is outdated, but it’s always interesting to be able to check manually. You can also integrate Pluto in your CI/CD to prevent deploying outdated apiVersion.

Leave a Reply

Your email address will not be published. Required fields are marked *