kubernetesk8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread Index | Files

package podtopologyspread

import "k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"

Index

Constants

const (
	// ErrReasonConstraintsNotMatch is used for PodTopologySpread filter error.
	ErrReasonConstraintsNotMatch = "node(s) didn't match pod topology spread constraints"
	// ErrReasonNodeLabelNotMatch is used when the node doesn't hold the required label.
	ErrReasonNodeLabelNotMatch = ErrReasonConstraintsNotMatch + " (missing required label)"
)
const Name = names.PodTopologySpread

Name is the name of the plugin used in the plugin registry and configurations.

Functions

func New

New initializes a new plugin and returns it.

Types

type PodTopologySpread

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

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

func (*PodTopologySpread) AddPod

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

AddPod from pre-computed data in cycleState.

func (*PodTopologySpread) EventsToRegister

EventsToRegister returns the possible events that may make a Pod failed by this plugin schedulable.

func (*PodTopologySpread) Filter

func (pl *PodTopologySpread) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *framework.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

PreFilter invoked at the prefilter extension point.

func (*PodTopologySpread) PreFilterExtensions

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

PreFilterExtensions returns prefilter extensions, pod add and remove.

func (*PodTopologySpread) PreScore

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

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

func (*PodTopologySpread) RemovePod

func (pl *PodTopologySpread) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podInfoToRemove *framework.PodInfo, nodeInfo *framework.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, nodeInfo *framework.NodeInfo) (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.

Source Files

common.go filtering.go plugin.go scoring.go

Version
v1.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
26 packages
Last checked
5 hours ago

Tools for package owners.