kubernetes
config_error
ai_generated
true
Error: UPGRADE FAILED: failed to install CRD: unable to recognize "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
ID: kubernetes/helm-upgrade-failed-api-version-removed
90%Fix Rate
85%Confidence
1Evidence
2023-06-10First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| Helm v3.12.0 | active | — | — | — |
| Helm v3.13.0 | active | — | — | — |
| Kubernetes v1.25.0 | active | — | — | — |
| Kubernetes v1.28.0 | active | — | — | — |
Root Cause
The Helm chart references an old API version (v1beta1) that was removed in Kubernetes 1.22+, causing CRD installation to fail.
generic中文
Helm chart 引用了旧版 API(v1beta1),该版本在 Kubernetes 1.22+ 中被移除,导致 CRD 安装失败。
Official Documentation
https://helm.sh/docs/topics/kubernetes_apis/#removed-apisWorkarounds
-
90% success Update the Helm chart to use apiextensions.k8s.io/v1: run `helm pull chart-name --untar`, edit the CRD YAML to change `apiVersion: apiextensions.k8s.io/v1beta1` to `apiVersion: apiextensions.k8s.io/v1`, then `helm upgrade --install` with the local chart.
Update the Helm chart to use apiextensions.k8s.io/v1: run `helm pull chart-name --untar`, edit the CRD YAML to change `apiVersion: apiextensions.k8s.io/v1beta1` to `apiVersion: apiextensions.k8s.io/v1`, then `helm upgrade --install` with the local chart.
-
85% success Use a newer version of the chart: `helm repo update && helm upgrade my-release chart-name --version <new-version>`.
Use a newer version of the chart: `helm repo update && helm upgrade my-release chart-name --version <new-version>`.
-
70% success If the chart is unmaintained, convert CRDs manually using `kubectl convert` or a migration tool like `kubepug`.
If the chart is unmaintained, convert CRDs manually using `kubectl convert` or a migration tool like `kubepug`.
中文步骤
更新 Helm chart 使用 apiextensions.k8s.io/v1:运行 `helm pull chart-name --untar`,编辑 CRD YAML 将 `apiVersion: apiextensions.k8s.io/v1beta1` 改为 `apiVersion: apiextensions.k8s.io/v1`,然后使用本地 chart 执行 `helm upgrade --install`。
使用更新版本的 chart:`helm repo update && helm upgrade my-release chart-name --version <新版本>`。
如果 chart 不再维护,使用 `kubectl convert` 或迁移工具(如 kubepug)手动转换 CRD。
Dead Ends
Common approaches that don't work:
-
Downgrading the Kubernetes cluster to an older version to support v1beta1
95% fail
Downgrading a cluster is complex and risky; it's better to update the chart.
-
Manually editing the cluster's API server flags to re-enable v1beta1
100% fail
The v1beta1 CRD API was fully removed in 1.22+; no flag can restore it.