From 1b4685f8977634ed732d8258359efd2b308c726d Mon Sep 17 00:00:00 2001 From: Aldo Culquicondor Date: Tue, 21 Jan 2020 14:38:57 -0500 Subject: [PATCH] Add Test Plan and Alpha Graduation criteria. Also specify validation of Plugins.QueueSort Signed-off-by: Aldo Culquicondor --- .../20200114-multi-scheduling-profiles.md | 41 +++++++++++++------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/keps/sig-scheduling/20200114-multi-scheduling-profiles.md b/keps/sig-scheduling/20200114-multi-scheduling-profiles.md index 94474aa0bdb5..8c9f55237b97 100644 --- a/keps/sig-scheduling/20200114-multi-scheduling-profiles.md +++ b/keps/sig-scheduling/20200114-multi-scheduling-profiles.md @@ -12,7 +12,7 @@ approvers: editor: TBD creation-date: 2020-01-14 last-updated: 2020-01-14 -status: provisional +status: implementable see-also: - "/keps/sig-scheduling/20180409-scheduling-framework.md" - "/keps/sig-scheduling/20190226-default-even-pod-spreading.md" @@ -42,17 +42,16 @@ see-also: - [Design Details](#design-details) - [Test Plan](#test-plan) - [Graduation Criteria](#graduation-criteria) - - [Alpha -> Beta Graduation](#alpha---beta-graduation) - - [Beta -> GA Graduation](#beta---ga-graduation) + - [Alpha (v1.18):](#alpha-v118) - [Implementation History](#implementation-history) ## Release Signoff Checklist - [x] kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR) -- [ ] KEP approvers have set the KEP status to `implementable` -- [ ] Design details are appropriately documented -- [ ] Test plan is in place, giving consideration to SIG Architecture and SIG Testing input +- [x] KEP approvers have set the KEP status to `implementable` +- [x] Design details are appropriately documented +- [x] Test plan is in place, giving consideration to SIG Architecture and SIG Testing input - [ ] Graduation criteria is in place - [ ] "Implementation History" section is up-to-date for milestone - [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io] @@ -192,6 +191,9 @@ similar result as the binary is starting. `SchedulerName` values will be validated to not repeat among the items of `Profiles`. +Since kube-scheduler has only one queue, we will validate that all `Plugins.QueueSort` +configurations are strictly the same. + ##### CLI flags binding Note that, if component config is used, deprecated flags are currently ignored, @@ -244,19 +246,32 @@ the scheduler documentation. ### Test Plan -TODO +The following tests need to be in place: -### Graduation Criteria +- **Unit Tests**: For Component Config API conversion and defaults, core scheduler and scheduler +instantiation. Current tests that use a default scheduler (or default framework) should continue +passing with minimal changes. +- **Integration tests**: Current tests with a default scheduler should continue passing with minimal +changes. We need new tests exercising more than one profile, in which: + - Each profile would favor specific pods, so that we can verify assignment. + - Pods get binding events for the selected scheduler name. + - Pods that don't specify a scheduler name continue to be scheduled by the default profile. -##### Alpha -> Beta Graduation +### Graduation Criteria -TODO +#### Alpha (v1.18): -##### Beta -> GA Graduation +These are the required changes: -TODO +- [ ] New `v1alpha2` ComponentConfig API, with conversion from `v1alpha1` and defaults. +- [ ] New feature gate. +- [ ] Scheduler can run more than one framework: + - [ ] Scheduler adds unscheduled pods to the pending queue for more than one name. + - [ ] Scheduler uses a framework using the scheduler name specified by the pod. +- [ ] Tests from [Test Plan](#test-plan). ## Implementation History - 2020-01-14: Initial KEP sent out for review, including Summary, Motivation -and Proposal +and Proposal. +- 2020-01-21: Test Plan and Alpha Graduation criteria in KEP.