diff --git a/apis/replication.storage/v1alpha1/volumereplicationclass_types.go b/apis/replication.storage/v1alpha1/volumereplicationclass_types.go index 274650310..25632a049 100644 --- a/apis/replication.storage/v1alpha1/volumereplicationclass_types.go +++ b/apis/replication.storage/v1alpha1/volumereplicationclass_types.go @@ -23,6 +23,7 @@ import ( // VolumeReplicationClassSpec specifies parameters that an underlying storage system uses // when creating a volume replica. A specific VolumeReplicationClass is used by specifying // its name in a VolumeReplication object. +// +kubebuilder:validation:XValidation:rule="has(self.parameters) == has(oldSelf.parameters)",message="parameters are immutable" type VolumeReplicationClassSpec struct { // Provisioner is the name of storage provisioner // +kubebuilder:validation:Required diff --git a/config/crd/bases/replication.storage.openshift.io_volumereplicationclasses.yaml b/config/crd/bases/replication.storage.openshift.io_volumereplicationclasses.yaml index 8e22bd26c..53dc81c3e 100644 --- a/config/crd/bases/replication.storage.openshift.io_volumereplicationclasses.yaml +++ b/config/crd/bases/replication.storage.openshift.io_volumereplicationclasses.yaml @@ -61,6 +61,9 @@ spec: required: - provisioner type: object + x-kubernetes-validations: + - message: parameters are immutable + rule: has(self.parameters) == has(oldSelf.parameters) status: description: VolumeReplicationClassStatus defines the observed state of VolumeReplicationClass. diff --git a/deploy/controller/crds.yaml b/deploy/controller/crds.yaml index ccfe94de4..25ff230b0 100644 --- a/deploy/controller/crds.yaml +++ b/deploy/controller/crds.yaml @@ -778,6 +778,9 @@ spec: required: - provisioner type: object + x-kubernetes-validations: + - message: parameters are immutable + rule: has(self.parameters) == has(oldSelf.parameters) status: description: VolumeReplicationClassStatus defines the observed state of VolumeReplicationClass.