From 93ccf4c9c22d3564564ba05ad89582f19a7cfeca Mon Sep 17 00:00:00 2001 From: Yifeng Zhang Date: Fri, 9 May 2025 11:59:37 -0400 Subject: [PATCH] network: fix validation rule on provider field update Provider validation is failing on updating from empty string to non-empty ones which is expected to be supported. Fix the validation rule by adding one missing condition. Signed-off-by: Yifeng Zhang --- deploy/charts/rook-ceph/templates/resources.yaml | 2 +- deploy/examples/crds.yaml | 2 +- pkg/apis/ceph.rook.io/v1/types.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/charts/rook-ceph/templates/resources.yaml b/deploy/charts/rook-ceph/templates/resources.yaml index 3c53d41cc..99a367d62 100644 --- a/deploy/charts/rook-ceph/templates/resources.yaml +++ b/deploy/charts/rook-ceph/templates/resources.yaml @@ -2856,7 +2856,7 @@ spec: type: string x-kubernetes-validations: - message: network provider must be disabled (reverted to empty string) before a new provider is enabled - rule: self == '' || self == oldSelf + rule: self == '' || oldSelf == '' || self == oldSelf selectors: additionalProperties: type: string diff --git a/deploy/examples/crds.yaml b/deploy/examples/crds.yaml index d59a19ca0..be7bc6ef0 100644 --- a/deploy/examples/crds.yaml +++ b/deploy/examples/crds.yaml @@ -2854,7 +2854,7 @@ spec: type: string x-kubernetes-validations: - message: network provider must be disabled (reverted to empty string) before a new provider is enabled - rule: self == '' || self == oldSelf + rule: self == '' || oldSelf == '' || self == oldSelf selectors: additionalProperties: type: string diff --git a/pkg/apis/ceph.rook.io/v1/types.go b/pkg/apis/ceph.rook.io/v1/types.go index 0bea94326..a707926a9 100755 --- a/pkg/apis/ceph.rook.io/v1/types.go +++ b/pkg/apis/ceph.rook.io/v1/types.go @@ -2764,7 +2764,7 @@ type AdditionalVolumeMounts []AdditionalVolumeMount type NetworkSpec struct { // Provider is what provides network connectivity to the cluster e.g. "host" or "multus". // If the Provider is updated from being empty to "host" on a running cluster, then the operator will automatically fail over all the mons to apply the "host" network settings. - // +kubebuilder:validation:XValidation:message="network provider must be disabled (reverted to empty string) before a new provider is enabled",rule="self == '' || self == oldSelf" + // +kubebuilder:validation:XValidation:message="network provider must be disabled (reverted to empty string) before a new provider is enabled",rule="self == '' || oldSelf == '' || self == oldSelf" // +nullable // +optional Provider NetworkProviderType `json:"provider,omitempty"`