Skip to content

☂️ Compatibility test suite for scheduler framework (out-of-tree plugins) #117215

Not planned
@Huang-Wei

Description

@Huang-Wei

Background

Scheduler framework provides extension hooks to scheduler plugins. k/k usually does a good job to ensure all in-tree plugins adheres to framework changes in each release, but it's not always the case for out-of-tree plugins. For example, #115583 (comment) reveals a case that we wanted to make in-tree plugin more efficient, but mistakenly breaks the compatibility of out-of-tree plugins. Per suggestion in #117194 (comment), this umbrella issue is created to ensure adequate test coverage of potential paths on each extension point that out-of-tree plugins may exercise.

Note: when composing tests, think loud on other patterns of using a particular extension point.

Compatibility test suite for scheduler framework (out-of-tree plugins)

Preview Give feedback

Activity

added
needs-sigIndicates an issue or PR lacks a `sig/foo` label and requires one.
needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.
on Apr 11, 2023
k8s-ci-robot

k8s-ci-robot commented on Apr 11, 2023

@k8s-ci-robot
Contributor

This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Huang-Wei

Huang-Wei commented on Apr 11, 2023

@Huang-Wei
MemberAuthor

/kind feature
/sig scheduling

added
kind/featureCategorizes issue or PR as related to a new feature.
sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.
and removed
needs-sigIndicates an issue or PR lacks a `sig/foo` label and requires one.
on Apr 11, 2023
alculquicondor

alculquicondor commented on Apr 11, 2023

@alculquicondor
Member

Each of the tests we add should have a deliberation. We shouldn't simply accept the way an out-of-tree plugin is using the scheduling framework if we have to sacrifice in-tree plugins performance or if it significantly adds maintenance burden.

That said, I'm in favor of the test for #115583 (comment)

Huang-Wei

Huang-Wei commented on Apr 11, 2023

@Huang-Wei
MemberAuthor

Yes, before working on a PR, each upcoming test needs to describe the intention specifically under this issue.

sanposhiho

sanposhiho commented on Apr 11, 2023

@sanposhiho
Member

/assign

sanposhiho

sanposhiho commented on May 5, 2023

@sanposhiho
Member

Not sure if it's the right place to mention, but I recently feel we, sooner or later, need to have the performance test (in scheduler_perf or Benchmark_XXX) to ensure no performance degradation on enqueueing in various scenario, given we already have PreEnqueue, and we'll have wise-enqueueing via my proposal or pohly's one.

Huang-Wei

Huang-Wei commented on May 8, 2023

@Huang-Wei
MemberAuthor

A function level BenchmarkXYZ test may not be able to test an e2e flow. We can craft new tests in scheduler_perf to cover 1) basic scenario that not involves in-flight pod, and 2) scenario that involves in-flight pod (e.g., DRA specific one). Then with the results of 1) and 2), it can give us more clues how to proceed.

kerthcet

kerthcet commented on May 8, 2023

@kerthcet
Member

Per suggestion in #117194 (comment), this umbrella issue is created to track potential paths of out-of-tree plugins exercising each scheduler extension point.

Poor points, shouldn't this be ensured in scheduler-plugins repo, in kubernetes, we can fake new plugins in tests to make sure this not happen.

28 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.sig/schedulingCategorizes an issue or PR as relevant to SIG Scheduling.

    Type

    No type

    Projects

    • Status

      Closed

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      ☂️ Compatibility test suite for scheduler framework (out-of-tree plugins) · Issue #117215 · kubernetes/kubernetes