autoscaler: policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+
Which component are you using?: cluster-autoscaler
What version of the component are you using?:
Component version: v1.21.0, chart 9.10.5
What k8s version are you using (kubectl version)?:
kubectl version Output
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:38:26Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"21+", GitVersion:"v1.21.2-eks-0389ca3", GitCommit:"8a4e27b9d88142bbdd21b997b532eb6d493df6d2", GitTreeState:"clean", BuildDate:"2021-07-31T01:34:46Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"linux/amd64"}
What environment is this in?:
I use Flux/Helm Operator to deploy the chart.
What did you expect to happen?:
I expect the chart to use, when possible, the latest versions of the APIs or to use the appropriate APIs based on the Kubernetes version of the cluster.
What happened instead?:
W0826 12:53:50.687259 6 warnings.go:70] policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
W0826 12:53:50.692111 6 warnings.go:70] policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
W0826 12:53:50.712486 6 warnings.go:70] policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
How to reproduce it (as minimally and precisely as possible):
Install the helm chart in a cluster with K8s > 1.20
Anything else we need to know?:
Nothing
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 14
- Comments: 18 (15 by maintainers)
I think at this point it should be safe to just move to v1 in the code. CA 1.23 is out, so the changes will be released in 1.24 version. Things will start breaking if someone deploys CA 1.24 in 1.20 k8s cluster, which is a huge version skew that shouldn’t be used anyway. Given CA dependency on scheduler code, having even one minor version skew isn’t the best idea as it may lead to disagreement between scheduler and CA.
When cluster-autoscaler switches its internal pdblister to use policy/v1 (instead of policy/v1beta1), we’ll get rid of that warning but also the cluster-autoscaler will cease to work on any cluster older than v1.21 (they don’t have policy/v1 at all). Granted that’s not an officially supported setup, but still noteworthy. Indeed, it’s also possible to dynamically detect what’s available at runtime.
The complete timeline for that resource is: