Rename DefaultPodTopologySpread plugin #91994
This commit is contained in:
@@ -11,7 +11,6 @@ go_library(
|
||||
deps = [
|
||||
"//pkg/scheduler/apis/config:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/defaultbinder:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/defaultpreemption:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/imagelocality:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library",
|
||||
@@ -25,6 +24,7 @@ go_library(
|
||||
"//pkg/scheduler/framework/plugins/nodevolumelimits:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/queuesort:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/selectorspread:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/serviceaffinity:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/tainttoleration:go_default_library",
|
||||
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
|
||||
@@ -48,7 +48,6 @@ filegroup(
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//pkg/scheduler/framework/plugins/defaultbinder:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/defaultpreemption:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/examples:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/helper:all-srcs",
|
||||
@@ -64,6 +63,7 @@ filegroup(
|
||||
"//pkg/scheduler/framework/plugins/nodevolumelimits:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/podtopologyspread:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/queuesort:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/selectorspread:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/serviceaffinity:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/tainttoleration:all-srcs",
|
||||
"//pkg/scheduler/framework/plugins/volumebinding:all-srcs",
|
||||
|
@@ -21,7 +21,6 @@ import (
|
||||
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/imagelocality"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity"
|
||||
@@ -33,6 +32,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeunschedulable"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/selectorspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/serviceaffinity"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
|
||||
@@ -345,8 +345,8 @@ func NewLegacyRegistry() *LegacyRegistry {
|
||||
// Register Priorities.
|
||||
registry.registerPriorityConfigProducer(SelectorSpreadPriority,
|
||||
func(args ConfigProducerArgs) (plugins config.Plugins, pluginConfig []config.PluginConfig) {
|
||||
plugins.Score = appendToPluginSet(plugins.Score, defaultpodtopologyspread.Name, &args.Weight)
|
||||
plugins.PreScore = appendToPluginSet(plugins.PreScore, defaultpodtopologyspread.Name, nil)
|
||||
plugins.Score = appendToPluginSet(plugins.Score, selectorspread.Name, &args.Weight)
|
||||
plugins.PreScore = appendToPluginSet(plugins.PreScore, selectorspread.Name, nil)
|
||||
return
|
||||
})
|
||||
registry.registerPriorityConfigProducer(TaintTolerationPriority,
|
||||
|
@@ -735,8 +735,8 @@ func BenchmarkTestPodTopologySpreadScore(b *testing.B) {
|
||||
}
|
||||
|
||||
// The following test allows to compare PodTopologySpread.Score with
|
||||
// DefaultPodTopologySpread.Score by using a similar rule.
|
||||
// See pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread_perf_test.go
|
||||
// SelectorSpread.Score by using a similar rule.
|
||||
// See pkg/scheduler/framework/plugins/selectorspread/selector_spread_perf_test.go
|
||||
// for the equivalent test.
|
||||
|
||||
var (
|
||||
|
@@ -18,7 +18,6 @@ package plugins
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpreemption"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/imagelocality"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
|
||||
@@ -32,6 +31,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/selectorspread"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/serviceaffinity"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
|
||||
@@ -45,7 +45,7 @@ import (
|
||||
// through the WithFrameworkOutOfTreeRegistry option.
|
||||
func NewInTreeRegistry() runtime.Registry {
|
||||
return runtime.Registry{
|
||||
defaultpodtopologyspread.Name: defaultpodtopologyspread.New,
|
||||
selectorspread.Name: selectorspread.New,
|
||||
imagelocality.Name: imagelocality.New,
|
||||
tainttoleration.Name: tainttoleration.New,
|
||||
nodename.Name: nodename.New,
|
||||
|
@@ -2,8 +2,8 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["default_pod_topology_spread.go"],
|
||||
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread",
|
||||
srcs = ["selector_spread.go"],
|
||||
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/selectorspread",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//pkg/scheduler/framework/plugins/helper:go_default_library",
|
||||
@@ -18,8 +18,8 @@ go_library(
|
||||
go_test(
|
||||
name = "go_default_test",
|
||||
srcs = [
|
||||
"default_pod_topology_spread_perf_test.go",
|
||||
"default_pod_topology_spread_test.go",
|
||||
"selector_spread_perf_test.go",
|
||||
"selector_spread_test.go",
|
||||
],
|
||||
embed = [":go_default_library"],
|
||||
deps = [
|
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package defaultpodtopologyspread
|
||||
package selectorspread
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -28,18 +28,18 @@ import (
|
||||
utilnode "k8s.io/kubernetes/pkg/util/node"
|
||||
)
|
||||
|
||||
// DefaultPodTopologySpread is a plugin that calculates selector spread priority.
|
||||
type DefaultPodTopologySpread struct {
|
||||
// SelectorSpread is a plugin that calculates selector spread priority.
|
||||
type SelectorSpread struct {
|
||||
handle framework.FrameworkHandle
|
||||
}
|
||||
|
||||
var _ framework.PreScorePlugin = &DefaultPodTopologySpread{}
|
||||
var _ framework.ScorePlugin = &DefaultPodTopologySpread{}
|
||||
var _ framework.PreScorePlugin = &SelectorSpread{}
|
||||
var _ framework.ScorePlugin = &SelectorSpread{}
|
||||
|
||||
const (
|
||||
// Name is the name of the plugin used in the plugin registry and configurations.
|
||||
Name = "DefaultPodTopologySpread"
|
||||
// preScoreStateKey is the key in CycleState to DefaultPodTopologySpread pre-computed data for Scoring.
|
||||
Name = "SelectorSpread"
|
||||
// preScoreStateKey is the key in CycleState to SelectorSpread pre-computed data for Scoring.
|
||||
preScoreStateKey = "PreScore" + Name
|
||||
|
||||
// When zone information is present, give 2/3 of the weighting to zone spreading, 1/3 to node spreading
|
||||
@@ -48,7 +48,7 @@ const (
|
||||
)
|
||||
|
||||
// Name returns name of the plugin. It is used in logs, etc.
|
||||
func (pl *DefaultPodTopologySpread) Name() string {
|
||||
func (pl *SelectorSpread) Name() string {
|
||||
return Name
|
||||
}
|
||||
|
||||
@@ -63,18 +63,18 @@ func (s *preScoreState) Clone() framework.StateData {
|
||||
return s
|
||||
}
|
||||
|
||||
// skipDefaultPodTopologySpread returns true if the pod's TopologySpreadConstraints are specified.
|
||||
// skipSelectorSpread returns true if the pod's TopologySpreadConstraints are specified.
|
||||
// Note that this doesn't take into account default constraints defined for
|
||||
// the PodTopologySpread plugin.
|
||||
func skipDefaultPodTopologySpread(pod *v1.Pod) bool {
|
||||
func skipSelectorSpread(pod *v1.Pod) bool {
|
||||
return len(pod.Spec.TopologySpreadConstraints) != 0
|
||||
}
|
||||
|
||||
// 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 (pl *DefaultPodTopologySpread) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
||||
if skipDefaultPodTopologySpread(pod) {
|
||||
func (pl *SelectorSpread) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
|
||||
if skipSelectorSpread(pod) {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
@@ -102,8 +102,8 @@ func (pl *DefaultPodTopologySpread) Score(ctx context.Context, state *framework.
|
||||
// based on the number of existing matching pods on the node
|
||||
// where zone information is included on the nodes, it favors nodes
|
||||
// in zones with fewer existing matching pods.
|
||||
func (pl *DefaultPodTopologySpread) NormalizeScore(ctx context.Context, state *framework.CycleState, pod *v1.Pod, scores framework.NodeScoreList) *framework.Status {
|
||||
if skipDefaultPodTopologySpread(pod) {
|
||||
func (pl *SelectorSpread) NormalizeScore(ctx context.Context, state *framework.CycleState, pod *v1.Pod, scores framework.NodeScoreList) *framework.Status {
|
||||
if skipSelectorSpread(pod) {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -166,13 +166,13 @@ func (pl *DefaultPodTopologySpread) NormalizeScore(ctx context.Context, state *f
|
||||
}
|
||||
|
||||
// ScoreExtensions of the Score plugin.
|
||||
func (pl *DefaultPodTopologySpread) ScoreExtensions() framework.ScoreExtensions {
|
||||
func (pl *SelectorSpread) ScoreExtensions() framework.ScoreExtensions {
|
||||
return pl
|
||||
}
|
||||
|
||||
// PreScore builds and writes cycle state used by Score and NormalizeScore.
|
||||
func (pl *DefaultPodTopologySpread) PreScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodes []*v1.Node) *framework.Status {
|
||||
if skipDefaultPodTopologySpread(pod) {
|
||||
func (pl *SelectorSpread) PreScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodes []*v1.Node) *framework.Status {
|
||||
if skipSelectorSpread(pod) {
|
||||
return nil
|
||||
}
|
||||
var selector labels.Selector
|
||||
@@ -193,7 +193,7 @@ func (pl *DefaultPodTopologySpread) PreScore(ctx context.Context, cycleState *fr
|
||||
|
||||
// New initializes a new plugin and returns it.
|
||||
func New(_ runtime.Object, handle framework.FrameworkHandle) (framework.Plugin, error) {
|
||||
return &DefaultPodTopologySpread{
|
||||
return &SelectorSpread{
|
||||
handle: handle,
|
||||
}, nil
|
||||
}
|
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package defaultpodtopologyspread
|
||||
package selectorspread
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -69,7 +69,7 @@ func BenchmarkTestSelectorSpreadPriority(b *testing.B) {
|
||||
}
|
||||
}
|
||||
fh, _ := runtime.NewFramework(nil, nil, nil, runtime.WithSnapshotSharedLister(snapshot), runtime.WithInformerFactory(informerFactory))
|
||||
plugin := &DefaultPodTopologySpread{handle: fh}
|
||||
plugin := &SelectorSpread{handle: fh}
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package defaultpodtopologyspread
|
||||
package selectorspread
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -43,7 +43,7 @@ func controllerRef(kind, name, uid string) []metav1.OwnerReference {
|
||||
//}
|
||||
}
|
||||
|
||||
func TestDefaultPodTopologySpreadScore(t *testing.T) {
|
||||
func TestSelectorSpreadScore(t *testing.T) {
|
||||
labels1 := map[string]string{
|
||||
"foo": "bar",
|
||||
"baz": "blah",
|
||||
@@ -383,7 +383,7 @@ func TestDefaultPodTopologySpreadScore(t *testing.T) {
|
||||
|
||||
state := framework.NewCycleState()
|
||||
|
||||
plugin := &DefaultPodTopologySpread{
|
||||
plugin := &SelectorSpread{
|
||||
handle: fh,
|
||||
}
|
||||
|
||||
@@ -635,7 +635,7 @@ func TestZoneSelectorSpreadPriority(t *testing.T) {
|
||||
t.Errorf("error creating new framework handle: %+v", err)
|
||||
}
|
||||
|
||||
plugin := &DefaultPodTopologySpread{
|
||||
plugin := &SelectorSpread{
|
||||
handle: fh,
|
||||
}
|
||||
|
Reference in New Issue
Block a user