Skip to content

Commit 68e3d49

Browse files
committed
KEP 4026: promote to stable
1 parent 2c50c98 commit 68e3d49

File tree

3 files changed

+45
-17
lines changed

3 files changed

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

keps/sig-apps/4026-crojob-scheduled-timestamp-annotation/README.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
4444
- [X] (R) Design details are appropriately documented
4545
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
4646
- [ ] e2e Tests for all Beta API Operations (endpoints)
47-
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
47+
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
4848
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
4949
- [X] (R) Graduation criteria is in place
50-
- [ ] (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)
51-
- [ ] (R) Production readiness review completed
52-
- [ ] (R) Production readiness review approved
53-
- [ ] "Implementation History" section is up-to-date for milestone
54-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
55-
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
50+
- [ ] (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)
51+
- [x] (R) Production readiness review completed
52+
- [x] (R) Production readiness review approved
53+
- [x] "Implementation History" section is up-to-date for milestone
54+
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
55+
- [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
5656

5757
[kubernetes.io]: https://kubernetes.io/
5858
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -107,16 +107,15 @@ to implement this enhancement.
107107

108108
##### Unit tests
109109

110-
- `k8s.io/kubernetes/pkg/controller/cronjob`: `05/22/2023` - `96.2%`
110+
- `k8s.io/kubernetes/pkg/controller/cronjob`: `09/24/2023` - `71.2%`
111111

112112
##### Integration tests
113113

114-
- Unit tests will ensure the new annotation is correctly added to jobs.
115-
- The integration test should ensure the annotation is present when the feature is on and missing when off. It will also verify that the annotation is only added to jobs from newly created CronJobs, not existing workloads.
114+
- No integration tests are planned for this feature.
116115

117116
##### e2e tests
118117

119-
E2E tests will not provide any additional coverage that isn't already covered by unit + integration tests, since we are simply adding an annotation, so no e2e tests will be necessary for this change.
118+
- [CronJob should set the cronjob-scheduled-timestamp annotation](https://github.com/kubernetes/kubernetes/blob/4aeaf1e99e82da8334c0d6dddd848a194cd44b4f/test/e2e/apps/cronjob.go#L264-L287): [test coverage](https://storage.googleapis.com/k8s-triage/index.html?test=.*CronJob%20should%20set%20the%20cronjob-scheduled-timestamp%20annotation.*)
120119

121120
### Graduation Criteria
122121

@@ -125,7 +124,7 @@ The feature will be released directly in Beta state since there is no benefit in
125124
#### Beta
126125

127126
- Feature implemented behind the `CronJobsScheduledAnnotation` feature gate.
128-
- Unit and integration tests passing.
127+
- Unit and e2e tests passing.
129128

130129
#### GA
131130

@@ -187,7 +186,20 @@ This change will not impact the rollout or rollback fail. It also will not impac
187186

188187
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
189188

190-
The feature will be tested manually prior to beta launch.
189+
The following manual upgrade->downgrade->upgrade scenario was performed:
190+
191+
1. Create a v1.27 cluster where the feature is not available, yet.
192+
2. Create a CronJob and wait for jobs to be created. Verify the newly created job
193+
does NOT have the `batch.kubernetes.io/cronjob-scheduled-timestamp` annotation.
194+
3. Upgrade cluster to v1.28, where the feature was available as beta, iow.
195+
on by default. Verify the newly created job from a CronJob created in 2nd step
196+
has the `batch.kubernetes.io/cronjob-scheduled-timestamp` annotation with
197+
planned time, when a job was to be created.
198+
4. Downgrade cluster to v1.27, where the feature was NOT available. Verify the
199+
newly created job from a CronJob created in 2nd step does NOT have the
200+
`batch.kubernetes.io/cronjob-scheduled-timestamp` annotation.
201+
202+
During the tests no problems were identified with cronjobs or jobs.
191203

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

@@ -273,10 +285,15 @@ N/A
273285

274286
###### What steps should be taken if SLOs are not being met to determine the problem?
275287

276-
- 2023-06-06: KEP published
288+
The new annotation shouldn't cause any unforeseen issues with the cronjob controller.
289+
In the event of issues with meeting SLOs, cluster admins are advised to consult
290+
[troubleshooting overview document](https://kubernetes.io/docs/tasks/debug/).
277291

278292
## Implementation History
279293

294+
- 2023-06-06: KEP published
295+
- 2024-09-24: KEP updated for stable promotion
296+
280297
## Drawbacks
281298

282299
## Alternatives
@@ -288,3 +305,5 @@ N/A
288305
- The object already has the `CreationTimestamp` field, but it will get overridden with the time the CronJob will start. The point of the new annotation is to pass the original/expected scheduled timestamp information.
289306

290307
## Infrastructure Needed (Optional)
308+
309+
N/A

keps/sig-apps/4026-crojob-scheduled-timestamp-annotation/kep.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,29 @@ title: Add job creation timestamp to job annotations
22
kep-number: 4026
33
authors:
44
- "@helayoty"
5+
- "@soltysh"
56
owning-sig: sig-apps
67
participating-sigs:
78
status: implementable
89
creation-date: 2023-06-06
910
reviewers:
1011
- "@soltysh"
12+
- "@atiratree"
13+
- "@janetkuo"
1114
approvers:
1215
- "@soltysh"
16+
- "@janetkuo"
1317

1418
# The target maturity stage in the current dev cycle for this KEP.
15-
stage: beta
19+
stage: stable
1620

17-
latest-milestone: "v1.28"
21+
latest-milestone: "v1.32"
1822

1923
# The milestone at which this feature was, or is targeted to be, at each stage.
2024
milestone:
2125
alpha: ""
2226
beta: "v1.28"
23-
stable: ""
27+
stable: "v1.32"
2428

2529
# The following PRR answers are required at alpha release
2630
# List the feature gate name and the components for which it must be enabled
@@ -32,3 +36,6 @@ disable-supported: true
3236

3337
# The following PRR answers are required at beta release
3438
metrics:
39+
- job_creation_skew_duration_seconds
40+
- cronjob_controller_rate_limiter_use
41+
- cronjob_job_creation_skew

0 commit comments

Comments
 (0)