diff --git a/pkg/scheduler/framework/events.go b/pkg/scheduler/framework/events.go index 1fe1b0b972b..28efffeb000 100644 --- a/pkg/scheduler/framework/events.go +++ b/pkg/scheduler/framework/events.go @@ -68,26 +68,26 @@ func PodSchedulingPropertiesChange(newPod *v1.Pod, oldPod *v1.Pod) (events []Clu r = unschedulablePod } - podChangeExtracters := []podChangeExtractor{ + podChangeExtractors := []podChangeExtractor{ extractPodLabelsChange, extractPodScaleDown, extractPodSchedulingGateEliminatedChange, extractPodTolerationChange, } if utilfeature.DefaultFeatureGate.Enabled(features.DynamicResourceAllocation) { - podChangeExtracters = append(podChangeExtracters, extractPodGeneratedResourceClaimChange) + podChangeExtractors = append(podChangeExtractors, extractPodGeneratedResourceClaimChange) } - for _, fn := range podChangeExtracters { - if event := fn(newPod, oldPod); event != none { + for _, fn := range podChangeExtractors { + if event := fn(newPod, oldPod); event != None { events = append(events, ClusterEvent{Resource: r, ActionType: event}) } } if len(events) == 0 { - // When no specific event is found, we use AssignedPodOtherUpdate, + // When no specific event is found, we use the general Update action, // which should only trigger plugins registering a general Pod/Update event. - events = append(events, ClusterEvent{Resource: r, ActionType: updatePodOther}) + events = append(events, ClusterEvent{Resource: r, ActionType: Update}) } return @@ -116,14 +116,14 @@ func extractPodScaleDown(newPod, oldPod *v1.Pod) ActionType { } } - return none + return None } func extractPodLabelsChange(newPod *v1.Pod, oldPod *v1.Pod) ActionType { if isLabelChanged(newPod.GetLabels(), oldPod.GetLabels()) { return UpdatePodLabel } - return none + return None } func extractPodTolerationChange(newPod *v1.Pod, oldPod *v1.Pod) ActionType { @@ -135,7 +135,7 @@ func extractPodTolerationChange(newPod *v1.Pod, oldPod *v1.Pod) ActionType { return UpdatePodToleration } - return none + return None } func extractPodSchedulingGateEliminatedChange(newPod *v1.Pod, oldPod *v1.Pod) ActionType { @@ -144,7 +144,7 @@ func extractPodSchedulingGateEliminatedChange(newPod *v1.Pod, oldPod *v1.Pod) Ac return UpdatePodSchedulingGatesEliminated } - return none + return None } func extractPodGeneratedResourceClaimChange(newPod *v1.Pod, oldPod *v1.Pod) ActionType { @@ -152,7 +152,7 @@ func extractPodGeneratedResourceClaimChange(newPod *v1.Pod, oldPod *v1.Pod) Acti return UpdatePodGeneratedResourceClaim } - return none + return None } // NodeSchedulingPropertiesChange interprets the update of a node and returns corresponding UpdateNodeXYZ event(s). @@ -167,7 +167,7 @@ func NodeSchedulingPropertiesChange(newNode *v1.Node, oldNode *v1.Node) (events } for _, fn := range nodeChangeExtracters { - if event := fn(newNode, oldNode); event != none { + if event := fn(newNode, oldNode); event != None { events = append(events, ClusterEvent{Resource: Node, ActionType: event}) } } @@ -180,14 +180,14 @@ func extractNodeAllocatableChange(newNode *v1.Node, oldNode *v1.Node) ActionType if !equality.Semantic.DeepEqual(oldNode.Status.Allocatable, newNode.Status.Allocatable) { return UpdateNodeAllocatable } - return none + return None } func extractNodeLabelsChange(newNode *v1.Node, oldNode *v1.Node) ActionType { if isLabelChanged(newNode.GetLabels(), oldNode.GetLabels()) { return UpdateNodeLabel } - return none + return None } func isLabelChanged(newLabels map[string]string, oldLabels map[string]string) bool { @@ -198,7 +198,7 @@ func extractNodeTaintsChange(newNode *v1.Node, oldNode *v1.Node) ActionType { if !equality.Semantic.DeepEqual(newNode.Spec.Taints, oldNode.Spec.Taints) { return UpdateNodeTaint } - return none + return None } func extractNodeConditionsChange(newNode *v1.Node, oldNode *v1.Node) ActionType { @@ -212,7 +212,7 @@ func extractNodeConditionsChange(newNode *v1.Node, oldNode *v1.Node) ActionType if !equality.Semantic.DeepEqual(strip(oldNode.Status.Conditions), strip(newNode.Status.Conditions)) { return UpdateNodeCondition } - return none + return None } func extractNodeSpecUnschedulableChange(newNode *v1.Node, oldNode *v1.Node) ActionType { @@ -220,12 +220,12 @@ func extractNodeSpecUnschedulableChange(newNode *v1.Node, oldNode *v1.Node) Acti // TODO: create UpdateNodeSpecUnschedulable ActionType return UpdateNodeTaint } - return none + return None } func extractNodeAnnotationsChange(newNode *v1.Node, oldNode *v1.Node) ActionType { if !equality.Semantic.DeepEqual(oldNode.GetAnnotations(), newNode.GetAnnotations()) { return UpdateNodeAnnotation } - return none + return None } diff --git a/pkg/scheduler/framework/events_test.go b/pkg/scheduler/framework/events_test.go index 9c2232467f1..7d45d33cb2a 100644 --- a/pkg/scheduler/framework/events_test.go +++ b/pkg/scheduler/framework/events_test.go @@ -60,7 +60,7 @@ func TestNodeAllocatableChange(t *testing.T) { t.Run(test.name, func(t *testing.T) { oldNode := &v1.Node{Status: v1.NodeStatus{Allocatable: test.oldAllocatable}} newNode := &v1.Node{Status: v1.NodeStatus{Allocatable: test.newAllocatable}} - changed := extractNodeAllocatableChange(newNode, oldNode) != none + changed := extractNodeAllocatableChange(newNode, oldNode) != None if changed != test.changed { t.Errorf("nodeAllocatableChanged should be %t, got %t", test.changed, changed) } @@ -93,7 +93,7 @@ func TestNodeLabelsChange(t *testing.T) { t.Run(test.name, func(t *testing.T) { oldNode := &v1.Node{ObjectMeta: metav1.ObjectMeta{Labels: test.oldLabels}} newNode := &v1.Node{ObjectMeta: metav1.ObjectMeta{Labels: test.newLabels}} - changed := extractNodeLabelsChange(newNode, oldNode) != none + changed := extractNodeLabelsChange(newNode, oldNode) != None if changed != test.changed { t.Errorf("Test case %q failed: should be %t, got %t", test.name, test.changed, changed) } @@ -125,7 +125,7 @@ func TestNodeTaintsChange(t *testing.T) { t.Run(test.name, func(t *testing.T) { oldNode := &v1.Node{Spec: v1.NodeSpec{Taints: test.oldTaints}} newNode := &v1.Node{Spec: v1.NodeSpec{Taints: test.newTaints}} - changed := extractNodeTaintsChange(newNode, oldNode) != none + changed := extractNodeTaintsChange(newNode, oldNode) != None if changed != test.changed { t.Errorf("Test case %q failed: should be %t, not %t", test.name, test.changed, changed) } @@ -180,7 +180,7 @@ func TestNodeConditionsChange(t *testing.T) { t.Run(test.name, func(t *testing.T) { oldNode := &v1.Node{Status: v1.NodeStatus{Conditions: test.oldConditions}} newNode := &v1.Node{Status: v1.NodeStatus{Conditions: test.newConditions}} - changed := extractNodeConditionsChange(newNode, oldNode) != none + changed := extractNodeConditionsChange(newNode, oldNode) != None if changed != test.changed { t.Errorf("Test case %q failed: should be %t, got %t", test.name, test.changed, changed) } @@ -377,7 +377,7 @@ func Test_podSchedulingPropertiesChange(t *testing.T) { name: "pod's resource request is scaled up", oldPod: podWithSmallRequest, newPod: podWithBigRequest, - want: []ClusterEvent{{Resource: unschedulablePod, ActionType: updatePodOther}}, + want: []ClusterEvent{{Resource: unschedulablePod, ActionType: Update}}, }, { name: "both pod's resource request and label are updated", @@ -392,7 +392,7 @@ func Test_podSchedulingPropertiesChange(t *testing.T) { name: "untracked properties of pod is updated", newPod: st.MakePod().Annotation("foo", "bar").Obj(), oldPod: st.MakePod().Annotation("foo", "bar2").Obj(), - want: []ClusterEvent{{Resource: unschedulablePod, ActionType: updatePodOther}}, + want: []ClusterEvent{{Resource: unschedulablePod, ActionType: Update}}, }, { name: "scheduling gate is eliminated", @@ -404,7 +404,7 @@ func Test_podSchedulingPropertiesChange(t *testing.T) { name: "scheduling gate is removed, but not completely eliminated", newPod: st.MakePod().SchedulingGates([]string{"foo"}).Obj(), oldPod: st.MakePod().SchedulingGates([]string{"foo", "bar"}).Obj(), - want: []ClusterEvent{{Resource: unschedulablePod, ActionType: updatePodOther}}, + want: []ClusterEvent{{Resource: unschedulablePod, ActionType: Update}}, }, { name: "pod's tolerations are updated", @@ -417,7 +417,7 @@ func Test_podSchedulingPropertiesChange(t *testing.T) { draDisabled: true, newPod: st.MakePod().ResourceClaimStatuses(claimStatusA).Obj(), oldPod: st.MakePod().Obj(), - want: []ClusterEvent{{Resource: unschedulablePod, ActionType: updatePodOther}}, + want: []ClusterEvent{{Resource: unschedulablePod, ActionType: Update}}, }, { name: "pod claim statuses change, feature enabled", diff --git a/pkg/scheduler/framework/types.go b/pkg/scheduler/framework/types.go index d79859b3240..cd034bcb84e 100644 --- a/pkg/scheduler/framework/types.go +++ b/pkg/scheduler/framework/types.go @@ -82,16 +82,13 @@ const ( // Depends on the DynamicResourceAllocation feature gate. UpdatePodGeneratedResourceClaim - // updatePodOther is a update for pod's other fields. - // It's used only for the internal event handling, and thus unexported. - updatePodOther - All ActionType = 1<