Skip to content

Commit fd4dc6c

Browse files
authored
Merge pull request #4407 from sanposhiho/mindomain
KEP-3022: graduate Pod Topology Spread MinDomains to stable
2 parents 75497ab + 5fd5087 commit fd4dc6c

File tree

3 files changed

+52
-27
lines changed

3 files changed

+52
-27
lines changed

keps/prod-readiness/sig-scheduling/3022.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ kep-number: 3022
55
alpha:
66
approver: "@wojtek-t"
77
beta:
8-
approver: "@johnbelamaric"
8+
approver: "@johnbelamaric"
9+
stable:
10+
approver: "@wojtek-t"

keps/sig-scheduling/3022-min-domains-in-pod-topology-spread/README.md

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
- [Graduation Criteria](#graduation-criteria)
2121
- [Alpha (v1.24):](#alpha-v124)
2222
- [Beta (v1.25):](#beta-v125)
23+
- [GA (v1.30):](#ga-v130)
2324
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
2425
- [Feature Enablement and Rollback](#feature-enablement-and-rollback)
2526
- [Rollout, Upgrade and Rollback Planning](#rollout-upgrade-and-rollback-planning)
@@ -38,20 +39,20 @@
3839

3940
Items marked with (R) are required _prior to targeting to a milestone / release_.
4041

41-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
42-
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
43-
- [ ] (R) Design details are appropriately documented
44-
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
45-
- [ ] e2e Tests for all Beta API Operations (endpoints)
46-
- [ ] (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)
47-
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
48-
- [ ] (R) Graduation criteria is in place
49-
- [ ] (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)
50-
- [ ] (R) Production readiness review completed
51-
- [ ] (R) Production readiness review approved
52-
- [ ] "Implementation History" section is up-to-date for milestone
53-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
54-
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
42+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
43+
- [x] (R) KEP approvers have approved the KEP status as `implementable`
44+
- [x] (R) Design details are appropriately documented
45+
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
46+
- [x] e2e Tests for all Beta API Operations (endpoints)
47+
- [x] (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)
48+
- [x] (R) Minimum Two Week Window for GA e2e tests to prove flake free
49+
- [x] (R) Graduation criteria is in place
50+
- [x] (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
5556

5657
[kubernetes.io]: https://kubernetes.io/
5758
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -237,9 +238,9 @@ This can inform certain test coverage improvements that we want to do before
237238
extending the production code to implement this enhancement.
238239
-->
239240

240-
- `k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread`: `2022-06-17` - `86%`
241-
- `k8s.io/kubernetes/pkg/api/pod`: `2022-06-17` - `66.7%`
242-
- `k8s.io/kubernetes/pkg/apis/core/validation`: `2022-06-17` - `82.1%`
241+
- `k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread`: `2024-01-28` - `87.3%`
242+
- `k8s.io/kubernetes/pkg/api/pod`: `2024-01-28` - `74.8%`
243+
- `k8s.io/kubernetes/pkg/apis/core/validation`: `2024-01-28` - `83.9%`
243244

244245
##### Integration tests
245246

@@ -250,7 +251,7 @@ For Beta and GA, add links to added tests together with links to k8s-triage for
250251
https://storage.googleapis.com/k8s-triage/index.html
251252
-->
252253

253-
test: https://github.com/kubernetes/kubernetes/blob/19c8a2127177b43effb9bfe1de272d6f08ea56e8/test/integration/scheduler/filters/filters_test.go#L1060
254+
test: https://github.com/kubernetes/kubernetes/blob/c6064489223862fe1888fcbe0656ab1087461adb/test/integration/scheduler/filters/filters_test.go#L1349
254255
k8s-triage: https://storage.googleapis.com/k8s-triage/index.html?sig=scheduling&test=TestPodTopologySpreadFilter
255256

256257
##### e2e tests
@@ -280,7 +281,11 @@ So, E2E tests doesn't add extra value to integration tests.
280281

281282
#### Beta (v1.25):
282283

283-
- [ ] This feature will be enabled by default as a Beta feature in v1.25.
284+
- [x] This feature will be enabled by default as a Beta feature in v1.25.
285+
286+
#### GA (v1.30):
287+
288+
- [x] No particular issue is reported to this feature for a certain length of time.
284289

285290
## Production Readiness Review Questionnaire
286291

@@ -335,7 +340,7 @@ Scheduling of new Pods is affected.
335340

336341
###### Are there any tests for feature enablement/disablement?
337342

338-
No - unit and integration tests will be added.
343+
No - we've only done the manual testing as described at [Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?](#were-upgrade-and-rollback-tested-was-the-upgrade-downgrade-upgrade-path-tested).
339344

340345
### Rollout, Upgrade and Rollback Planning
341346

@@ -424,6 +429,8 @@ logs or events for this purpose.
424429
-->
425430

426431
The operator can query pods with `pod.spec.topologySpreadConstraints.minDomains` field set.
432+
And, after adopting `minDomains` in some Pods, they can confirm that `minDomains` impacts on the scheduling
433+
by observing an increase in `plugin_evaluation_total{plugin="PodTopologySpread",extension_point="Filter"}`.
427434

428435
###### How can someone using this feature know that it is working for their instance?
429436

@@ -481,9 +488,7 @@ Describe the metrics themselves and the reasons why they weren't added (e.g., co
481488
implementation difficulties, etc.).
482489
-->
483490

484-
Yes. It would be useful if we could see which filter plugin affected Pod's scheduling results in metrics.
485-
486-
Issue: https://github.com/kubernetes/kubernetes/issues/110643
491+
No.
487492

488493
### Dependencies
489494

@@ -558,6 +563,20 @@ This through this both in small and large cases, again with respect to the
558563
[supported limits]: https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md
559564
-->
560565

566+
###### Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?
567+
568+
<!--
569+
Focus not just on happy cases, but primarily on more pathological cases
570+
(e.g. probes taking a minute instead of milliseconds, failed pods consuming resources, etc.).
571+
If any of the resources can be exhausted, how this is mitigated with the existing limits
572+
(e.g. pods per node) or new limits added by this KEP?
573+
574+
Are there any tests that were run/should be run to understand performance characteristics better
575+
and validate the declared limits?
576+
-->
577+
578+
No.
579+
561580
### Troubleshooting
562581

563582
<!--
@@ -615,6 +634,9 @@ Major milestones might include:
615634
- 2022-01-14: Initial KEP is merged.
616635
- 2022-03-16: The implementation PRs are merged.
617636
- 2022-05-03: The MinDomain feature is released as alpha feature with Kubernetes v1.24 release.
637+
- 2022-06-23: KEP is updated so that the MinDomain feature is moving to beta with Kubernetes v1.25 release.
638+
- 2022-07-16: The feature gate is changed to be enabled by default.
639+
- 2024-01-15: KEP is updated so that the MinDomain feature is moving to GA with Kubernetes v1.30 release.
618640

619641
## Drawbacks
620642

keps/sig-scheduling/3022-min-domains-in-pod-topology-spread/kep.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ reviewers:
1414
approvers:
1515
- "@alculquicondor"
1616
- "@Huang-Wei"
17-
stage: beta
18-
latest-milestone: "v1.25"
17+
stage: stable
18+
latest-milestone: "v1.30"
1919
milestone:
2020
alpha: "v1.24"
2121
beta: "v1.25"
22-
disable-supported: true
22+
stable: "v1.30"
23+
disable-supported: false
2324
feature-gates:
2425
- name: MinDomainsInPodTopologySpread
2526
components:

0 commit comments

Comments
 (0)