diff --git a/pkg/k8s/apis/cilium.io/v2/register.go b/pkg/k8s/apis/cilium.io/v2/register.go index 7d777aa60e68..2458c67e1fc3 100644 --- a/pkg/k8s/apis/cilium.io/v2/register.go +++ b/pkg/k8s/apis/cilium.io/v2/register.go @@ -533,7 +533,9 @@ func createUpdateCRD(clientset apiextensionsclient.Interface, CRDName string, cr } scopedLog.Debug("Checking if CRD (CustomResourceDefinition) needs update...") - if needsUpdate(clusterCRD) { + if crd.Spec.Validation != nil && + clusterCRD.Labels[CustomResourceDefinitionSchemaVersionKey] != "" && + needsUpdate(clusterCRD) { scopedLog.Info("Updating CRD (CustomResourceDefinition)...") // Update the CRD with the validation schema. err = wait.Poll(500*time.Millisecond, 60*time.Second, func() (bool, error) { @@ -570,11 +572,7 @@ func createUpdateCRD(clientset apiextensionsclient.Interface, CRDName string, cr // wait for the CRD to be established scopedLog.Debug("Waiting for CRD (CustomResourceDefinition) to be available...") err = wait.Poll(500*time.Millisecond, 60*time.Second, func() (bool, error) { - crd, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Get(context.TODO(), crd.ObjectMeta.Name, metav1.GetOptions{}) - if err != nil { - return false, err - } - for _, cond := range crd.Status.Conditions { + for _, cond := range clusterCRD.Status.Conditions { switch cond.Type { case apiextensionsv1beta1.Established: if cond.Status == apiextensionsv1beta1.ConditionTrue { @@ -587,6 +585,10 @@ func createUpdateCRD(clientset apiextensionsclient.Interface, CRDName string, cr } } } + clusterCRD, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Get(context.TODO(), crd.ObjectMeta.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } return false, err }) if err != nil {