@@ -31,6 +31,7 @@ import (
31
31
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodepreferavoidpods"
32
32
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources"
33
33
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
34
+ "k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
34
35
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
35
36
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
36
37
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
@@ -58,6 +59,7 @@ func NewDefaultRegistry(args *RegistryArgs) framework.Registry {
58
59
nodeports .Name : nodeports .New ,
59
60
nodepreferavoidpods .Name : nodepreferavoidpods .New ,
60
61
nodeaffinity .Name : nodeaffinity .New ,
62
+ podtopologyspread .Name : podtopologyspread .New ,
61
63
volumebinding .Name : func (_ * runtime.Unknown , _ framework.FrameworkHandle ) (framework.Plugin , error ) {
62
64
return volumebinding .NewFromVolumeBinder (args .VolumeBinder ), nil
63
65
},
@@ -94,6 +96,7 @@ func NewDefaultConfigProducerRegistry() *ConfigProducerRegistry {
94
96
PredicateToConfigProducer : make (map [string ]ConfigProducer ),
95
97
PriorityToConfigProducer : make (map [string ]ConfigProducer ),
96
98
}
99
+ // Register Predicates.
97
100
registry .RegisterPredicate (predicates .GeneralPred ,
98
101
func (_ ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
99
102
// GeneralPredicate is a combination of predicates.
@@ -153,25 +156,27 @@ func NewDefaultConfigProducerRegistry() *ConfigProducerRegistry {
153
156
plugins .Filter = appendToPluginSet (plugins .Filter , interpodaffinity .Name , nil )
154
157
return
155
158
})
156
-
159
+ registry .RegisterPredicate (predicates .EvenPodsSpreadPred ,
160
+ func (_ ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
161
+ plugins .Filter = appendToPluginSet (plugins .Filter , podtopologyspread .Name , nil )
162
+ return
163
+ })
164
+ // Register Priorities.
157
165
registry .RegisterPriority (priorities .TaintTolerationPriority ,
158
166
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
159
167
plugins .Score = appendToPluginSet (plugins .Score , tainttoleration .Name , & args .Weight )
160
168
return
161
169
})
162
-
163
170
registry .RegisterPriority (priorities .NodeAffinityPriority ,
164
171
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
165
172
plugins .Score = appendToPluginSet (plugins .Score , nodeaffinity .Name , & args .Weight )
166
173
return
167
174
})
168
-
169
175
registry .RegisterPriority (priorities .ImageLocalityPriority ,
170
176
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
171
177
plugins .Score = appendToPluginSet (plugins .Score , imagelocality .Name , & args .Weight )
172
178
return
173
179
})
174
-
175
180
registry .RegisterPriority (priorities .NodePreferAvoidPodsPriority ,
176
181
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
177
182
plugins .Score = appendToPluginSet (plugins .Score , nodepreferavoidpods .Name , & args .Weight )
0 commit comments