Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Kubernetes Removed API LintNew to Visual Studio Code? Get it now.
Kubernetes Removed API Lint

Kubernetes Removed API Lint

ReadyStack

|
1 install
| (0) | Free
Find the apiVersions kubectl no longer serves: extensions/v1beta1, batch/v1beta1 CronJob, policy/v1beta1 PDB, PodSecurityPolicy, autoscaling/v2beta2. 15 rules, offline, each with the replacement.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Kubernetes Removed API Lint

Kubernetes Removed API Lint

Your assistant writes a Deployment. It writes apiVersion: extensions/v1beta1, because that is what most of the Kubernetes YAML ever published says. That apiVersion stopped being served in Kubernetes 1.16. kubectl apply answers no matches for kind "Deployment" in version "extensions/v1beta1" — and it answers that only on the cluster that already moved, which is usually the production one, usually mid-rollout.

This extension reads the manifest open in your editor and names every apiVersion the API server no longer serves, the minor release that removed it, and what replaces it.

The 15 rules

Removed in What the lint catches
1.16 extensions/v1beta1, apps/v1beta1, apps/v1beta2 workloads → apps/v1
1.16 scheduler.alpha.kubernetes.io/critical-pod → priorityClassName
1.22 networking.k8s.io/v1beta1 Ingress → networking.k8s.io/v1 (the backend block changed shape too)
1.22 apiextensions.k8s.io/v1beta1 CRD → apiextensions.k8s.io/v1, one structural schema per version
1.22 webhooks, RBAC, CSRs, Leases, PriorityClass on v1beta1 → v1
1.22 / 1.27 storage.k8s.io/v1beta1, and CSIStorageCapacity in 1.27
1.25 batch/v1beta1 CronJob → batch/v1
1.25 policy/v1beta1 PodDisruptionBudget → policy/v1
1.25 PodSecurityPolicy, removed outright → Pod Security Admission labels
1.25 the seccomp alpha annotations stopped being honoured — the pod runs unconfined and nothing errors
1.25 / 1.26 autoscaling/v2beta1, autoscaling/v2beta2 HPA → autoscaling/v2
1.25 events.k8s.io, discovery.k8s.io, node.k8s.io v1beta1 → v1
1.26 / 1.29 / 1.32 flowcontrol.apiserver.k8s.io v1beta1, v1beta2, v1beta3 → v1
— apps/v1 workload with no spec.selector: apps/v1 requires it and never defaults it
— deprecated node labels and the kubernetes.io/ingress.class annotation

What it found in the sample bundle

The bundle in _fixtures/dirty.yaml is eight ordinary objects for one service. The lint reports 11 findings over 6 distinct removed apiVersions, and the oldest removal is 1.16 — so that bundle has not applied cleanly to a default cluster in a long time. _fixtures/clean.yaml is the same eight objects on current apiVersions and reports 0.

Why a cluster does not warn you first

kubectl apply validates against the cluster you are pointing at, not the one you will have after the upgrade. A manifest that still works is not a manifest that is current — deprecated APIs stay served for several releases and then stop, and managed control planes upgrade on the provider's calendar. Kubernetes ships three minor releases a year and patches each for about 14 months, so a chart that sat still for two years has usually crossed at least one removal line.

The lint runs offline, on the text in front of you, with no cluster connection and no kubectl context. It never contacts your API server.

Free and licensed

Free, no key: check the manifest open in the editor against all 15 rules and get the replacement apiVersion for every hit. That is a finished answer for that file.

Licensed: sweep every manifest in the workspace and write one dated migration report, ordered by removal version, for the whole chart repo. Same 15 rules, workspace scope. $29 once, one licence key per person or CI seat, 7-day full refund.

A freelance Kubernetes consultant bills about 120 US dollars an hour, and reading one chart repo for beta apiVersions before an upgrade is most of a day.

More tools: https://getreadystack.com/tools/k8s-removed-api-lint

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft