Skip to content

Commit 1004b28

Browse files
authored
feat: update fleet charts to MCO v0.2.0 (#88)
1 parent 9e60d6f commit 1004b28

File tree

5 files changed

+185
-48
lines changed

5 files changed

+185
-48
lines changed

fleet-charts/argocd-mco-plugin/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
apiVersion: v2
1616
name: argocd-mco-plugin
17-
version: 0.1.0
17+
version: 0.2.0
1818
description: Argo CD MCO Plugin
1919
type: application
20-
appVersion: "0.1.0"
20+
appVersion: "0.2.0"

fleet-charts/argocd-mco-plugin/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
image: "us-docker.pkg.dev/gke-fleet-management/multicluster-orchestrator/argocd-placement-plugin:v0.1.0"
15+
image: "us-docker.pkg.dev/gke-fleet-management/multicluster-orchestrator/argocd-placement-plugin:v0.2.0"

fleet-charts/orchestrator/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
apiVersion: v2
1616
name: orchestrator
17-
version: 0.1.0
17+
version: 0.2.0
1818
description: Multi Cluster Orchestrator
1919
type: application
20-
appVersion: "0.1.0"
20+
appVersion: "0.2.0"

fleet-charts/orchestrator/templates/crd/orchestra.multicluster.x-k8s.io_multikubernetesclusterplacements.yaml

Lines changed: 179 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.16.1
7-
helm.sh/resource-policy: keep
87
name: multikubernetesclusterplacements.orchestra.multicluster.x-k8s.io
98
spec:
109
group: orchestra.multicluster.x-k8s.io
@@ -42,41 +41,182 @@ spec:
4241
description: MultiKubernetesClusterPlacementSpec defines the desired state
4342
of MultiKubernetesClusterPlacement
4443
properties:
45-
clusterSelectorRules:
44+
affinity:
4645
description: |-
47-
ClusterSelectorRules defines a pipeline of rules which consume an ordered list
48-
of clusters and output an ordered list of clusters to generate the list of
49-
current target clusters.
50-
items:
51-
description: |-
52-
PlacementClusterSelectorRule defines a rule which takes an ordered list of
53-
clusters and returns a list of clusters based on the rule type and arguments.
54-
properties:
55-
arguments:
56-
additionalProperties:
57-
type: string
58-
description: |-
59-
Arguments are specific to each rule type:
60-
- cluster-list:
61-
clusters: "cluster-inventory-ns/cluster1,cluster-inventory-ns/cluster2,cluster-inventory-ns/cluster3"
62-
- cluster-name-regex
63-
regex: "cluster-inventory-ns/cluster\d+"
64-
type: object
65-
type:
66-
description: |-
67-
Type specifies the rule type and may be one of:
68-
- all-clusters: all clusters defined by the ClusterProfiles present
69-
- cluster-list: a user-provided ordered list of clusters
70-
- cluster-name-regex: a user-provided regular expression to match cluster names against
71-
enum:
72-
- all-clusters
73-
- cluster-list
74-
- cluster-name-regex
75-
type: string
76-
required:
77-
- type
78-
type: object
79-
type: array
46+
Affinity defines cluster affinity scheduling eligibility rules.
47+
If Affinity is nil, the workload will be eligible to be scheduled on all available clusters.
48+
properties:
49+
clusterAffinity:
50+
description: ClusterAffinity is a group of cluster affinity scheduling
51+
rules.
52+
properties:
53+
requiredDuringSchedulingIgnoredDuringExecution:
54+
description: |-
55+
RequiredDuringSchedulingIgnoredDuringExecution defines cluster selector terms that must be met for a cluster to be selected.
56+
Existing workloads will not be removed from clusters that no longer meet these requirements.
57+
properties:
58+
clusterSelectorTerms:
59+
description: |-
60+
A list of cluster selector terms. The terms are ORed (the workload can be
61+
scheduled onto any cluster that fulfills the requirements of at least one
62+
term).
63+
items:
64+
description: A cluster selector term defines a set of
65+
requirements for a cluster to be selected.
66+
properties:
67+
matchExpressions:
68+
description: |-
69+
A list of selector requirements. The requirements are ANDed (all
70+
requirements must be met).
71+
items:
72+
description: |-
73+
A cluster selector expression which contains a selector for either a label or a field.
74+
If both are present, they are ANDed (i.e. both must be met).
75+
properties:
76+
fieldSelector:
77+
description: A field selector requirement.
78+
properties:
79+
field:
80+
description: |-
81+
Field is the ClusterProfile field that the selector applies to. Supported
82+
fields are metadata.name and metadata.namespace.
83+
type: string
84+
operator:
85+
description: |-
86+
Operator represents a field's relationship to a set of values.
87+
Valid operators are In, NotIn, Exists and DoesNotExist.
88+
type: string
89+
values:
90+
description: |-
91+
Values is an array of string values. If the operator is In or NotIn,
92+
the values array must be non-empty. If the operator is Exists or DoesNotExist,
93+
the values array must be empty.
94+
items:
95+
type: string
96+
type: array
97+
required:
98+
- field
99+
- operator
100+
type: object
101+
labelSelector:
102+
description: A label selector requirement.
103+
properties:
104+
key:
105+
description: Key is the label key that
106+
the selector applies to.
107+
type: string
108+
operator:
109+
description: |-
110+
Operator represents a key's relationship to a set of values.
111+
Valid operators are In, NotIn, Exists and DoesNotExist.
112+
type: string
113+
values:
114+
description: |-
115+
Values is an array of string values. If the operator is In or NotIn,
116+
the values array must be non-empty. If the operator is Exists or DoesNotExist,
117+
the values array must be empty.
118+
items:
119+
type: string
120+
type: array
121+
required:
122+
- key
123+
- operator
124+
type: object
125+
type: object
126+
type: array
127+
type: object
128+
type: array
129+
required:
130+
- clusterSelectorTerms
131+
type: object
132+
requiredDuringSchedulingRequiredDuringExecution:
133+
description: |-
134+
RequiredDuringSchedulingRequiredDuringExecution defines cluster selector terms that must be met for a cluster to be selected.
135+
Workloads will be removed from clusters that no longer meet these requirements.
136+
properties:
137+
clusterSelectorTerms:
138+
description: |-
139+
A list of cluster selector terms. The terms are ORed (the workload can be
140+
scheduled onto any cluster that fulfills the requirements of at least one
141+
term).
142+
items:
143+
description: A cluster selector term defines a set of
144+
requirements for a cluster to be selected.
145+
properties:
146+
matchExpressions:
147+
description: |-
148+
A list of selector requirements. The requirements are ANDed (all
149+
requirements must be met).
150+
items:
151+
description: |-
152+
A cluster selector expression which contains a selector for either a label or a field.
153+
If both are present, they are ANDed (i.e. both must be met).
154+
properties:
155+
fieldSelector:
156+
description: A field selector requirement.
157+
properties:
158+
field:
159+
description: |-
160+
Field is the ClusterProfile field that the selector applies to. Supported
161+
fields are metadata.name and metadata.namespace.
162+
type: string
163+
operator:
164+
description: |-
165+
Operator represents a field's relationship to a set of values.
166+
Valid operators are In, NotIn, Exists and DoesNotExist.
167+
type: string
168+
values:
169+
description: |-
170+
Values is an array of string values. If the operator is In or NotIn,
171+
the values array must be non-empty. If the operator is Exists or DoesNotExist,
172+
the values array must be empty.
173+
items:
174+
type: string
175+
type: array
176+
required:
177+
- field
178+
- operator
179+
type: object
180+
labelSelector:
181+
description: A label selector requirement.
182+
properties:
183+
key:
184+
description: Key is the label key that
185+
the selector applies to.
186+
type: string
187+
operator:
188+
description: |-
189+
Operator represents a key's relationship to a set of values.
190+
Valid operators are In, NotIn, Exists and DoesNotExist.
191+
type: string
192+
values:
193+
description: |-
194+
Values is an array of string values. If the operator is In or NotIn,
195+
the values array must be non-empty. If the operator is Exists or DoesNotExist,
196+
the values array must be empty.
197+
items:
198+
type: string
199+
type: array
200+
required:
201+
- key
202+
- operator
203+
type: object
204+
type: object
205+
type: array
206+
type: object
207+
type: array
208+
required:
209+
- clusterSelectorTerms
210+
type: object
211+
type: object
212+
x-kubernetes-validations:
213+
- message: Only one of requiredDuringSchedulingRequiredDuringExecution
214+
or requiredDuringSchedulingIgnoredDuringExecution may be set
215+
rule: (has(self.requiredDuringSchedulingRequiredDuringExecution)
216+
&& !has(self.requiredDuringSchedulingIgnoredDuringExecution))
217+
|| (!has(self.requiredDuringSchedulingRequiredDuringExecution)
218+
&& has(self.requiredDuringSchedulingIgnoredDuringExecution))
219+
type: object
80220
scaling:
81221
description: |-
82222
Scaling defines the scaling configuration of the placement. If not specified,
@@ -128,8 +268,6 @@ spec:
128268
- minClustersBelowCapacityCeiling
129269
type: object
130270
type: object
131-
required:
132-
- clusterSelectorRules
133271
type: object
134272
status:
135273
description: MultiKubernetesClusterPlacementStatus defines the observed
@@ -141,7 +279,7 @@ spec:
141279
items:
142280
description: |-
143281
PlacementCluster describes a cluster on which the workload should be placed.
144-
This is consumed by workload delilvery systems.
282+
This is consumed by workload delivery systems.
145283
properties:
146284
atCapacityCeiling:
147285
description: 'Whether the cluster is currently at its capacity
@@ -155,16 +293,15 @@ spec:
155293
TODO: remove this'
156294
type: integer
157295
desiredMaxReplicas:
158-
description: Desired maximum replicas for a draining cluster.
159-
The drainer plugin should reconcile the HPA's max replicas
160-
field to this value.
296+
description: |-
297+
Desired maximum replicas for a draining cluster. The drainer plugin should
298+
reconcile the HPA's max replicas field to this value.
161299
type: integer
162300
lastReplicaCountDecrease:
163301
description: The last time DesiredMaxReplicas was decreased.
164302
format: date-time
165303
type: string
166304
required:
167-
- currentReplicaCount
168305
- desiredMaxReplicas
169306
- lastReplicaCountDecrease
170307
type: object

fleet-charts/orchestrator/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
image: "us-docker.pkg.dev/gke-fleet-management/multicluster-orchestrator/controller:v0.1.0"
15+
image: "us-docker.pkg.dev/gke-fleet-management/multicluster-orchestrator/controller:v0.2.0"

0 commit comments

Comments
 (0)