diff --git a/pkg/scheduler/framework/interface.go b/pkg/scheduler/framework/interface.go index dedc053fab5..467ba394db0 100644 --- a/pkg/scheduler/framework/interface.go +++ b/pkg/scheduler/framework/interface.go @@ -471,41 +471,12 @@ type Framework interface { // cycle is aborted. RunPreFilterPlugins(ctx context.Context, state *CycleState, pod *v1.Pod) *Status - // RunFilterPlugins runs the set of configured Filter plugins for pod on - // the given node. Note that for the node being evaluated, the passed nodeInfo - // reference could be different from the one in NodeInfoSnapshot map (e.g., pods - // considered to be running on the node could be different). For example, during - // preemption, we may pass a copy of the original nodeInfo object that has some pods - // removed from it to evaluate the possibility of preempting them to - // schedule the target pod. - RunFilterPlugins(ctx context.Context, state *CycleState, pod *v1.Pod, nodeInfo *NodeInfo) PluginToStatus - // RunPostFilterPlugins runs the set of configured PostFilter plugins. // PostFilter plugins can either be informational, in which case should be configured // to execute first and return Unschedulable status, or ones that try to change the // cluster state to make the pod potentially schedulable in a future scheduling cycle. RunPostFilterPlugins(ctx context.Context, state *CycleState, pod *v1.Pod, filteredNodeStatusMap NodeToStatusMap) (*PostFilterResult, *Status) - // RunPreFilterExtensionAddPod calls the AddPod interface for the set of configured - // PreFilter plugins. It returns directly if any of the plugins return any - // status other than Success. - RunPreFilterExtensionAddPod(ctx context.Context, state *CycleState, podToSchedule *v1.Pod, podInfoToAdd *PodInfo, nodeInfo *NodeInfo) *Status - - // RunPreFilterExtensionRemovePod calls the RemovePod interface for the set of configured - // PreFilter plugins. It returns directly if any of the plugins return any - // status other than Success. - RunPreFilterExtensionRemovePod(ctx context.Context, state *CycleState, podToSchedule *v1.Pod, podInfoToRemove *PodInfo, nodeInfo *NodeInfo) *Status - - // RunPreScorePlugins runs the set of configured PreScore plugins. If any - // of these plugins returns any status other than "Success", the given pod is rejected. - RunPreScorePlugins(ctx context.Context, state *CycleState, pod *v1.Pod, nodes []*v1.Node) *Status - - // RunScorePlugins runs the set of configured Score plugins. It returns a map that - // stores for each Score plugin name the corresponding NodeScoreList(s). - // It also returns *Status, which is set to non-success if any of the plugins returns - // a non-success status. - RunScorePlugins(ctx context.Context, state *CycleState, pod *v1.Pod, nodes []*v1.Node) (PluginToNodeScores, *Status) - // RunPreBindPlugins runs the set of configured PreBind plugins. It returns // *Status and its code is set to non-success if any of the plugins returns // anything but Success. If the Status code is "Unschedulable", it is @@ -629,14 +600,28 @@ type PodNominator interface { // This is used by preemption PostFilter plugins when evaluating the feasibility of // scheduling the pod on nodes when certain running pods get evicted. type PluginsRunner interface { - // RunPreScorePlugins runs the set of configured PreScore plugins for pod on the given nodes + // RunPreScorePlugins runs the set of configured PreScore plugins. If any + // of these plugins returns any status other than "Success", the given pod is rejected. RunPreScorePlugins(context.Context, *CycleState, *v1.Pod, []*v1.Node) *Status - // RunScorePlugins runs the set of configured Score plugins for pod on the given nodes + // RunScorePlugins runs the set of configured Score plugins. It returns a map that + // stores for each Score plugin name the corresponding NodeScoreList(s). + // It also returns *Status, which is set to non-success if any of the plugins returns + // a non-success status. RunScorePlugins(context.Context, *CycleState, *v1.Pod, []*v1.Node) (PluginToNodeScores, *Status) - // RunFilterPlugins runs the set of configured filter plugins for pod on the given node. + // RunFilterPlugins runs the set of configured Filter plugins for pod on + // the given node. Note that for the node being evaluated, the passed nodeInfo + // reference could be different from the one in NodeInfoSnapshot map (e.g., pods + // considered to be running on the node could be different). For example, during + // preemption, we may pass a copy of the original nodeInfo object that has some pods + // removed from it to evaluate the possibility of preempting them to + // schedule the target pod. RunFilterPlugins(context.Context, *CycleState, *v1.Pod, *NodeInfo) PluginToStatus - // RunPreFilterExtensionAddPod calls the AddPod interface for the set of configured PreFilter plugins. + // RunPreFilterExtensionAddPod calls the AddPod interface for the set of configured + // PreFilter plugins. It returns directly if any of the plugins return any + // status other than Success. RunPreFilterExtensionAddPod(ctx context.Context, state *CycleState, podToSchedule *v1.Pod, podInfoToAdd *PodInfo, nodeInfo *NodeInfo) *Status - // RunPreFilterExtensionRemovePod calls the RemovePod interface for the set of configured PreFilter plugins. + // RunPreFilterExtensionRemovePod calls the RemovePod interface for the set of configured + // PreFilter plugins. It returns directly if any of the plugins return any + // status other than Success. RunPreFilterExtensionRemovePod(ctx context.Context, state *CycleState, podToSchedule *v1.Pod, podInfoToRemove *PodInfo, nodeInfo *NodeInfo) *Status }