CRD creation fails in pod spec charms on juju 2.9.25
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Yang Kelvin Liu |
Bug Description
When deploying a pod-spec charm that also creates a CustomResourceD
creating or updating custom resource definitions: ensuring custom resource definition "authcodes.
Steps to reproduce:
sudo snap install microk8s --classic --channel=
microk8s enable dns storage ingress metallb:
juju bootstrap microk8s
juju add-model kubeflow
juju deploy dex-auth
This is currently blocking everyone from deploying Kubeflow on the latest version of juju.
description: | updated |
Changed in juju: | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in juju: | |
status: | Fix Committed → Fix Released |
https:/ /github. com/juju/ juju/commit/ 695d9bc09df0725 a168df52707336b b6a3a92ff7
I think this commit might be what broke it. In caas/kubernetes /provider/ customresourced efinitions. go you add some logic that converts a v1beta1 CRD into a v1 CRD but this I think won't work on K8s 1.21, which Kubeflow requires.
```go K8sCustomResour ceDefinitionV1: NotSupportedf( "custom resource definition version %q", v.Spec.Version) esourceDefiniti onV1(obj, v.Spec.SpecV1) K8sCustomResour ceDefinitionV1B eta1: esourceDefiniti onV1beta1( obj, v.Spec.SpecV1Beta1) .CustomResource DefinitionSpec UpgradeCustomRe sourceDefinitio nSpecV1Beta1( v.Spec. SpecV1Beta1) Annotatef( err, "cannot convert v1beta1 crd to v1") esourceDefiniti onV1(obj, newSpec) NotSupportedf( "custom resource definition version %q", v.Spec.Version)
var err error
switch v.Spec.Version {
case k8sspecs.
if k8sVersion.Major == 1 && k8sVersion.Minor < 16 {
return cleanUps, errors.
} else {
out, crdCleanUps, err = k.ensureCustomR
}
case k8sspecs.
if k8sVersion.Major == 1 && k8sVersion.Minor < 16 {
out, crdCleanUps, err = k.ensureCustomR
} else {
var newSpec apiextensionsv1
newSpec, err = k8sspecs.
if err != nil {
err = errors.
break
}
out, crdCleanUps, err = k.ensureCustomR
}
default:
// This should never happen.
return cleanUps, errors.
```