@@ -119,13 +119,15 @@ type ClusterClassSpec struct {
119
119
// variables defines the variables which can be configured
120
120
// in the Cluster topology and are then used in patches.
121
121
// +optional
122
+ // +listType=atomic
122
123
// +kubebuilder:validation:MaxItems=1000
123
124
Variables []ClusterClassVariable `json:"variables,omitempty"`
124
125
125
126
// patches defines the patches which are applied to customize
126
127
// referenced templates of a ClusterClass.
127
128
// Note: Patches will be applied in the order of the array.
128
129
// +optional
130
+ // +listType=atomic
129
131
// +kubebuilder:validation:MaxItems=1000
130
132
Patches []ClusterClassPatch `json:"patches,omitempty"`
131
133
}
@@ -392,6 +394,7 @@ type MachineHealthCheckClass struct {
392
394
// logical OR, i.e. if any of the conditions is met, the node is unhealthy.
393
395
//
394
396
// +optional
397
+ // +listType=atomic
395
398
// +kubebuilder:validation:MaxItems=100
396
399
UnhealthyNodeConditions []UnhealthyNodeCondition `json:"unhealthyNodeConditions,omitempty"`
397
400
@@ -743,6 +746,7 @@ type JSONSchemaProps struct {
743
746
// enum is the list of valid values of the variable.
744
747
// NOTE: Can be set for all types.
745
748
// +optional
749
+ // +listType=atomic
746
750
// +kubebuilder:validation:MaxItems=100
747
751
Enum []apiextensionsv1.JSON `json:"enum,omitempty"`
748
752
@@ -783,6 +787,7 @@ type JSONSchemaProps struct {
783
787
// NOTE: This field uses PreserveUnknownFields and Schemaless,
784
788
// because recursive validation is not possible.
785
789
// +optional
790
+ // +listType=atomic
786
791
// +kubebuilder:pruning:PreserveUnknownFields
787
792
// +kubebuilder:validation:Schemaless
788
793
AllOf []JSONSchemaProps `json:"allOf,omitempty"`
@@ -791,6 +796,7 @@ type JSONSchemaProps struct {
791
796
// NOTE: This field uses PreserveUnknownFields and Schemaless,
792
797
// because recursive validation is not possible.
793
798
// +optional
799
+ // +listType=atomic
794
800
// +kubebuilder:pruning:PreserveUnknownFields
795
801
// +kubebuilder:validation:Schemaless
796
802
OneOf []JSONSchemaProps `json:"oneOf,omitempty"`
@@ -799,6 +805,7 @@ type JSONSchemaProps struct {
799
805
// NOTE: This field uses PreserveUnknownFields and Schemaless,
800
806
// because recursive validation is not possible.
801
807
// +optional
808
+ // +listType=atomic
802
809
// +kubebuilder:pruning:PreserveUnknownFields
803
810
// +kubebuilder:validation:Schemaless
804
811
AnyOf []JSONSchemaProps `json:"anyOf,omitempty"`
@@ -973,6 +980,7 @@ type ClusterClassPatch struct {
973
980
// Note: Patches will be applied in the order of the array.
974
981
// Note: Exactly one of Definitions or External must be set.
975
982
// +optional
983
+ // +listType=atomic
976
984
// +kubebuilder:validation:MaxItems=100
977
985
Definitions []PatchDefinition `json:"definitions,omitempty"`
978
986
@@ -993,6 +1001,7 @@ type PatchDefinition struct {
993
1001
// Note: Patches will be applied in the order of the array.
994
1002
// +kubebuilder:validation:MaxItems=100
995
1003
// +required
1004
+ // +listType=atomic
996
1005
JSONPatches []JSONPatch `json:"jsonPatches"`
997
1006
}
998
1007
@@ -1249,6 +1258,7 @@ type ClusterClassStatus struct {
1249
1258
1250
1259
// variables is a list of ClusterClassStatusVariable that are defined for the ClusterClass.
1251
1260
// +optional
1261
+ // +listType=atomic
1252
1262
// +kubebuilder:validation:MaxItems=1000
1253
1263
Variables []ClusterClassStatusVariable `json:"variables,omitempty"`
1254
1264
@@ -1294,8 +1304,9 @@ type ClusterClassStatusVariable struct {
1294
1304
DefinitionsConflict * bool `json:"definitionsConflict,omitempty"`
1295
1305
1296
1306
// definitions is a list of definitions for a variable.
1297
- // +kubebuilder:validation:MaxItems=100
1298
1307
// +required
1308
+ // +listType=atomic
1309
+ // +kubebuilder:validation:MaxItems=100
1299
1310
Definitions []ClusterClassStatusVariableDefinition `json:"definitions"`
1300
1311
}
1301
1312
0 commit comments