Documentation ¶
Index ¶
- Constants
- func New(_ context.Context, plArgs runtime.Object, h framework.Handle, ...) (framework.Plugin, error)
- type PodTopologySpread
- func (pl *PodTopologySpread) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, ...) *framework.Status
- func (pl *PodTopologySpread) EventsToRegister(_ context.Context) ([]framework.ClusterEventWithHint, error)
- func (pl *PodTopologySpread) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, ...) *framework.Status
- func (pl *PodTopologySpread) Name() string
- func (pl *PodTopologySpread) NormalizeScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, ...) *framework.Status
- func (pl *PodTopologySpread) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status)
- func (pl *PodTopologySpread) PreFilterExtensions() framework.PreFilterExtensions
- func (pl *PodTopologySpread) PreScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, ...) *framework.Status
- func (pl *PodTopologySpread) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, ...) *framework.Status
- func (pl *PodTopologySpread) Score(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, ...) (int64, *framework.Status)
- func (pl *PodTopologySpread) ScoreExtensions() framework.ScoreExtensions
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.
Variables ¶
This section is empty.
Functions ¶
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 ¶ added in v1.18.0
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 ¶ added in v1.22.0
func (pl *PodTopologySpread) EventsToRegister(_ context.Context) ([]framework.ClusterEventWithHint, error)
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 ¶ added in v1.18.0
func (pl *PodTopologySpread) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *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 []*framework.NodeInfo, ) *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, 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, 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.