Skip to content

Commit fe27e28

Browse files
committed
update the PRRQ
Signed-off-by: Alex Wang <[email protected]>
1 parent d805cc3 commit fe27e28

File tree

1 file changed

+9
-10
lines changed
  • keps/sig-scheduling/3243-respect-pod-topology-spread-after-rolling-upgrades

1 file changed

+9
-10
lines changed

keps/sig-scheduling/3243-respect-pod-topology-spread-after-rolling-upgrades/README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -640,13 +640,7 @@ feature gate after having objects written with the new field) are also critical.
640640
You can take a look at one potential example of such test in:
641641
https://github.com/kubernetes/kubernetes/pull/97058/files#diff-7826f7adbc1996a05ab52e3f5f02429e94b68ce6bce0dc534d1be636154fded3R246-R282
642642
-->
643-
Yes. there are unit and integration tests for feature enablement/disablement.
644-
- unit tests:
645-
- `pkg/scheduler/framework/plugins/podtopologyspread/filtering_test.go`
646-
- `pkg/scheduler/framework/plugins/podtopologyspread/scoring_test.go`
647-
- integration tests
648-
- `test/integration/scheduler/filters/filters_test.go`
649-
- `test/integration/scheduler/scoring/priorities_test.go`
643+
No. The unit tests that are exercising the `switch` of feature gate itself will be added.
650644

651645
### Rollout, Upgrade and Rollback Planning
652646

@@ -665,7 +659,11 @@ feature flags will be enabled on some API servers and not others during the
665659
rollout. Similarly, consider large clusters and how enablement/disablement
666660
will rollout across nodes.
667661
-->
668-
It won't impact already running workloads because it is an opt-in feature.
662+
It won't impact already running workloads because it is an opt-in feature in scheduler.
663+
But during a rolling upgrade, if some apiservers have not enabled the feature, they will not
664+
be able to accept and store the field "MatchLabelKeys" and the pods associated with these
665+
apiservers will not be able to use this feature. As a result, pods belonging to the
666+
same deployment may have different scheduling outcomes.
669667

670668

671669
###### What specific metrics should inform a rollback?
@@ -767,7 +765,7 @@ Recall that end users cannot usually observe component logs or access metrics.
767765
-->
768766

769767
- [x] Other (treat as last resort)
770-
- Details: We can determine if the feature is being used by comparing the expected and actual scheduling results.
768+
- Details: We can determine if this feature is being used by checking deployments that have only `MatchLabelKeys` set in `TopologySpreadConstraint` and no `LabelSelector`. These Deployments will strictly adhere to TopologySpread after both deployment and rolling upgrades if the feature is being used.
771769

772770
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
773771

@@ -898,7 +896,8 @@ Think about adding additional work or introducing new steps in between
898896

899897
[existing SLIs/SLOs]: https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos
900898
-->
901-
No.
899+
Yes. there is an additional work: the scheduler will use the keys in `matchLabelKeys` to look up label values from the pod and AND with `LabelSelector`.
900+
Maybe result in a very samll impact in scheduling latency which directly contributes to pod-startup-latency SLO.
902901

903902
###### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
904903

0 commit comments

Comments
 (0)