K8s API Checker
Check manifests for deprecated or removed Kubernetes APIs by cluster version.
Kubernetes YAML
Paste K8s manifests to check for deprecated APIs
Checked APIs: extensions/v1beta1, apps/v1beta*, networking.k8s.io/v1beta1, rbac.authorization.k8s.io/v1beta1, batch/v1beta1, policy/v1beta1, autoscaling/v2beta*, and more.
Features
- Detect deprecated and removed Kubernetes API versions in manifests
- Coverage for all major Kubernetes versions (1.16 through 1.32+)
- Per-resource migration guidance (deprecated → replacement API)
- Batch check multiple resources from a single YAML file
- Severity classification: deprecated (warning) vs. removed (error)
- Direct links to official Kubernetes migration guides
Common Use Cases
- Audit manifests before upgrading a Kubernetes cluster to a new minor version
- Identify resources using removed APIs that will break after an upgrade
- Migrate from <code>extensions/v1beta1</code> to <code>apps/v1</code> and similar
- Review third-party Helm charts for deprecated API usage
- Prepare upgrade runbooks for production Kubernetes clusters
Kubernetes API Versioning & Deprecation
Kubernetes uses a versioned API (apiVersion) to allow safe evolution of resource definitions. APIs go through three stability stages: alpha (v1alpha1 — may break at any time), beta (v1beta1 — stable for 3+ releases), and GA/stable (v1 — stable with long support).
When an API is deprecated, it still works but produces warnings. When it is removed (typically 2-3 minor versions after deprecation), using it causes a hard error. The classic example: extensions/v1beta1 Ingress was removed in Kubernetes 1.22 — clusters upgrading past that version would break any Ingress using the old APIVersion.
Checking your manifests proactively before each cluster upgrade is essential DevOps hygiene.
Examples
apiVersion: extensions/v1beta1
kind: IngressapiVersion: networking.k8s.io/v1
kind: IngressapiVersion: policy/v1beta1
kind: PodDisruptionBudgetFrequently Asked Questions
The official Kubernetes Deprecation Guide lists all removals by version. This tool automates that lookup: paste your manifests and select the target version to see all affected resources instantly.
Deprecated: the API still works but you will see warning messages in kubectl output and cluster logs. You have a grace period (usually 2+ minor versions) to migrate. Removed: the API endpoint no longer exists. Applying a manifest with a removed API version returns a 404 Not Found error from the API server.
Replace the apiVersion field with the current stable equivalent and update any fields that changed between versions. For example, Ingress moved from extensions/v1beta1 to networking.k8s.io/v1, and the backend field structure changed. The API checker provides migration links for each deprecated resource.
Yes, frequently. Older Helm charts (especially those not actively maintained) may use deprecated API versions in their templates. Run the rendered output of helm template my-chart through this checker before upgrading a chart on a newer cluster version.
💡 Tips
- Run this checker as part of your CI/CD pipeline before every cluster upgrade to catch issues early.
- After migrating an API version, validate the new manifest structure with the YAML Validator to verify schema compliance.
- Pay extra attention to <code>Ingress</code>, <code>PodDisruptionBudget</code>, <code>HorizontalPodAutoscaler</code>, and <code>CronJob</code> — these have had the most breaking API changes.
- Use <code>kubectl convert</code> (with the <code>kubectl-convert</code> plugin) to automatically migrate manifest API versions.