You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apis/placement/v1/override_types.go
+11-2Lines changed: 11 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,9 @@ type ClusterResourceOverride struct {
44
44
// If the resource is selected by both ClusterResourceOverride and ResourceOverride, ResourceOverride will win when resolving
45
45
// conflicts.
46
46
// +kubebuilder:validation:XValidation:rule="(has(oldSelf.placement) && has(self.placement) && oldSelf.placement == self.placement) || (!has(oldSelf.placement) && !has(self.placement))",message="The placement field is immutable"
47
+
// +kubebuilder:validation:XValidation:rule="self.clusterResourceSelectors.all(s, !has(s.labelSelector))",message="labelSelector is not supported for cluster resource override selectors"
48
+
// +kubebuilder:validation:XValidation:rule="self.clusterResourceSelectors.all(s, s.name.size() > 0)",message="resource name is required for cluster resource override selectors"
// Placement defines whether the override is applied to a specific placement or not.
49
52
// If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
@@ -111,8 +114,10 @@ type OverridePolicy struct {
111
114
}
112
115
113
116
// OverrideRule defines how to override the selected resources on the target clusters.
114
-
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'Delete' || !has(self.jsonPatchOverrides) || size(self.jsonPatchOverrides) == 0",message="jsonPatchOverrides must be empty when overrideType is Delete"
117
+
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'Delete' || !has(self.jsonPatchOverrides) || size(self.jsonPatchOverrides) == 0",message="jsonPatchOverrides must not be set when overrideType is Delete"
115
118
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'JSONPatch' || (has(self.jsonPatchOverrides) && size(self.jsonPatchOverrides) > 0)",message="jsonPatchOverrides must not be empty when overrideType is JSONPatch"
119
+
// +kubebuilder:validation:XValidation:rule="!has(self.clusterSelector) || !has(self.clusterSelector.clusterSelectorTerms) || self.clusterSelector.clusterSelectorTerms.all(t, !has(t.propertySelector) && !has(t.propertySorter))",message="only labelSelector is supported for override cluster selectors"
120
+
// +kubebuilder:validation:XValidation:rule="!has(self.clusterSelector) || !has(self.clusterSelector.clusterSelectorTerms) || self.clusterSelector.clusterSelectorTerms.all(t, has(t.labelSelector))",message="labelSelector is required for override cluster selector terms"
116
121
typeOverrideRulestruct {
117
122
// ClusterSelectors selects the target clusters.
118
123
// The resources will be overridden before applying to the matching clusters.
@@ -130,7 +135,6 @@ type OverrideRule struct {
130
135
131
136
// JSONPatchOverrides defines a list of JSON patch override rules.
132
137
// This field is only allowed when OverrideType is JSONPatch.
Copy file name to clipboardExpand all lines: apis/placement/v1beta1/override_types.go
+11-2Lines changed: 11 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,9 @@ type ClusterResourceOverride struct {
45
45
// If the resource is selected by both ClusterResourceOverride and ResourceOverride, ResourceOverride will win when resolving
46
46
// conflicts.
47
47
// +kubebuilder:validation:XValidation:rule="(has(oldSelf.placement) && has(self.placement) && oldSelf.placement == self.placement) || (!has(oldSelf.placement) && !has(self.placement))",message="The placement field is immutable"
48
+
// +kubebuilder:validation:XValidation:rule="self.clusterResourceSelectors.all(s, !has(s.labelSelector))",message="labelSelector is not supported for cluster resource override selectors"
49
+
// +kubebuilder:validation:XValidation:rule="self.clusterResourceSelectors.all(s, s.name.size() > 0)",message="resource name is required for cluster resource override selectors"
// Placement defines whether the override is applied to a specific placement or not.
50
53
// If set, the override will trigger the placement rollout immediately when the rollout strategy type is RollingUpdate.
@@ -112,8 +115,10 @@ type OverridePolicy struct {
112
115
}
113
116
114
117
// OverrideRule defines how to override the selected resources on the target clusters.
115
-
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'Delete' || !has(self.jsonPatchOverrides) || size(self.jsonPatchOverrides) == 0",message="jsonPatchOverrides must be empty when overrideType is Delete"
118
+
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'Delete' || !has(self.jsonPatchOverrides) || size(self.jsonPatchOverrides) == 0",message="jsonPatchOverrides must not be set when overrideType is Delete"
116
119
// +kubebuilder:validation:XValidation:rule="self.overrideType != 'JSONPatch' || (has(self.jsonPatchOverrides) && size(self.jsonPatchOverrides) > 0)",message="jsonPatchOverrides must not be empty when overrideType is JSONPatch"
120
+
// +kubebuilder:validation:XValidation:rule="!has(self.clusterSelector) || !has(self.clusterSelector.clusterSelectorTerms) || self.clusterSelector.clusterSelectorTerms.all(t, !has(t.propertySelector) && !has(t.propertySorter))",message="only labelSelector is supported for override cluster selectors"
121
+
// +kubebuilder:validation:XValidation:rule="!has(self.clusterSelector) || !has(self.clusterSelector.clusterSelectorTerms) || self.clusterSelector.clusterSelectorTerms.all(t, has(t.labelSelector))",message="labelSelector is required for override cluster selector terms"
117
122
typeOverrideRulestruct {
118
123
// ClusterSelectors selects the target clusters.
119
124
// The resources will be overridden before applying to the matching clusters.
@@ -131,7 +136,6 @@ type OverrideRule struct {
131
136
132
137
// JSONPatchOverrides defines a list of JSON patch override rules.
133
138
// This field is only allowed when OverrideType is JSONPatch.
0 commit comments