Upgrade Blocked by Deprecated API¶
Symptom¶
The upgrade target is rejected or flagged because the cluster recently used a Kubernetes API that is deprecated or removed in the target version.
Possible Causes¶
- Manifests still use deprecated API versions.
- CRDs or admission webhooks are pinned to removed APIs.
- Operators or add-ons were not upgraded before the cluster version move.
Diagnosis Steps¶
flowchart TD
A[Target version is blocked] --> B[Identify removed API versions for target]
B --> C[Find workloads controllers or CRDs still using them]
C --> D[Update manifests and controllers] -
Confirm the cluster version and allowed targets.
Command Purpose az aks get-upgradesList available Kubernetes upgrade versions for the cluster. --resource-groupResource group that contains the AKS cluster. --nameName of the AKS cluster. --outputOutput format for the result. -
Review Kubernetes resources and controller inventory.
-
Compare the target version against the manifests and controllers that still depend on removed APIs.
Resolution¶
- Update manifests to supported API versions.
- Upgrade or replace controllers, webhooks, and operators that still depend on removed APIs.
- Re-validate in non-production before retrying production.
Prevention¶
- Treat API deprecation review as part of every minor-version planning cycle.
- Do not wait for the oldest supported minor version before cleaning up deprecated objects.
- Keep cluster lifecycle tracking tied to application-controller lifecycle, not just control-plane schedule.