@@ -48,7 +48,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
48
48
- [x] (R) Production readiness review completed
49
49
- [x] (R) Production readiness review approved
50
50
- [x] "Implementation History" section is up-to-date for milestone
51
- - [ ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
51
+ - [x ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
52
52
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
53
53
54
54
[ kubernetes.io ] : https://kubernetes.io/
@@ -98,7 +98,7 @@ for Job queueing or workflows to support all of them.
98
98
99
99
### Goals
100
100
101
- - Support the * array Job* pattern by adding completion indexes to each Pod
101
+ - Support the * indexed Job* pattern by adding completion indexes to each Pod
102
102
of a Job in * fixed completion count* mode.
103
103
104
104
### Non-Goals
@@ -136,7 +136,7 @@ spec:
136
136
- name : INDEX
137
137
valueFrom :
138
138
fieldRef :
139
- fieldPath : metadata.annotations['batch.alpha. kubernetes.io/job-completion-index']
139
+ fieldPath : metadata.annotations['batch.kubernetes.io/job-completion-index']
140
140
` ` `
141
141
142
142
### Notes/Constraints/Caveats (Optional)
@@ -187,25 +187,24 @@ const (
187
187
188
188
type JobSpec struct {
189
189
...
190
- // CompletionMode specifies how Pod completions are tracked. It can be
191
- // ` NonIndexed` (default) or `Indexed`.
190
+ // CompletionMode specifies how Pod completions are tracked. It can be
191
+ // ` NonIndexed` (default) or `Indexed`.
192
192
//
193
- // `NonIndexed` means that each Pod completion is homologous to each other.
194
- // The Job is considered complete when there have been .spec.completions
195
- // successful completions.
193
+ // `NonIndexed` means that the Job is considered complete when there have
194
+ // been .spec.completions successfully completed Pods. Each Pod completion is
195
+ // homologous to each other.
196
196
//
197
- // `Indexed` means that each Pod completion needs to be tracked individually;
198
- // each Pods gets an associated completion index, which is available in the
199
- // annotation `batch.alpha.kubernetes.io/job-completion-index`.
200
- // The Job is considered complete when there is one successful Pod for each
201
- // index in the range 0 to (.spec.completions - 1).
202
- // When value is `Indexed`, .spec.completions must have a non-zero positive
203
- // value and `.spec.parallelism` must be less than or equal to 10^5.
204
- //
205
- // More completion modes can be added in the future. If a Job controller
206
- // observes a mode that it doesn't recognize, it manages the Job as in
207
- // `NonIndexed`.
208
- CompletionMode CompletionMode
197
+ // `Indexed` means that the Pods of a
198
+ // Job get an associated completion index from 0 to (.spec.completions - 1),
199
+ // available in the annotation batch.kubernetes.io/job-completion-index.
200
+ // The Job is considered complete when there is one successfully completed Pod
201
+ // for each index.
202
+ // When value is `Indexed`, .spec.completions must be specified and
203
+ // `.spec.parallelism` must be less than or equal to 10^5.
204
+ // More completion modes can be added in the future. If the Job controller
205
+ // observes a mode that it doesn't recognize, the controller skips updates
206
+ // for the Job.
207
+ CompletionMode *CompletionMode
209
208
}
210
209
211
210
type JobStatus struct {
@@ -233,7 +232,7 @@ As the comment describes, when `.spec.completionMode = "Indexed"`:
233
232
### Pod detail
234
233
235
234
The Pod and PodSpec APIs don't get any new fields. However, Pods created for
236
- Indexed Jobs get the annotation ` batch.alpha. kubernetes.io/job-completion-index `
235
+ Indexed Jobs get the annotation ` batch.kubernetes.io/job-completion-index `
237
236
with a value equal to its completion index. The annotation is immutable.
238
237
239
238
The annotation can be accessed through the downward API as a file or environment
@@ -253,7 +252,7 @@ spec:
253
252
- name : JOB_COMPLETION_INDEX
254
253
valueFrom :
255
254
fieldRef :
256
- fieldPath : metadata.annotations['batch.alpha. kubernetes.io/job-completion-index']
255
+ fieldPath : metadata.annotations['batch.kubernetes.io/job-completion-index']
257
256
` ` `
258
257
259
258
The Job controller doesn't add the environment variable if there is a name
@@ -380,7 +379,7 @@ without a completion index.
380
379
381
380
# ## Version Skew Strategy
382
381
383
- This features has no node runtime implications.
382
+ This feature has no node runtime implications.
384
383
385
384
# # Production Readiness Review Questionnaire
386
385
@@ -566,6 +565,7 @@ _This section must be completed when targeting beta graduation to a release._
566
565
567
566
* 2021-01-08: First version of the KEP in provisional status. Design Details
568
567
completed.
568
+ * 2021-03-03-09: Feature implemented under feature gate disabled by default.
569
569
570
570
# # Drawbacks
571
571
0 commit comments