-
Notifications
You must be signed in to change notification settings - Fork 41.1k
Description
To make it easier for out-of-tree developers to import the scheduler framework, among other scheduling helpers and constants, we should explore areas that we can remove dependencies on k8s.io/kubernetes
. Places that could be easily removed are, for example, using internal APIs where not required or importing unrelated packages for simple helpers which can be trivially implemented. This will clean up the dependency tree for importing scheduler code externally.
This is related to: Proposal to migrate scheduler code to staging. While the proposal includes all scheduler code, we are only focusing on scheduler framework code. However identifying anywhere in the scheduler code that these dependencies can be cleaned up will be helpful as well.
This will probably be an ongoing cleanup effort, and breaking the work into smaller PRs may actually help with review and preventing code breaking in the process.
/kind cleanup
/sig scheduling
PRs opened so far:
- Scheduler: remove pkg/apis/core/field_constants.go #90105
pkg/apis/core
@xiaoanyunfei- moving the default scheduler name and references to the external api
Scheduler: remove direct import to /pkg/api/core/v1/helper Part 1 #90006pkg/api/core/v1/helper
@gavinfish (part 1)- copies
GetPersistentVolumeClaimClass
, which is used in several other areas around pkg/volume - replaced by Move GetPersistentVolumeClaimClass to component-helpers #98433
- copies
- Scheduler: remove dependency on pkg/apis/core/v1/helper #91782 Overview issue of
pkg/api/core/v1/helper
@ingvagabund Scheduler:remove direct dependency for pkg/api/testing #90041pkg/api/testing
@tanjunchen- Moving a dependency on pkg/api/v1/pod and switching to component-helper #90039
pkg/scheduler/util
pkg/api/v1/pod
@yuzhiquan 🔹- move
GetPodPriority
to scheduler utils scheduler: remove import pkg/api/v1/pod.GetPodPriority #90703pkg/api/v1/pod
@yiyang5055 🔹
- move
- Scheduler:remove direct dependency for k8s.io/kubernetes/pkg/controller/volume/scheduling/metrics #90046
pkg/controller/volume/scheduling/metrics
@tanjunchen- copies metrics registration and definitions around volume binding
- Scheduler: remove direct import to /pkg/features #90111
pkg/features
@gavinfish 🔹- held on How to deal with feature gates for staging components #90136 discussion on feature gating for staging components
scheduler: remove direct import to pkg/master/ports #90000pkg/master/ports
@SataQiuScheduler:remove direct dependency for k8s.io/kubernetes/pkg/util/node and remove // TODO: prefer stable labels for zone in v1.18 #90040pkg/util/node
@tanjunchen 🔹- copies Node util
GetZoneKey
, which should be moved to external and imported by both - replaced by Scheduler: remove direct dependency for k8s.io/kubernetes/pkg/util/node #97818
- copies Node util
- Scheduler: remove direct import to /pkg/util/parsers #90008
pkg/util/parsers
@gavinfish- removes
DefaultImageTag
(":latest") const only used by us and kubelet
- removes
- Scheduler: remove direct import to /pkg/volume/util #90007
pkg/volume/util
@gavinfish- still have dependency on VolumeBinder
🔹 = Adds code to pkg/scheduler/util
, which should be externalized
Metadata
Metadata
Assignees
Labels
Type
Projects
Status