diff --git a/api/v1/marklogiccluster_types.go b/api/v1/marklogiccluster_types.go index bbf96a7..c00213e 100644 --- a/api/v1/marklogiccluster_types.go +++ b/api/v1/marklogiccluster_types.go @@ -72,7 +72,13 @@ type MarklogicClusterSpec struct { // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="size(self) == 1 || (size(self) == size(self.map(x, x.groupConfig.name).filter(y, self.map(x, x.groupConfig.name).filter(z, z == y).size() == 1)))", message="MarkLogicGroups must have unique groupConfig names" + // +kubebuilder:validation:XValidation:rule="size(self) == 1 || (size(self) == size(self.map(x, x.name).filter(y, self.map(x, x.name).filter(z, z == y).size() == 1)))", message="MarkLogicGroups must have unique names" // +kubebuilder:validation:XValidation:rule="size(self) == size(self.map(x, x.name).filter(y, self.map(x, x.name).filter(z, z == y).size() == 1))", message="MarkLogicGroups must have unique names" + // +kubebuilder:validation:XValidation:rule="self[0].name == oldSelf[0].name", message="Name of MarkLogikGroup must not be changed" + // +kubebuilder:validation:XValidation:rule="size(self) >= 2 && size(oldSelf) >= 2 ? self[1].name == oldSelf[1].name : true", message="Name of MarkLogikGroup must not be changed" + // +kubebuilder:validation:XValidation:rule="size(self) >= 3 && size(oldSelf) >= 3 ? self[2].name == oldSelf[2].name : true", message="Name of MarkLogikGroup must not be changed" + // +kubebuilder:validation:XValidation:rule="size(self) >= 4 && size(oldSelf) >= 4 ? self[3].name == oldSelf[3].name : true", message="Name of MarkLogikGroup must not be changed" + // +kubebuilder:validation:XValidation:rule="size(self) >= 5 && size(oldSelf) >= 5 ? self[4].name == oldSelf[4].name : true", message="Name of MarkLogikGroup must not be changed" // +kubebuilder:validation:XValidation:rule="size(self.filter(x, x.isBootstrap == true)) == 1", message="Exactly one MarkLogicGroup must have isBootstrap set to true" MarkLogicGroups []*MarklogicGroups `json:"markLogicGroups,omitempty"` } diff --git a/charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml b/charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml index 8a83558..e32fd07 100644 --- a/charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml +++ b/charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml @@ -9807,9 +9807,26 @@ spec: - message: MarkLogicGroups must have unique groupConfig names rule: size(self) == 1 || (size(self) == size(self.map(x, x.groupConfig.name).filter(y, self.map(x, x.groupConfig.name).filter(z, z == y).size() == 1))) + - message: MarkLogicGroups must have unique names + rule: size(self) == 1 || (size(self) == size(self.map(x, x.name).filter(y, + self.map(x, x.name).filter(z, z == y).size() == 1))) - message: MarkLogicGroups must have unique names rule: size(self) == size(self.map(x, x.name).filter(y, self.map(x, x.name).filter(z, z == y).size() == 1)) + - message: Name of MarkLogikGroup must not be changed + rule: self[0].name == oldSelf[0].name + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 2 && size(oldSelf) >= 2 ? self[1].name == oldSelf[1].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 3 && size(oldSelf) >= 3 ? self[2].name == oldSelf[2].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 4 && size(oldSelf) >= 4 ? self[3].name == oldSelf[3].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 5 && size(oldSelf) >= 5 ? self[4].name == oldSelf[4].name + : true' - message: Exactly one MarkLogicGroup must have isBootstrap set to true rule: size(self.filter(x, x.isBootstrap == true)) == 1 networkPolicy: diff --git a/config/crd/bases/marklogic.progress.com_marklogicclusters.yaml b/config/crd/bases/marklogic.progress.com_marklogicclusters.yaml index c4df8cb..527b651 100644 --- a/config/crd/bases/marklogic.progress.com_marklogicclusters.yaml +++ b/config/crd/bases/marklogic.progress.com_marklogicclusters.yaml @@ -9834,9 +9834,26 @@ spec: - message: MarkLogicGroups must have unique groupConfig names rule: size(self) == 1 || (size(self) == size(self.map(x, x.groupConfig.name).filter(y, self.map(x, x.groupConfig.name).filter(z, z == y).size() == 1))) + - message: MarkLogicGroups must have unique names + rule: size(self) == 1 || (size(self) == size(self.map(x, x.name).filter(y, + self.map(x, x.name).filter(z, z == y).size() == 1))) - message: MarkLogicGroups must have unique names rule: size(self) == size(self.map(x, x.name).filter(y, self.map(x, x.name).filter(z, z == y).size() == 1)) + - message: Name of MarkLogikGroup must not be changed + rule: self[0].name == oldSelf[0].name + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 2 && size(oldSelf) >= 2 ? self[1].name == oldSelf[1].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 3 && size(oldSelf) >= 3 ? self[2].name == oldSelf[2].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 4 && size(oldSelf) >= 4 ? self[3].name == oldSelf[3].name + : true' + - message: Name of MarkLogikGroup must not be changed + rule: 'size(self) >= 5 && size(oldSelf) >= 5 ? self[4].name == oldSelf[4].name + : true' - message: Exactly one MarkLogicGroup must have isBootstrap set to true rule: size(self.filter(x, x.isBootstrap == true)) == 1