From dbbc9947756b9f862427d031675b57554842668f Mon Sep 17 00:00:00 2001 From: Yaroslava Serdiuk Date: Tue, 26 Nov 2024 11:59:18 +0000 Subject: [PATCH] Add kep for LQ defauling --- keps/2936-local-queue-defaulting/README.md | 65 ++++++++++++++++++++++ keps/2936-local-queue-defaulting/kep.yaml | 32 +++++++++++ 2 files changed, 97 insertions(+) create mode 100644 keps/2936-local-queue-defaulting/README.md create mode 100644 keps/2936-local-queue-defaulting/kep.yaml diff --git a/keps/2936-local-queue-defaulting/README.md b/keps/2936-local-queue-defaulting/README.md new file mode 100644 index 0000000000..1d5b9ab8f6 --- /dev/null +++ b/keps/2936-local-queue-defaulting/README.md @@ -0,0 +1,65 @@ +# KEP-2936: LocalQueue defaulting + + +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + - [User Stories](#user-stories) + - [Story 1](#story-1) + - [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional) + - [Risks and Mitigations](#risks-and-mitigations) +- [Design Details](#design-details) + - [Test Plan](#test-plan) + + +## Summary + +This KEP introduces a defaulting LocalQueue mechanism for the jobs that don't have +LocalQueue name label specified. + +## Motivation + +Simplify user experience with Kueue. + +### Goals + +- default LocalQueue for jobs that don't specify LocalQueue name label. + +### Non-Goals + +- create a default LocalQueue. + +## Proposal + +If the Job doesn't have label for LocalQueue in its Spec and the LocalQueue +with name `default` is present in Job's namespace and KueueDefaulting feature gate +is enabled, the `kueue.x-k8s.io/queue-name:default` anotation will be added to the Job. + +The `default` LocalQueue itself should be created manually by administrator. + +### User Stories + +#### Story 1 + +Administrator createds a single `default` LocalQueue per namespace. Users doesn't need to specify +the LocalQueue label in order for workload to be scheduled. + +### Notes/Constraints/Caveats (Optional) + +manageJobsWithoutQueueName doesn't work with this feature, since Kueue add the LocalQueue +label. + +### Risks and Mitigations + +## Design Details + +Update defautling webhook for all types of job to add `kueue.x-k8s.io/queue-name:default` +label if the label is not present and the feature gate is enabled. + +### Test Plan + +[x] I/we understand the owners of the involved components may require updates to +existing tests to make this code solid enough prior to committing the changes +necessary to implement this enhancement. diff --git a/keps/2936-local-queue-defaulting/kep.yaml b/keps/2936-local-queue-defaulting/kep.yaml new file mode 100644 index 0000000000..bc0635cd61 --- /dev/null +++ b/keps/2936-local-queue-defaulting/kep.yaml @@ -0,0 +1,32 @@ +title: LocalQueue defaulting +kep-number: 2936 +authors: + - "@yaroslava-serdiuk" +status: implementable +creation-date: 2024-11-25 +reviewers: + - "@pbundyra" + - "@mwielgus" + - "@mimowo" +approvers: + - "@mimowo" + +# The target maturity stage in the current dev cycle for this KEP. +stage: alpha + +# The most recent milestone for which work toward delivery of this KEP has been +# done. This can be the current (upcoming) milestone, if it is being actively +# worked on. +latest-milestone: "v0.9" + +# The milestone at which this feature was, or is targeted to be, at each stage. +milestone: + alpha: "v0.9" + beta: + stable: + +# The following PRR answers are required at alpha release +# List the feature gate name and the components for which it must be enabled +feature-gates: + - name: KueueDefaulting +disable-supported: true