@@ -41,8 +41,6 @@ see-also:
41
41
- [ Risks and Mitigations] ( #risks-and-mitigations )
42
42
- [ Design Details] ( #design-details )
43
43
- [ Test Plan] ( #test-plan )
44
- - [ For Alpha] ( #for-alpha )
45
- - [ For Beta] ( #for-beta )
46
44
- [ Graduation Criteria] ( #graduation-criteria )
47
45
- [ Alpha (v1.18):] ( #alpha-v118 )
48
46
- [ Implementation History] ( #implementation-history )
@@ -160,7 +158,7 @@ type KubeSchedulerProfile struct {
160
158
}
161
159
```
162
160
163
- Note that we remove ` AlgorithmSource ` from the new API. It's functionality becomes redundant to
161
+ Note that we remove ` AlgorithmSource ` from the new API. Its functionality becomes redundant to
164
162
what can be configured with ` Plugins ` and ` PluginConfig ` .
165
163
166
164
##### Conversion between API versions
@@ -243,6 +241,10 @@ the scheduler queue.
243
241
framework instance from the registry corresponding to the specified scheduler
244
242
name.
245
243
244
+ Note that all framework instances will make use of the same shared cache
245
+ (for nodes and pods), from which a snapshot is taken for each scheduling cycle.
246
+ This is the main advantage over running multiple schedulers in a cluster.
247
+
246
248
# ## Risks and Mitigations
247
249
248
250
Operators could introduce profiles that disable scheduling features exposed in
@@ -259,24 +261,24 @@ the scheduler documentation.
259
261
260
262
The following tests need to be in place :
261
263
262
- # ### For Alpha
263
-
264
- - **Unit Tests**: For Component Config API conversion, validation and defaults, core scheduler and
265
- scheduler instantiation. Current tests that use a default scheduler (or default framework) should
266
- continue passing with no configuration changes.
264
+ - **Unit Tests**:
265
+ - Component Config API conversion, validation and defaults
266
+ - Core scheduler implementation. Current tests that use a default scheduler
267
+ (or default framework) should continue passing with no configuration changes.
267
268
- **Integration tests**: Current tests with a default scheduler should continue passing with no
268
269
configuration changes. We need new tests in `test/integration/scheduler` exercising more than one
269
270
profile, in which :
270
271
- Each profile would favor specific nodes, so that we can verify assignment.
271
272
- Pods get binding events for the selected scheduler name.
272
273
- Pods that don't specify a scheduler name continue to be scheduled by the default profile.
273
274
275
+ *Note on E2E tests*
274
276
275
- # ### For Beta
276
-
277
- - **E2E tests**: A representative case from Integration tests will be replicated as E2E,
278
- to live in ` test/e2e/scheduling`. To exercise the custom configuration, we need to set up a new
279
- job in `k8s.io/test-infra/config/jobs/kubernetes/sig-scheduling` .
277
+ Due to the proposed architecture, where a single kube-scheduler binary runs all the profiles, E2E
278
+ tests wouldn't increase the coverage of this feature over unit and integration tests.
279
+ Additionally, profiles can only be provided statically during cluster creation with our current
280
+ test infra. This implies that an independent job would be needed for each scheduler configuration.
281
+ But, as stated in our goals, this KEP doesn't introduce new default profiles .
280
282
281
283
# ## Graduation Criteria
282
284
0 commit comments