implement EnqueueExtensions interface in nodeaffinity

This commit is contained in:
tanjing2020 2021-03-09 17:54:59 +08:00
parent 40a411a61a
commit cd6bf47a19

View File

@ -39,6 +39,7 @@ type NodeAffinity struct {
var _ framework.FilterPlugin = &NodeAffinity{}
var _ framework.ScorePlugin = &NodeAffinity{}
var _ framework.EnqueueExtensions = &NodeAffinity{}
const (
// Name is the name of the plugin used in the plugin registry and configurations.
@ -72,6 +73,14 @@ func (s *preFilterState) Clone() framework.StateData {
return s
}
// EventsToRegister returns the possible events that may make a Pod
// failed by this plugin schedulable.
func (pl *NodeAffinity) EventsToRegister() []framework.ClusterEvent {
return []framework.ClusterEvent{
{Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeLabel},
}
}
// PreFilter builds and writes cycle state used by Filter.
func (pl *NodeAffinity) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) *framework.Status {
state := getPodRequiredNodeSelectorAndAffinity(pod)