Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions keps/prod-readiness/sig-apps/3998.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ alpha:
approver: "@wojtek-t"
beta:
approver: "@wojtek-t"
stable:
approver: "@wojtek-t"
Comment on lines +6 to +7
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @wojtek-t!
Would you mind taking this graduation as PRR approver?
Thanks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry - I was out for last 3 weeks. Taking a look now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem. Thanks for the review!

26 changes: 14 additions & 12 deletions keps/sig-apps/3998-job-success-completion-policy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
- [x] (R) Design details are appropriately documented
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
- [x] e2e Tests for all Beta API Operations (endpoints)
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
- [x] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
- [x] (R) Graduation criteria is in place
- [ ] (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)
- [ ] (R) Production readiness review completed
- [ ] (R) Production readiness review approved
- [x] (R) Production readiness review completed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: above (R) Ensure GA e2e tests meet requirements for [Conformance Tests should also be checked

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I confirmed that, thanks.

- [x] (R) Production readiness review approved
- [x] "Implementation History" section is up-to-date for milestone
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
- [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
Expand Down Expand Up @@ -439,18 +439,19 @@ to implement this enhancement.
##### Integration tests

- Test scenarios:
- [enabling, disabling and re-enabling of the `JobSuccessPolicy` feature gate](https://github.com/kubernetes/kubernetes/blob/6346b9d1327c4b8be2398d9715bdae5475e27569/test/integration/job/job_test.go#L794)
- [handling of successPolicy when all indexes succeeded](https://github.com/kubernetes/kubernetes/blob/6346b9d1327c4b8be2398d9715bdae5475e27569/test/integration/job/job_test.go#L539)
- [handling of the `.spec.successPolicy.rules.succeededIndexes` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/6346b9d1327c4b8be2398d9715bdae5475e27569/test/integration/job/job_test.go#L608)
- [handling of the `.spec.successPolicy.rules.succeededCount` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/6346b9d1327c4b8be2398d9715bdae5475e27569/test/integration/job/job_test.go#L653)
- [handling of successPolicy when some indexes of job with `backOffLimitPerIndex` fail](https://github.com/kubernetes/kubernetes/blob/6346b9d1327c4b8be2398d9715bdae5475e27569/test/integration/job/job_test.go#L698)
- [enabling, disabling and re-enabling of the `JobSuccessPolicy` feature gate](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L872): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy_ReEnabling)
- [handling of successPolicy when all indexes succeeded](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L578): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy)
- [jobs_finished_total metric with CompletionsReached is incremented when job does not have successPolicy](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L649): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy)
- [handling of the `.spec.successPolicy.rules.succeededIndexes` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L680): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy)
- [handling of the `.spec.successPolicy.rules.succeededCount` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L727): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy)
- [handling of successPolicy when some indexes of job with `backOffLimitPerIndex` fail](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/integration/job/job_test.go#L774): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-integration&test=TestSuccessPolicy)

##### e2e tests

- Test scenarios:
- [handling of successPolicy when all indexes succeeded](https://github.com/kubernetes/kubernetes/blob/3a8a60eba29940e26ac8db52329a91ba87305114/test/e2e/apps/job.go#L524-L530)
- [handling of the `.spec.successPolicy.rules.succeededIndexes` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/3a8a60eba29940e26ac8db52329a91ba87305114/test/e2e/apps/job.go#L563-L569)
- [handling of the `.spec.successPolicy.rules.succeededCount` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/3a8a60eba29940e26ac8db52329a91ba87305114/test/e2e/apps/job.go#L602-L608)
- [handling of successPolicy when all indexes succeeded](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/e2e/apps/job.go#L478-L484): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-e2e&test=with%20successPolicy%20should%20succeeded%20when%20all%20indexes%20succeeded)
- [handling of the `.spec.successPolicy.rules.succeededIndexes` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/e2e/apps/job.go#L517-L523): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-e2e&test=with%20successPolicy%20succeededIndexes%20rule%20should%20succeeded%20even%20when%20some%20indexes%20remain%20pending)
- [handling of the `.spec.successPolicy.rules.succeededCount` when some indexes remain pending](https://github.com/kubernetes/kubernetes/blob/20b12ad5c389ff74792988bf1e0c10fe2820d9a1/test/e2e/apps/job.go#L556-L562): [result](https://storage.googleapis.com/k8s-triage/index.html?job=ci-kubernetes-e2e&test=with%20successPolicy%20succeededCount%20rule%20should%20succeeded%20even%20when%20some%20indexes%20remain%20pending)

### Graduation Criteria

Expand All @@ -470,7 +471,7 @@ to implement this enhancement.
#### GA

- No negative feedback.
- Verify reason for the Job's `Complete` condition in all e2e conformance tests
- Verify `conditions[].reason=[CompletionsReached|SuccessPolicy]` for the Job's `Complete` condition in all e2e conformance tests
(see [example](https://github.com/kubernetes/kubernetes/blob/e5dd48efd07e8a052604b3073e0fafe7361ca689/test/e2e/apps/job.go#L804))

### Upgrade / Downgrade Strategy
Expand Down Expand Up @@ -741,6 +742,7 @@ consider tuning the parameters for [APF](https://kubernetes.io/docs/concepts/clu
- 2024.03.09: "Criteria" is replaced with "Rules".
- 2024.06.11: Beta Graduation.
- 2024.07.26: "CompletionsReached" reason is added and new reason labels are added to the "jobs_finished_total" metric.
- 2025.02.07: GA Graduation.

## Drawbacks

Expand Down
6 changes: 3 additions & 3 deletions keps/sig-apps/3998-job-success-completion-policy/kep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ see-also:
- "/keps/sig-apps/4368-support-managed-by-batch-job"

# The target maturity stage in the current dev cycle for this KEP.
stage: beta
stage: stable

# The most recent milestone for which work toward delivery of this KEP has been
# done. This can be the current (upcoming) milestone, if it is being actively
# worked on.
latest-milestone: "v1.31"
latest-milestone: "v1.33"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
alpha: "v1.30"
beta: "v1.31"
stable:
stable: "v1.33"

# The following PRR answers are required at alpha release
# List the feature gate name and the components for which it must be enabled
Expand Down