Skip to content

Commit

Permalink
implement EnqueueExtensions interface in noderesources
Browse files Browse the repository at this point in the history
  • Loading branch information
Huang-Wei committed Mar 8, 2021
1 parent 14c25ee commit e86a72a
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions pkg/scheduler/framework/plugins/noderesources/fit.go
Expand Up @@ -35,6 +35,7 @@ import (

var _ framework.PreFilterPlugin = &Fit{}
var _ framework.FilterPlugin = &Fit{}
var _ framework.EnqueueExtensions = &Fit{}

const (
// FitName is the name of the plugin used in the plugin registry and configurations.
Expand Down Expand Up @@ -189,6 +190,18 @@ func getPreFilterState(cycleState *framework.CycleState) (*preFilterState, error
return s, nil
}

// EventsToRegister returns the possible events that may make a Pod
// failed by this plugin schedulable.
// NOTE: if in-place-update (KEP 1287) gets implemented, then PodUpdate event
// should be registered for this plugin since a Pod update may free up resources
// that make other Pods schedulable.
func (f *Fit) EventsToRegister() []framework.ClusterEvent {
return []framework.ClusterEvent{
{Resource: framework.Pod, ActionType: framework.Delete},
{Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeAllocatable},
}
}

// Filter invoked at the filter extension point.
// Checks if a node has sufficient resources, such as cpu, memory, gpu, opaque int resources etc to run a pod.
// It returns a list of insufficient resources, if empty, then the node has all the resources requested by the pod.
Expand Down

0 comments on commit e86a72a

Please sign in to comment.