Skip to content

Commit 23afbb0

Browse files
committed
review update
1 parent 3fc309e commit 23afbb0

File tree

2 files changed

+10
-112
lines changed

2 files changed

+10
-112
lines changed

keps/sig-apps/2804-consolidate-workload-controllers-status/README.md

Lines changed: 9 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
- [Alpha](#alpha)
2626
- [Alpha -> Beta Graduation](#alpha---beta-graduation)
2727
- [Beta -> GA Graduation](#beta---ga-graduation)
28-
- [Alpha](#alpha-1)
29-
- [Beta](#beta)
30-
- [GA](#ga)
31-
- [Deprecation](#deprecation)
3228
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
3329
- [Version Skew Strategy](#version-skew-strategy)
3430
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
@@ -49,14 +45,14 @@
4945

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

52-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
53-
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
54-
- [ ] (R) Design details are appropriately documented
55-
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
48+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
49+
- [x] (R) KEP approvers have approved the KEP status as `implementable`
50+
- [x] (R) Design details are appropriately documented
51+
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
5652
- [ ] e2e Tests for all Beta API Operations (endpoints)
5753
- [ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
5854
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
59-
- [ ] (R) Graduation criteria is in place
55+
- [x] (R) Graduation criteria is in place
6056
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
6157
- [ ] (R) Production readiness review completed
6258
- [ ] (R) Production readiness review approved
@@ -192,7 +188,7 @@ There are many factors that can cause failure to happen like:
192188

193189
See the [Kubernetes API Conventions](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) for more information on status conditions
194190

195-
Because of the number of changes that are involved as part of this effort, we are thinking of a phased approach where we introduce these conditions to DaemonSet controller first and then make similar changes to ReplicaSet and StatefulSet controller. We would graduate ExtraWorkloadConditions to beta once all the features and `progressDeadlineSeconds` KEP are implemented.
191+
Because of the number of changes that are involved as part of this effort, we are thinking of a phased approach where we introduce these conditions to DaemonSet controller first and then make similar changes to ReplicaSet and StatefulSet controller. We would graduate ExtendedWorkloadConditions to beta once all the features and `progressDeadlineSeconds` KEP are implemented.
196192
This also needs some code refactoring of existing conditions for Deployment controller.
197193

198194
#### Available
@@ -231,7 +227,7 @@ It is possible that we introduce a bug in the implementation. The bug can cause:
231227
- DaemonSet and StatefulSet controllers can be marked `Failed` even though rollout is in progress
232228
- The states could be misrepresented, for example a DaemonSet or StatefulSet can be marked `Progressing` when actually it is complete
233229

234-
The mitigation currently is that these features will be in Alpha stage behind `ExtraWorkloadConditions` featuregate for people to try out and give feedback. In Beta phase when
230+
The mitigation currently is that these features will be in Alpha stage behind `ExtendedWorkloadConditions` featuregate for people to try out and give feedback. In Beta phase when
235231
these are enabled by default, people will only see issues or bugs when `progressDeadlineSeconds` is set to something greater than 0 and we choose default values for that field.
236232
Since people would have tried this feature in Alpha, we would have had time to fix issues.
237233

@@ -259,70 +255,11 @@ API validation, behavioral change of controllers with feature gate enabled and d
259255

260256
#### Beta -> GA Graduation
261257
- 2 examples of end users using this field
262-
<!--
263-
**Note:** *Not required until targeted at a release.*
264-
265-
Define graduation milestones.
266-
267-
These may be defined in terms of API maturity, or as something else. The KEP
268-
should keep this high-level with a focus on what signals will be looked at to
269-
determine graduation.
270-
271-
Consider the following in developing the graduation criteria for this enhancement:
272-
- [Maturity levels (`alpha`, `beta`, `stable`)][maturity-levels]
273-
- [Deprecation policy][deprecation-policy]
274-
275-
Clearly define what graduation means by either linking to the [API doc
276-
definition](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning)
277-
or by redefining what graduation means.
278-
279-
In general we try to use the same stages (alpha, beta, GA), regardless of how the
280-
functionality is accessed.
281-
282-
[maturity-levels]: https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#alpha-beta-and-stable-versions
283-
[deprecation-policy]: https://kubernetes.io/docs/reference/using-api/deprecation-policy/
284-
285-
Below are some examples to consider, in addition to the aforementioned [maturity levels][maturity-levels].
286-
287-
#### Alpha
288-
289-
- Feature implemented behind a feature flag
290-
- Initial e2e tests completed and enabled
291-
292-
#### Beta
293-
294-
- Gather feedback from developers and surveys
295-
- Complete features A, B, C
296-
- Additional tests are in Testgrid and linked in KEP
297-
298-
#### GA
299-
300-
- N examples of real-world usage
301-
- N installs
302-
- More rigorous forms of testing—e.g., downgrade tests and scalability tests
303-
- Allowing time for feedback
304-
305-
**Note:** Generally we also wait at least two releases between beta and
306-
GA/stable, because there's no opportunity for user feedback, or even bug reports,
307-
in back-to-back releases.
308-
309-
**For non-optional features moving to GA, the graduation criteria must include
310-
[conformance tests].**
311-
312-
[conformance tests]: https://git.k8s.io/community/contributors/devel/sig-architecture/conformance-tests.md
313-
314-
#### Deprecation
315-
316-
- Announce deprecation and support policy of the existing flag
317-
- Two versions passed since introducing the functionality that deprecates the flag (to address version skew)
318-
- Address feedback on usage/changed behavior, provided on GitHub issues
319-
- Deprecate the flag
320-
-->
321258

322259
### Upgrade / Downgrade Strategy
323260

324261
- Upgrades
325-
When upgrading from a release without this feature, to a release with `ExtraWorkloadConditions` feature,
262+
When upgrading from a release without this feature, to a release with `ExtendedWorkloadConditions` feature,
326263
we will set new conditions on the mentioned workloads.
327264
- Downgrades
328265
When downgrading from a release with this feature, to a release without,
@@ -336,14 +273,10 @@ None identified yet.
336273

337274
### Feature Enablement and Rollback
338275

339-
<!--
340-
This section must be completed when targeting alpha to a release.
341-
-->
342-
343276
###### How can this feature be enabled / disabled in a live cluster?
344277

345278
- [x] Feature gate (also fill in values in `kep.yaml`)
346-
- Feature gate name: ExtraWorkloadConditions
279+
- Feature gate name: ExtendedWorkloadConditions
347280
- Components depending on the feature gate:
348281
- kube-controller-manager
349282

@@ -363,47 +296,31 @@ Yes, unit, integration and e2e tests for feature enabled, disabled
363296

364297
### Rollout, Upgrade and Rollback Planning
365298

366-
<!--
367-
This section must be completed when targeting beta to a release.
368-
-->
369-
370299
###### How can a rollout or rollback fail? Can it impact already running workloads?
371300

372-
373301
###### What specific metrics should inform a rollback?
374302

375303
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
376304

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

379-
380307
### Monitoring Requirements
381308

382-
<!--
383-
This section must be completed when targeting beta to a release.
384-
-->
385-
386309
###### How can an operator determine if the feature is in use by workloads?
387310

388-
389311
###### How can someone using this feature know that it is working for their instance?
390312

391313
- [ ] API .status
392314
- Condition name: Progressing, Available, Waiting, Running
393315

394316
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
395317

396-
397318
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
398319

399320
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
400321

401322
### Dependencies
402323

403-
<!--
404-
This section must be completed when targeting beta to a release.
405-
-->
406-
407324
###### Does this feature depend on any specific services running in the cluster?
408325

409326
### Scalability
@@ -436,14 +353,6 @@ No.
436353

437354
### Troubleshooting
438355

439-
<!--
440-
This section must be completed when targeting beta to a release.
441-
442-
The Troubleshooting section currently serves the `Playbook` role. We may consider
443-
splitting it into a dedicated `Playbook` document (potentially with some monitoring
444-
details). For now, we leave it here.
445-
-->
446-
447356
###### How does this feature react if the API server and/or etcd is unavailable?
448357

449358
###### What are other known failure modes?
@@ -452,17 +361,6 @@ details). For now, we leave it here.
452361

453362
## Implementation History
454363

455-
<!--
456-
Major milestones in the lifecycle of a KEP should be tracked in this section.
457-
Major milestones might include:
458-
- the `Summary` and `Motivation` sections being merged, signaling SIG acceptance
459-
- the `Proposal` section being merged, signaling agreement on a proposed design
460-
- the date implementation started
461-
- the first Kubernetes release where an initial version of the KEP was available
462-
- the version of Kubernetes where the KEP graduated to general availability
463-
- when the KEP was retired or superseded
464-
-->
465-
466364
## Drawbacks
467365
Adds more complexity to Deployment, DaemonSet, Job, ReplicaSet, ReplicationController, StatefulSet controllers in terms of checking conditions and updating the conditions continuously.
468366

keps/sig-apps/2804-consolidate-workload-controllers-status/kep.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ milestone:
3434
# The following PRR answers are required at alpha release
3535
# List the feature gate name and the components for which it must be enabled
3636
feature-gates:
37-
- name: ExtraWorkloadConditions
37+
- name: ExtendedWorkloadConditions
3838
components:
3939
- kube-controller-manager
4040
disable-supported: true

0 commit comments

Comments
 (0)