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
# Uncomment the following lines to customize your installation:
73
+
# --set skipClusterSetBinding=true \
74
+
# --set image.tag=<chart-version> \
67
75
```
68
76
69
77
To confirm the installation from hub:
@@ -100,4 +108,115 @@ default-flavor 4h28m
100
108
101
109
## Usage
102
110
103
-
The usage please refer to this [Kueue Integration Solution](https://github.com/open-cluster-management-io/ocm/blob/main/solutions/kueue-admission-check).
111
+
The usage please refer to this [Kueue Integration Solution](https://github.com/open-cluster-management-io/ocm/blob/main/solutions/kueue-admission-check).
112
+
113
+
## Design Details and Workflow
114
+
115
+
### OCM Admission Check Controller
116
+
117
+
The OCM Admission Check Controller will integrate OCM `Placement` results into MultiKueue by reading `PlacementDecisions` and generating the necessary `MultiKueueConfig` and `MultiKueueCluster` resources.
118
+
119
+
-`controllerName`: Identifies the controller that processes the Admission Check, currently set to `open-cluster-management.io/placement`
120
+
-`parameters`: Identifies a configuration with additional parameters for the check, here we add the existing OCM resource `Placement`. Clusters specified in the `Placement` will be bound to the `kueue-system` namespace.
121
+
122
+
Example OCM AdmissionCheck CR:
123
+
124
+
```yaml
125
+
# OCM implements an admissioncheck controller to automate the MultiKueue setup process.
126
+
# Leverages OCM's placement mechanism to select clusters based on specific criteria.
127
+
# MultiKueueConfigs and MultiKueueClusters are generated dynamically based on OCM placement decisions.
### Configuration Process: Before and After OCM Admission Check Controller
140
+
141
+
**Before:**
142
+
143
+
Admins manually create both `MultiKueueConfig` (listing clusters) and a `MultiKueueCluster` (with kubeconfig secret) for each cluster.
144
+
145
+
```yaml
146
+
apiVersion: kueue.x-k8s.io/v1beta1
147
+
kind: MultiKueueConfig
148
+
metadata:
149
+
name: multikueue-config-demo1
150
+
spec:
151
+
clusters:
152
+
- multikueue-config-demo1-cluster1
153
+
- multikueue-config-demo1-cluster2
154
+
---
155
+
apiVersion: kueue.x-k8s.io/v1beta1
156
+
kind: MultiKueueCluster
157
+
metadata:
158
+
name: multikueue-config-demo1-cluster1
159
+
spec:
160
+
kubeConfig:
161
+
locationType: Secret
162
+
location: multikueue-cluster1
163
+
---
164
+
apiVersion: kueue.x-k8s.io/v1beta1
165
+
kind: MultiKueueCluster
166
+
metadata:
167
+
name: multikueue-config-demo1-cluster2
168
+
spec:
169
+
kubeConfig:
170
+
locationType: Secret
171
+
location: multikueue-cluster2
172
+
```
173
+
174
+
**After:**
175
+
176
+
Admins only need to add `AdmissionChecks` to the `ClusterQueue`. The controller automates `MultiKueueConfig` and `MultiKueueCluster` creation based on `Placement` decisions.
This automation greatly reduces manual effort and ensures that MultiKueue environments always reflect the latest OCM Placement decisions, supporting advanced scheduling scenarios such as label-based selection and dynamic scoring with `AddonPlacementScore`.
213
+
214
+
### Workflow
215
+
216
+
- When kueue-addon is intalled, the credential controller generates kubeconfig secrets of each cluster for MultiKueue under `kueue-system` namespace.
217
+
- User configure the `ClusterQueue` with `AdmissionCheck` and creates the `AdmissionCheck` and `Placement` resources.
218
+
- OCM generates `PlacementDecision` when `Placement` created.
219
+
- The admission check controller watches for `AdmissionCheck` resources referencing OCM `Placement`.
220
+
- The admission check controller watches the `PlacementDecision`, creates or updates `MultiKueueCluster` resources with the kubeconfig details for each cluster, and also update these clusters in the `MultiKueueConfig` resource.
221
+
- Finally, admission check controller updates the `AdmissionCheck` condition to true, indicating successful generation of the `MultiKueueConfig` and `MultiKueueCluster`, readying the [MultiKueue](https://kueue.sigs.k8s.io/docs/concepts/multikueue/) environment for job scheduling.
0 commit comments