Skip to content

Commit 2684cc5

Browse files
Add alpha stage
1 parent 0b793e1 commit 2684cc5

File tree

3 files changed

+17
-50
lines changed

3 files changed

+17
-50
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
kep-number: 2879
2-
beta:
3-
approver: "@ehashman"
2+
alpha:
3+
approver: "@wojtek-t"

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

Lines changed: 12 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -94,25 +94,8 @@ field based on the number of Pods that have the `Ready` condition.
9494

9595
### Risks and Mitigations
9696

97-
During upgrades, a cluster can have apiservers with version skew, or the
98-
administrator might decide to do a rollback. This can cause:
99-
100-
- Loss of the new API field value
101-
102-
This is acceptable for the first release. The value is only informative: the
103-
kubernetes control plane doesn't use the value to influence behavior.
104-
105-
- Repeated Job status updates.
106-
107-
If one apiserver populates the value and another apiserver (running an older
108-
version) drops the field, the job controller might try to update the field
109-
again, potentially causing subsequent updates. This can be mitigated by only
110-
updating the field if the job controller is already updating the status due
111-
to changes in other fields. This check is only necessary in the first release.
112-
113-
For both problems, in the first release, the API documentation, can state that
114-
the field can remain at zero indefinitely even if pods have been Ready for a long
115-
time.
97+
An increase in Job status updates. This is capped by the number of times Pods
98+
reach the ready State, usually once in their lifetime.
11699

117100
## Design Details
118101

@@ -134,43 +117,24 @@ The Job controller already lists the Pods to populate the `active`, `succeeded`
134117
and `failed` fields. To count `ready` pods, the job controller will filter the
135118
pods that have the `Ready` condition.
136119

137-
In a first release, the Job controller counts the ready pods and updates the
138-
field if and only if:
139-
- The job controller is already updating other Job status fields.
140-
- The `JobReadyPods` feature gate is enabled.
141-
142-
In the second release, the Job controller updates the field unconditionally.
143-
144120
### Test Plan
145121

146122
- Unit and integration tests covering:
147123
- Count of ready pods.
148-
- Not producing updates in the cases described in the design.
124+
- Feature gate disablement.
149125
- Verify passing existing E2E and conformance tests for Job.
150126

151127
### Graduation Criteria
152128

153129
#### Alpha
154130

155-
This KEP proposes to skip this stage, for the following reasons:
156-
- The added calculation is trivial.
157-
- It is acceptable to report .status.ready as zero in the first release, as
158-
the value is only informative.
131+
- Feature gate disabled by default.
132+
- Unit and integration tests passing.
159133

160134
#### Beta
161135

162-
- Ability to completely disable the feature, through a feature gate. The feature
163-
gate is enabled by default.
164-
165-
In a first release:
166-
167-
- The job controller only fills the field if there are other Job status updates.
168-
- Unit and integration tests.
169-
170-
In a second release:
171-
172-
- The job controller fills the field whenever the number of ready Pods changes.
173-
The feature can still be disabled through the feature gate.
136+
- Feature gate enabled by default.
137+
- Existing E2E and conformance tests passing.
174138

175139
#### GA
176140

@@ -189,8 +153,8 @@ No changes required for existing cluster to use the enhancement.
189153

190154
The feature doesn't affect nodes.
191155

192-
In the first release, a version skew between apiservers might cause the new field
193-
to remain at zero even if there are Pods ready.
156+
In the first release, a version skew between apiservers might cause the new
157+
field to remain at zero even if there are Pods ready.
194158

195159
## Production Readiness Review Questionnaire
196160

@@ -200,7 +164,9 @@ to remain at zero even if there are Pods ready.
200164

201165
- [x] Feature gate (also fill in values in `kep.yaml`)
202166
- Feature gate name: JobReadyPods
203-
- Components depending on the feature gate: kube-controller-manager
167+
- Components depending on the feature gate:
168+
- kube-controller-manager
169+
- kube-apiserver
204170
- [ ] Other
205171
- Describe the mechanism:
206172
- Will enabling / disabling the feature require downtime of the control

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ status: implementable
88
creation-date: 2021-08-19
99
reviewers:
1010
- "@soltysh"
11-
- TBD API reviewer
11+
- "@lavalamp"
1212
approvers:
1313
- "@soltysh"
1414

1515
see-also:
1616
replaces:
1717

18-
stage: beta
18+
stage: alpha
1919

2020
latest-milestone: "v1.23"
2121

@@ -27,6 +27,7 @@ feature-gates:
2727
- name: JobReadyPods
2828
components:
2929
- kube-controller-manager
30+
- kube-apiserver
3031
disable-supported: true
3132

3233
metrics:

0 commit comments

Comments
 (0)