beta API version · group policy
policy/v1beta1
Removed in 1.25
No Kubernetes release since 1.25 serves apiVersion: policy/v1beta1. Objects that were stored through it are still in etcd and readable through the replacement version; only manifests and clients that name this version break.
Kinds in policy/v1beta1
| Kind | Introduced | Deprecated | Stops being served | Use instead |
|---|---|---|---|---|
| Eviction | 1.5 | 1.22 | 1.25 | policy/v1 |
| PodDisruptionBudget | 1.5 | 1.21 | 1.25 | policy/v1 |
| PodSecurityPolicy | — | — | 1.25 | Pod Security Admission (no API replacement) |
Served in which releases
served served, deprecated exists but off by default not served · 1.16 to 1.37; release of introduction unknown for kinds removed from the source, treated as served before removal
Migrating off policy/v1beta1
PodDisruptionBudget removed in 1.25
Move to policy/v1, served since 1.21. Existing objects stay readable through the new version.
What changes:
- an empty
spec.selector({}) written to apolicy/v1PodDisruptionBudget selects all pods in the namespace (inpolicy/v1beta1an emptyspec.selectorselected no pods). An unsetspec.selectorselects no pods in either API version.
- apiVersion: policy/v1beta1
+ apiVersion: policy/v1
kind: PodDisruptionBudgetFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
PodSecurityPolicy removed in 1.25
Migrate to Pod Security Admission or a 3rd party admission webhook. For a migration guide, see Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller. For more information on the deprecation, see PodSecurityPolicy Deprecation: Past, Present, and Future.
From the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
To convert files mechanically: kubectl convert -f old.yaml --output-version policy/v1 (the kubectl-convert plugin, installed separately). Review defaults it fills in.
Other versions of policy
Check your manifests for policy/v1beta1 and other removed versions →