Skip to content

Commit f633d91

Browse files
authored
Merge pull request #3709 from ahg-g/mutable-stable
KEP-2926: Graduate mutable scheduling directives to stable
2 parents d2d2df6 + 58ec5f8 commit f633d91

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 2926
22
beta:
33
approver: "@wojtek-t"
4+
stable:
5+
approver: "@wojtek-t"

keps/sig-scheduling/2926-job-mutable-scheduling-directives/README.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ specific partition (e.g., preemptibles) or a specific location (e.g., zone x).
162162

163163
This is a proposal to relax update validation on jobs that have never been unsuspended to
164164
allow mutating node scheduling directives, namely the pod template's node affinity,
165-
node selector, tolerations, annotations and labels of the job's pod template. This enables
166-
a higher-level queue controller to inject such directives before un-suspending a job to
165+
node selector, tolerations, schedulingGates, annotations and labels of the job's pod template. This
166+
enables a higher-level queue controller to inject such directives before un-suspending a job to
167167
influence its placement.
168168

169169
<!--
@@ -534,7 +534,8 @@ kube-apiserver will accept node affinity/tolerations updates of jobs.
534534

535535
###### Are there any tests for feature enablement/disablement?
536536

537-
No, unit and integration tests will be added prior to Beta graduation.
537+
Tests are in place. See [Job integrations tests](https://github.com/kubernetes/kubernetes/blob/457341c3d408097025af5a9b6f5917439c0debdd/test/integration/job/job_test.go#L1397).
538+
The tests do not directly test switching between enable/disable, that was tested manually (see below).
538539

539540
<!--
540541
The e2e framework does not currently support enabling or disabling feature
@@ -551,7 +552,8 @@ This section must be completed when targeting beta to a release.
551552

552553
###### How can a rollout or rollback fail? Can it impact already running workloads?
553554

554-
The change is opt-in, it doesn't impact already running workloads.
555+
The change is opt-in, it doesn't impact already running workloads. But problems with the
556+
updated validation logic may cause crashes in the apiserver.
555557

556558
<!--
557559
Try to be as paranoid as possible - e.g., what if some components will restart
@@ -565,7 +567,7 @@ will rollout across nodes.
565567

566568
###### What specific metrics should inform a rollback?
567569

568-
N/A
570+
Crashes in the apiserver because of potential problems with the updated validation logic.
569571

570572
<!--
571573
What signals should users be paying attention to when the feature is young
@@ -574,7 +576,16 @@ that might indicate a serious problem?
574576

575577
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
576578

577-
It will be tested manually prior to beta launch.
579+
Tested manually.
580+
1. Cluster on 1.22 was upgraded to 1.23
581+
2. Created a suspended job
582+
3. Mutated scheduling directives and checked that mutation was successful
583+
4. Started the job, verifying that the mutation took effect in practice as well
584+
5. Created a suspended job
585+
6. Downgraded the cluster back to 1.22
586+
7. Attempt to mutate the scheduling directives was rejected.
587+
588+
Findings: the feature and the cluster are behaving as expected.
578589

579590
<!--
580591
Describe manual testing that was done and the outcomes.
@@ -820,7 +831,9 @@ N/A.
820831
## Implementation History
821832

822833
- 2021-09-01: Proposed KEP starting in beta status.
823-
- 2021-10-28: Updated the KEP to include annotations and labels of the pod template
834+
- 2021-10-28: Updated the KEP to include annotations and labels of the pod template.
835+
- 2023-01-03: Updated the KEP to include schedulingGates of the pod template and graduated the feature to stable.
836+
824837

825838
<!--
826839
Major milestones in the lifecycle of a KEP should be tracked in this section.

keps/sig-scheduling/2926-job-mutable-scheduling-directives/kep.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ see-also:
1818
- "/keps/sig-apps/2232-suspend-jobs"
1919

2020
# The target maturity stage in the current dev cycle for this KEP.
21-
stage: beta
21+
stage: stable
2222

2323
# The most recent milestone for which work toward delivery of this KEP has been
2424
# done. This can be the current (upcoming) milestone, if it is being actively
2525
# worked on.
26-
latest-milestone: "v1.23"
26+
latest-milestone: "v1.27"
2727

2828
# The milestone at which this feature was, or is targeted to be, at each stage.
2929
milestone:
3030
beta: "v1.23"
31-
stable: "v1.25"
31+
stable: "v1.27"
3232

3333
# The following PRR answers are required at alpha release
3434
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)