View Source
const (
	// Name is the name of the plugin used in the plugin registry and configurations.
	Name = "SelectorSpread"


This section is empty.


func New

New initializes a new plugin and returns it.


type SelectorSpread

type SelectorSpread struct {
	// contains filtered or unexported fields

SelectorSpread is a plugin that calculates selector spread priority.

func (*SelectorSpread) Name

func (pl *SelectorSpread) Name() string

Name returns name of the plugin. It is used in logs, etc.

func (*SelectorSpread) NormalizeScore

func (pl *SelectorSpread) NormalizeScore(ctx context.Context, state *framework.CycleState, pod *v1.Pod, scores framework.NodeScoreList) *framework.Status

NormalizeScore invoked after scoring all nodes. For this plugin, it calculates the score of each node based on the number of existing matching pods on the node where zone information is included on the nodes, it favors nodes in zones with fewer existing matching pods.

func (*SelectorSpread) PreScore

func (pl *SelectorSpread) PreScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodes []*v1.Node) *framework.Status

PreScore builds and writes cycle state used by Score and NormalizeScore.

func (*SelectorSpread) Score

func (pl *SelectorSpread) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status)

Score invoked at the Score extension point. The "score" returned in this function is the matching number of pods on the `nodeName`, it is normalized later.

func (*SelectorSpread) ScoreExtensions

func (pl *SelectorSpread) ScoreExtensions() framework.ScoreExtensions

ScoreExtensions of the Score plugin.