podtopologyspread

package
v1.18.18-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2021 License: Apache-2.0 Imports: 21 Imported by: 8

Documentation

Index

Constants

View Source
const (
	// ErrReasonConstraintsNotMatch is used for PodTopologySpread filter error.
	ErrReasonConstraintsNotMatch = "node(s) didn't match pod topology spread constraints"
)
View Source
const (
	// Name is the name of the plugin used in the plugin registry and configurations.
	Name = "PodTopologySpread"
)

Variables

This section is empty.

Functions

func New

New initializes a new plugin and returns it.

Types

type Args added in v1.18.0

type Args struct {
	// DefaultConstraints defines topology spread constraints to be applied to
	// pods that don't define any in `pod.spec.topologySpreadConstraints`.
	// `topologySpreadConstraint.labelSelectors` must be empty, as they are
	// deduced the pods' membership to Services, Replication Controllers, Replica
	// Sets or Stateful Sets.
	// Empty by default.
	// +optional
	// +listType=atomic
	DefaultConstraints []v1.TopologySpreadConstraint `json:"defaultConstraints"`
}

Args holds the arguments to configure the plugin.

type PodTopologySpread

type PodTopologySpread struct {
	Args
	// contains filtered or unexported fields
}

PodTopologySpread is a plugin that ensures pod's topologySpreadConstraints is satisfied.

func (*PodTopologySpread) AddPod added in v1.18.0

func (pl *PodTopologySpread) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

AddPod from pre-computed data in cycleState.

func (*PodTopologySpread) BuildArgs added in v1.18.0

func (pl *PodTopologySpread) BuildArgs() interface{}

BuildArgs returns the arguments used to build the plugin.

func (*PodTopologySpread) Filter

func (pl *PodTopologySpread) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

Filter invoked at the filter extension point.

func (*PodTopologySpread) Name

func (pl *PodTopologySpread) Name() string

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

func (*PodTopologySpread) NormalizeScore

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

NormalizeScore invoked after scoring all nodes.

func (*PodTopologySpread) PreFilter added in v1.18.0

func (pl *PodTopologySpread) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) *framework.Status

PreFilter invoked at the prefilter extension point.

func (*PodTopologySpread) PreFilterExtensions added in v1.18.0

func (pl *PodTopologySpread) PreFilterExtensions() framework.PreFilterExtensions

PreFilterExtensions returns prefilter extensions, pod add and remove.

func (*PodTopologySpread) PreScore added in v1.18.0

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

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

func (*PodTopologySpread) RemovePod added in v1.18.0

func (pl *PodTopologySpread) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status

RemovePod from pre-computed data in cycleState.

func (*PodTopologySpread) Score

func (pl *PodTopologySpread) Score(ctx context.Context, cycleState *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 (*PodTopologySpread) ScoreExtensions

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

ScoreExtensions of the Score plugin.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL