Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split scheduler framework implementation into a separate pkg #91029

Closed
ahg-g opened this issue May 12, 2020 · 11 comments · Fixed by #95731
Closed

Split scheduler framework implementation into a separate pkg #91029

ahg-g opened this issue May 12, 2020 · 11 comments · Fixed by #95731
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling.

Comments

@ahg-g
Copy link
Member

ahg-g commented May 12, 2020

Split the scheduler framework into an interface pkg and an implementation pkg.

We can keep the interface files (interface.go, types.go, listers.go and cyclestate.go) under scheduler/framework/v1alpha1 and move the implementation to scheduler/framework/runtime.

Ideally plugins should only depend on the interface pkg.

/cc @Huang-Wei @alculquicondor
/sig scheduling

@ahg-g ahg-g added the kind/feature Categorizes issue or PR as related to a new feature. label May 12, 2020
@k8s-ci-robot k8s-ci-robot added the sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. label May 12, 2020
@Huang-Wei
Copy link
Member

And we can use this chance to remove the "v1alpha1" literal from scheduler/framework/v1alpha1 as there is only one version of framework interface.

@alculquicondor
Copy link
Member

+1

@farah
Copy link
Contributor

farah commented May 24, 2020

Hi @ahg-g,

I was hoping that maybe I can pick this up as I'm looking for my first PR :)

I'll get started on this anyway and will attempt to break the package up . Will report in a few days.

What should be the names of the new package?

Any tips are welcome :) @Huang-Wei @alculquicondor

@ahg-g
Copy link
Member Author

ahg-g commented May 24, 2020

Thanks @farah, feel free to send a PR my way. For now, let's just move the implementation to scheduler/framework/runtime

/assign @farah

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 22, 2020
@ahg-g
Copy link
Member Author

ahg-g commented Sep 14, 2020

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 14, 2020
@ahg-g
Copy link
Member Author

ahg-g commented Sep 14, 2020

I suggest we move the interface out of pkg/scheduler/framework/v1alpha1 to pkg/scheduler/framework or pkg/scheduler/framework/interface and close the enhancement issue kubernetes/enhancements#624

@Huang-Wei @alculquicondor what do you think?

@alculquicondor
Copy link
Member

I vote for pkg/scheduler/framework

@Huang-Wei
Copy link
Member

pkg/scheduler/framework looks good.

@ahg-g
Copy link
Member Author

ahg-g commented Sep 14, 2020

do you also agree that we should just graduate kubernetes/enhancements#624 and consider it implemented?

@Huang-Wei
Copy link
Member

do you also agree that we should just graduate kubernetes/enhancements#624 and consider it implemented?

Agree. As (1) we're not maintaining a multi-versioned scheduler framework, (2) the in-tree scheduler has totally migrated to plugin-based execution path since 1.18, and (3) scheduler-plugins has provided a number of data points proving the maturity and the scheduler framework design.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants