Pluto is a utility to help users find deprecated Kubernetes apiVersions (opens new window) in their code repositories and their helm releases.
Kubernetes sometimes deprecates apiVersions. Most notably, a large number of deprecations happened in the 1.16 release (opens new window). This is fine, and it's a fairly easy thing to deal with. However, it can be difficult to find all the places where you might have used a version that will be deprecated in your next upgrade.
You might think, "I'll just ask the api-server to tell me!", but this is fraught with danger. If you ask the api-server to give you
deployments.v1.apps, and the deployment was deployed as
deployments.v1beta1.extensions, the api-server will quite happily convert the api version and return a manifest with
apps/v1. This is fairly well outlined in the discussion in this issue (opens new window).
So, long story short, finding the places where you have deployed a deprecated apiVersion can be challenging. This is where
pluto comes in. You can use pluto to check a couple different places where you might have placed a deprecated version:
- Infrastructure-as-Code repos: Pluto can check both static manifests and Helm charts for deprecated apiVersions
- Live Helm releases: Pluto can check both Helm 2 and Helm 3 releases running in your cluster for deprecated apiVersions
# Kubernetes Deprecation Policy
You can read the full policy here (opens new window)
Long story short, apiVersions get deprecated, and then they eventually get removed entirely. Pluto differentiates between these two, and will tell you if a version is
# GitHub Action Usage
Want to use pluto within your GitHub workflows?
- name: Download Pluto uses: FairwindsOps/pluto/github-[email protected] - name: Use pluto run: | pluto detect-files -d pkg/finder/testdata
# Join the Fairwinds Open Source Community
The goal of the Fairwinds Community is to exchange ideas, influence the open source roadmap, and network with fellow Kubernetes users. Chat with us on Slack (opens new window) or join the user group (opens new window) to get involved!
# Other Projects from Fairwinds
Enjoying Pluto? Check out some of our other projects:
- Polaris (opens new window) - Audit, enforce, and build policies for Kubernetes resources, including over 20 built-in checks for best practices
- Goldilocks (opens new window) - Right-size your Kubernetes Deployments by compare your memory and CPU settings against actual usage
- Nova (opens new window) - Check to see if any of your Helm charts have updates available
- rbac-manager (opens new window) - Simplify the management of RBAC in your Kubernetes clusters
# Fairwinds Insights
If you're interested in running Pluto in multiple clusters, tracking the results over time, integrating with Slack, Datadog, and Jira, or unlocking other functionality, check out Fairwinds Insights (opens new window), a platform for auditing and enforcing policy in Kubernetes clusters.