interpodaffinity

package
v1.32.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2024 License: Apache-2.0 Imports: 15 Imported by: 11

Documentation

Index

Constants

View Source
const (

	// ErrReasonExistingAntiAffinityRulesNotMatch is used for ExistingPodsAntiAffinityRulesNotMatch predicate error.
	ErrReasonExistingAntiAffinityRulesNotMatch = "node(s) didn't satisfy existing pods anti-affinity rules"
	// ErrReasonAffinityRulesNotMatch is used for PodAffinityRulesNotMatch predicate error.
	ErrReasonAffinityRulesNotMatch = "node(s) didn't match pod affinity rules"
	// ErrReasonAntiAffinityRulesNotMatch is used for PodAntiAffinityRulesNotMatch predicate error.
	ErrReasonAntiAffinityRulesNotMatch = "node(s) didn't match pod anti-affinity rules"
)

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

Variables

This section is empty.

Functions

func GetNamespaceLabelsSnapshot added in v1.21.0

func GetNamespaceLabelsSnapshot(logger klog.Logger, ns string, nsLister listersv1.NamespaceLister) (nsLabels labels.Set)

GetNamespaceLabelsSnapshot returns a snapshot of the labels associated with the namespace.

func New

New initializes a new plugin and returns it.

Types

type InterPodAffinity

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

InterPodAffinity is a plugin that checks inter pod affinity

func (*InterPodAffinity) AddPod added in v1.18.0

func (pl *InterPodAffinity) 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 (*InterPodAffinity) EventsToRegister added in v1.22.0

func (pl *InterPodAffinity) EventsToRegister(_ context.Context) ([]framework.ClusterEventWithHint, error)

EventsToRegister returns the possible events that may make a failed Pod schedulable

func (*InterPodAffinity) Filter

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

Filter invoked at the filter extension point. It checks if a pod can be scheduled on the specified node with pod affinity/anti-affinity configuration.

func (*InterPodAffinity) Name

func (pl *InterPodAffinity) Name() string

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

func (*InterPodAffinity) NormalizeScore

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

NormalizeScore normalizes the score for each filteredNode.

func (*InterPodAffinity) PreFilter added in v1.18.0

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

PreFilter invoked at the prefilter extension point.

func (*InterPodAffinity) PreFilterExtensions added in v1.18.0

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

PreFilterExtensions returns prefilter extensions, pod add and remove.

func (*InterPodAffinity) PreScore added in v1.18.0

func (pl *InterPodAffinity) PreScore(
	pCtx context.Context,
	cycleState *framework.CycleState,
	pod *v1.Pod,
	nodes []*framework.NodeInfo,
) *framework.Status

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

func (*InterPodAffinity) RemovePod added in v1.18.0

func (pl *InterPodAffinity) 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 (*InterPodAffinity) Score

func (pl *InterPodAffinity) 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 sum of weights got from cycleState which have its topologyKey matching with the node's labels. it is normalized later. Note: the returned "score" is positive for pod-affinity, and negative for pod-antiaffinity.

func (*InterPodAffinity) ScoreExtensions

func (pl *InterPodAffinity) 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