Skip to content

Commit 8f81feb

Browse files
authored
Merge pull request kubernetes#3111 from alculquicondor/tracking-beta
Graduate Ready Pods in Job status to Beta
2 parents 406340d + 43c228d commit 8f81feb

File tree

3 files changed

+35
-15
lines changed

3 files changed

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

keps/sig-apps/2879-ready-pods-job-status/README.md

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
Items marked with (R) are required *prior to targeting to a milestone / release*.
3737

38-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
38+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
3939
- [x] (R) KEP approvers have approved the KEP status as `implementable`
4040
- [x] (R) Design details are appropriately documented
4141
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
@@ -47,7 +47,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
4747
- [x] (R) Production readiness review completed
4848
- [x] (R) Production readiness review approved
4949
- [ ] "Implementation History" section is up-to-date for milestone
50-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
50+
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
5151
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
5252

5353
[kubernetes.io]: https://kubernetes.io/
@@ -95,9 +95,9 @@ field based on the number of Pods that have the `Ready` condition.
9595
### Risks and Mitigations
9696

9797
- An increase in Job status updates. To mitigate this, the job controller holds
98-
the Pod updates that happen in X ms before syncing a Job. X will be determined
99-
from experiments on integration tests, but we expect it to be between 500ms
100-
and 1s.
98+
the Pod updates that happen in X ms before syncing a Job.
99+
From experiments using integration tests, X=500ms was found to be a reasonable
100+
value.
101101

102102
## Design Details
103103

@@ -107,7 +107,7 @@ field based on the number of Pods that have the `Ready` condition.
107107
type JobStatus struct {
108108
...
109109
Active int32
110-
Ready int32 // new field
110+
Ready *int32 // new field
111111
Succeeded int32
112112
Failed int32
113113
}
@@ -131,12 +131,20 @@ pods that have the `Ready` condition.
131131
#### Alpha
132132

133133
- Feature gate disabled by default.
134-
- Unit and integration tests passing.
134+
- Unit and [integration] tests passing.
135+
136+
[integration]: https://testgrid.k8s.io/conformance-all#Conformance%20-%20GCE%20-%20master&include-filter-by-regex=sig-apps&include-filter-by-regex=Job&exclude-filter-by-regex=CronJob
135137

136138
#### Beta
137139

138140
- Feature gate enabled by default.
139-
- Existing E2E and conformance tests passing.
141+
- Existing [E2E] and [conformance] tests passing.
142+
- Scalability tests for Jobs of varying sizes, up to 500 parallelism, that keep
143+
track of metric `job_sync_duration_seconds`. There should be no significant
144+
degradation after enabling the feature gate.
145+
146+
[E2E]: https://testgrid.k8s.io/sig-apps#gce&include-filter-by-regex=apps%5C%5D%20Job
147+
[Conformance]: https://testgrid.k8s.io/conformance-all#Conformance%20-%20GCE%20-%20master&include-filter-by-regex=sig-apps&include-filter-by-regex=Job&exclude-filter-by-regex=CronJob
140148

141149
#### GA
142150

@@ -191,7 +199,7 @@ The Job controller will start populating the field again.
191199

192200
###### Are there any tests for feature enablement/disablement?
193201

194-
Yes, there will be tests at unit and integration level.
202+
Yes, there are tests at unit and [integration] level.
195203

196204
### Rollout, Upgrade and Rollback Planning
197205

@@ -201,11 +209,21 @@ The field is only informative, it doesn't affect running workloads.
201209

202210
###### What specific metrics should inform a rollback?
203211

204-
N/A
212+
- An increase in `job_sync_duration_seconds`.
213+
- A reduction in `job_sync_num`.
205214

206215
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
207216

208-
N/A
217+
A manual test will be performed, as follows:
218+
219+
1. Create a cluster in 1.23.
220+
1. Upgrade to 1.24.
221+
1. Create long running Job A, ensure that the ready field is populated.
222+
1. Downgrade to 1.23.
223+
1. Verify that ready field in Job A is not lost, but also not updated.
224+
1. Create long running Job B, ensure that ready field is not populated.
225+
1. Upgrade to 1.24.
226+
1. Verify that Job A and B ready field is tracked again.
209227

210228
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
211229

@@ -301,7 +319,8 @@ No change from existing behavior of the Job controller.
301319

302320
## Implementation History
303321

304-
- 2021-08-19: Proposed KEP starting in beta status.
322+
- 2021-08-19: Proposed KEP starting in alpha status, including full PRR questionnaire.
323+
- 2022-01-05: Proposed graduation to beta.
305324

306325
## Drawbacks
307326

keps/sig-apps/2879-ready-pods-job-status/kep.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@ approvers:
1515
see-also:
1616
replaces:
1717

18-
stage: alpha
18+
stage: beta
1919

20-
latest-milestone: "v1.23"
20+
latest-milestone: "v1.24"
2121

2222
milestone:
2323
alpha: "v1.23"
2424
beta: "v1.24"
25-
stable: "v1.25"
2625

2726
feature-gates:
2827
- name: JobReadyPods

0 commit comments

Comments
 (0)