Every managed upgrade I have been through had the same last-minute surprise: a chart written against extensions/v1beta1 or a policy/v1beta1 PodDisruptionBudget that only breaks on the cluster that already moved.
I wrote a small linter that runs on the manifest open in VS Code (also npx @readystack/k8s-removed-api-lint <file> or a Docker image). It is offline, 15 rules, and each finding says which release removed the apiVersion and what the replacement is. No cluster access, nothing leaves your machine.
npx @readystack/k8s-removed-api-lint deployment.yaml
Free for the file in your editor, no key, no limit. There is a paid tier for the whole-workspace sweep and the migration report; the page says so up front.
Source: readystack-themes. Web version to try without installing: k8s-removed-api-lint.
If a rule is wrong for your version, tell me. The rules file is plain JSON and I would rather fix it than have it lie.
Top comments (0)