mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #95085 from arghya88/wrap-error-taint-toleration-plugin
Wrap errors in taint-toleration, service-affinity plugin
This commit is contained in:
commit
dc98ed96f6
@ -133,7 +133,7 @@ func (pl *ServiceAffinity) PreFilter(ctx context.Context, cycleState *framework.
|
|||||||
|
|
||||||
s, err := pl.createPreFilterState(pod)
|
s, err := pl.createPreFilterState(pod)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, fmt.Sprintf("could not create preFilterState: %v", err))
|
return framework.AsStatus(fmt.Errorf("could not create preFilterState: %w", err))
|
||||||
}
|
}
|
||||||
cycleState.Write(preFilterStateKey, s)
|
cycleState.Write(preFilterStateKey, s)
|
||||||
return nil
|
return nil
|
||||||
@ -151,7 +151,7 @@ func (pl *ServiceAffinity) PreFilterExtensions() framework.PreFilterExtensions {
|
|||||||
func (pl *ServiceAffinity) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
func (pl *ServiceAffinity) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
||||||
s, err := getPreFilterState(cycleState)
|
s, err := getPreFilterState(cycleState)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, err.Error())
|
return framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If addedPod is in the same namespace as the pod, update the list
|
// If addedPod is in the same namespace as the pod, update the list
|
||||||
@ -172,7 +172,7 @@ func (pl *ServiceAffinity) AddPod(ctx context.Context, cycleState *framework.Cyc
|
|||||||
func (pl *ServiceAffinity) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
func (pl *ServiceAffinity) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
||||||
s, err := getPreFilterState(cycleState)
|
s, err := getPreFilterState(cycleState)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, err.Error())
|
return framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(s.matchingPodList) == 0 ||
|
if len(s.matchingPodList) == 0 ||
|
||||||
@ -239,12 +239,12 @@ func (pl *ServiceAffinity) Filter(ctx context.Context, cycleState *framework.Cyc
|
|||||||
|
|
||||||
node := nodeInfo.Node()
|
node := nodeInfo.Node()
|
||||||
if node == nil {
|
if node == nil {
|
||||||
return framework.NewStatus(framework.Error, "node not found")
|
return framework.AsStatus(fmt.Errorf("node not found"))
|
||||||
}
|
}
|
||||||
|
|
||||||
s, err := getPreFilterState(cycleState)
|
s, err := getPreFilterState(cycleState)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, err.Error())
|
return framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
pods, services := s.matchingPodList, s.matchingPodServices
|
pods, services := s.matchingPodList, s.matchingPodServices
|
||||||
@ -257,7 +257,7 @@ func (pl *ServiceAffinity) Filter(ctx context.Context, cycleState *framework.Cyc
|
|||||||
if len(filteredPods) > 0 {
|
if len(filteredPods) > 0 {
|
||||||
nodeWithAffinityLabels, err := pl.sharedLister.NodeInfos().Get(filteredPods[0].Spec.NodeName)
|
nodeWithAffinityLabels, err := pl.sharedLister.NodeInfos().Get(filteredPods[0].Spec.NodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, "node not found")
|
return framework.AsStatus(fmt.Errorf("node not found"))
|
||||||
}
|
}
|
||||||
addUnsetLabelsToMap(affinityLabels, pl.args.AffinityLabels, labels.Set(nodeWithAffinityLabels.Node().Labels))
|
addUnsetLabelsToMap(affinityLabels, pl.args.AffinityLabels, labels.Set(nodeWithAffinityLabels.Node().Labels))
|
||||||
}
|
}
|
||||||
@ -275,12 +275,12 @@ func (pl *ServiceAffinity) Filter(ctx context.Context, cycleState *framework.Cyc
|
|||||||
func (pl *ServiceAffinity) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
func (pl *ServiceAffinity) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
||||||
nodeInfo, err := pl.sharedLister.NodeInfos().Get(nodeName)
|
nodeInfo, err := pl.sharedLister.NodeInfos().Get(nodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v", nodeName, err))
|
return 0, framework.AsStatus(fmt.Errorf("getting node %q from Snapshot: %w", nodeName, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
node := nodeInfo.Node()
|
node := nodeInfo.Node()
|
||||||
if node == nil {
|
if node == nil {
|
||||||
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("node not found"))
|
return 0, framework.AsStatus(fmt.Errorf("node not found"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pods matched namespace,selector on current node.
|
// Pods matched namespace,selector on current node.
|
||||||
@ -313,7 +313,7 @@ func (pl *ServiceAffinity) NormalizeScore(ctx context.Context, _ *framework.Cycl
|
|||||||
reduceResult := make([]float64, len(scores))
|
reduceResult := make([]float64, len(scores))
|
||||||
for _, label := range pl.args.AntiAffinityLabelsPreference {
|
for _, label := range pl.args.AntiAffinityLabelsPreference {
|
||||||
if err := pl.updateNodeScoresForLabel(pl.sharedLister, scores, reduceResult, label); err != nil {
|
if err := pl.updateNodeScoresForLabel(pl.sharedLister, scores, reduceResult, label); err != nil {
|
||||||
return framework.NewStatus(framework.Error, err.Error())
|
return framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ package serviceaffinity
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"sort"
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
@ -615,7 +616,7 @@ func TestPreFilterDisabled(t *testing.T) {
|
|||||||
}
|
}
|
||||||
cycleState := framework.NewCycleState()
|
cycleState := framework.NewCycleState()
|
||||||
gotStatus := p.Filter(context.Background(), cycleState, pod, nodeInfo)
|
gotStatus := p.Filter(context.Background(), cycleState, pod, nodeInfo)
|
||||||
wantStatus := framework.NewStatus(framework.Error, `error reading "PreFilterServiceAffinity" from cycleState: not found`)
|
wantStatus := framework.AsStatus(fmt.Errorf(`error reading "PreFilterServiceAffinity" from cycleState: not found`))
|
||||||
if !reflect.DeepEqual(gotStatus, wantStatus) {
|
if !reflect.DeepEqual(gotStatus, wantStatus) {
|
||||||
t.Errorf("status does not match: %v, want: %v", gotStatus, wantStatus)
|
t.Errorf("status does not match: %v, want: %v", gotStatus, wantStatus)
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ func (pl *TaintToleration) Name() string {
|
|||||||
// Filter invoked at the filter extension point.
|
// Filter invoked at the filter extension point.
|
||||||
func (pl *TaintToleration) Filter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
func (pl *TaintToleration) Filter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
|
||||||
if nodeInfo == nil || nodeInfo.Node() == nil {
|
if nodeInfo == nil || nodeInfo.Node() == nil {
|
||||||
return framework.NewStatus(framework.Error, "invalid nodeInfo")
|
return framework.AsStatus(fmt.Errorf("invalid nodeInfo"))
|
||||||
}
|
}
|
||||||
|
|
||||||
filterPredicate := func(t *v1.Taint) bool {
|
filterPredicate := func(t *v1.Taint) bool {
|
||||||
@ -138,13 +138,13 @@ func countIntolerableTaintsPreferNoSchedule(taints []v1.Taint, tolerations []v1.
|
|||||||
func (pl *TaintToleration) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
func (pl *TaintToleration) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
||||||
nodeInfo, err := pl.handle.SnapshotSharedLister().NodeInfos().Get(nodeName)
|
nodeInfo, err := pl.handle.SnapshotSharedLister().NodeInfos().Get(nodeName)
|
||||||
if err != nil || nodeInfo.Node() == nil {
|
if err != nil || nodeInfo.Node() == nil {
|
||||||
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v", nodeName, err))
|
return 0, framework.AsStatus(fmt.Errorf("getting node %q from Snapshot: %w", nodeName, err))
|
||||||
}
|
}
|
||||||
node := nodeInfo.Node()
|
node := nodeInfo.Node()
|
||||||
|
|
||||||
s, err := getPreScoreState(state)
|
s, err := getPreScoreState(state)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, framework.NewStatus(framework.Error, err.Error())
|
return 0, framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
score := int64(countIntolerableTaintsPreferNoSchedule(node.Spec.Taints, s.tolerationsPreferNoSchedule))
|
score := int64(countIntolerableTaintsPreferNoSchedule(node.Spec.Taints, s.tolerationsPreferNoSchedule))
|
||||||
|
Loading…
Reference in New Issue
Block a user