Skip to content

Commit 815102b

Browse files
pengzhoumlPeng Zhou
and
Peng Zhou
authored
MLE-20120: CRD Validation for update name (#75)
Co-authored-by: Peng Zhou <[email protected]>
1 parent 5c73c1f commit 815102b

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

api/v1/marklogiccluster_types.go

+6
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,13 @@ type MarklogicClusterSpec struct {
7272
// +kubebuilder:validation:MinItems=1
7373
// +kubebuilder:validation:Required
7474
// +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"
75+
// +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"
7576
// +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"
77+
// +kubebuilder:validation:XValidation:rule="self[0].name == oldSelf[0].name", message="Name of MarkLogikGroup must not be changed"
78+
// +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"
79+
// +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"
80+
// +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"
81+
// +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"
7682
// +kubebuilder:validation:XValidation:rule="size(self.filter(x, x.isBootstrap == true)) == 1", message="Exactly one MarkLogicGroup must have isBootstrap set to true"
7783
MarkLogicGroups []*MarklogicGroups `json:"markLogicGroups,omitempty"`
7884
}

charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -9807,9 +9807,26 @@ spec:
98079807
- message: MarkLogicGroups must have unique groupConfig names
98089808
rule: size(self) == 1 || (size(self) == size(self.map(x, x.groupConfig.name).filter(y,
98099809
self.map(x, x.groupConfig.name).filter(z, z == y).size() == 1)))
9810+
- message: MarkLogicGroups must have unique names
9811+
rule: size(self) == 1 || (size(self) == size(self.map(x, x.name).filter(y,
9812+
self.map(x, x.name).filter(z, z == y).size() == 1)))
98109813
- message: MarkLogicGroups must have unique names
98119814
rule: size(self) == size(self.map(x, x.name).filter(y, self.map(x,
98129815
x.name).filter(z, z == y).size() == 1))
9816+
- message: Name of MarkLogikGroup must not be changed
9817+
rule: self[0].name == oldSelf[0].name
9818+
- message: Name of MarkLogikGroup must not be changed
9819+
rule: 'size(self) >= 2 && size(oldSelf) >= 2 ? self[1].name == oldSelf[1].name
9820+
: true'
9821+
- message: Name of MarkLogikGroup must not be changed
9822+
rule: 'size(self) >= 3 && size(oldSelf) >= 3 ? self[2].name == oldSelf[2].name
9823+
: true'
9824+
- message: Name of MarkLogikGroup must not be changed
9825+
rule: 'size(self) >= 4 && size(oldSelf) >= 4 ? self[3].name == oldSelf[3].name
9826+
: true'
9827+
- message: Name of MarkLogikGroup must not be changed
9828+
rule: 'size(self) >= 5 && size(oldSelf) >= 5 ? self[4].name == oldSelf[4].name
9829+
: true'
98139830
- message: Exactly one MarkLogicGroup must have isBootstrap set to true
98149831
rule: size(self.filter(x, x.isBootstrap == true)) == 1
98159832
networkPolicy:

config/crd/bases/marklogic.progress.com_marklogicclusters.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -9834,9 +9834,26 @@ spec:
98349834
- message: MarkLogicGroups must have unique groupConfig names
98359835
rule: size(self) == 1 || (size(self) == size(self.map(x, x.groupConfig.name).filter(y,
98369836
self.map(x, x.groupConfig.name).filter(z, z == y).size() == 1)))
9837+
- message: MarkLogicGroups must have unique names
9838+
rule: size(self) == 1 || (size(self) == size(self.map(x, x.name).filter(y,
9839+
self.map(x, x.name).filter(z, z == y).size() == 1)))
98379840
- message: MarkLogicGroups must have unique names
98389841
rule: size(self) == size(self.map(x, x.name).filter(y, self.map(x,
98399842
x.name).filter(z, z == y).size() == 1))
9843+
- message: Name of MarkLogikGroup must not be changed
9844+
rule: self[0].name == oldSelf[0].name
9845+
- message: Name of MarkLogikGroup must not be changed
9846+
rule: 'size(self) >= 2 && size(oldSelf) >= 2 ? self[1].name == oldSelf[1].name
9847+
: true'
9848+
- message: Name of MarkLogikGroup must not be changed
9849+
rule: 'size(self) >= 3 && size(oldSelf) >= 3 ? self[2].name == oldSelf[2].name
9850+
: true'
9851+
- message: Name of MarkLogikGroup must not be changed
9852+
rule: 'size(self) >= 4 && size(oldSelf) >= 4 ? self[3].name == oldSelf[3].name
9853+
: true'
9854+
- message: Name of MarkLogikGroup must not be changed
9855+
rule: 'size(self) >= 5 && size(oldSelf) >= 5 ? self[4].name == oldSelf[4].name
9856+
: true'
98409857
- message: Exactly one MarkLogicGroup must have isBootstrap set to
98419858
true
98429859
rule: size(self.filter(x, x.isBootstrap == true)) == 1

0 commit comments

Comments
 (0)