CRDを反映した時に以下のようなエラーになった時の対処方法
The CustomResourceDefinition "foo.bar" is invalid: status.storedVersions[0]: Invalid value: "v1alpha1": must appear in spec.versions
CRDのversionsにv1alpha1
,v1beta1
が定義されていて、新しく反映するCRDからはv1alpha1
が削除されてる時に発生する
以下コマンドを打てば解決する
$ kubectl get crd foo.bar -o yaml | yq .status.storedVersions
- v1alpha1
- v1beta1
$ kubectl patch crd foo.bar -p '{"status":{"storedVersions":["v1beta1"]}}' --subresource=status
customresourcedefinition.apiextensions.k8s.io/foo.bar patched
$ kubectl get crd foo.bar -o yaml | yq .status.storedVersions
- v1beta1