@@ -34,6 +34,7 @@ import (
34
34
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodepreferavoidpods"
35
35
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources"
36
36
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
37
+ "k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
37
38
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
38
39
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
39
40
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
@@ -73,6 +74,7 @@ func NewDefaultRegistry(args *RegistryArgs) framework.Registry {
73
74
nodeports .Name : nodeports .New ,
74
75
nodepreferavoidpods .Name : nodepreferavoidpods .New ,
75
76
nodeaffinity .Name : nodeaffinity .New ,
77
+ podtopologyspread .Name : podtopologyspread .New ,
76
78
volumebinding .Name : func (_ * runtime.Unknown , _ framework.FrameworkHandle ) (framework.Plugin , error ) {
77
79
return volumebinding .NewFromVolumeBinder (args .VolumeBinder ), nil
78
80
},
@@ -113,6 +115,7 @@ func NewDefaultConfigProducerRegistry() *ConfigProducerRegistry {
113
115
PredicateToConfigProducer : make (map [string ]ConfigProducer ),
114
116
PriorityToConfigProducer : make (map [string ]ConfigProducer ),
115
117
}
118
+ // Register Predicates.
116
119
registry .RegisterPredicate (predicates .GeneralPred ,
117
120
func (_ ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
118
121
// GeneralPredicate is a combination of predicates.
@@ -172,25 +175,27 @@ func NewDefaultConfigProducerRegistry() *ConfigProducerRegistry {
172
175
plugins .Filter = appendToPluginSet (plugins .Filter , interpodaffinity .Name , nil )
173
176
return
174
177
})
175
-
178
+ registry .RegisterPredicate (predicates .EvenPodsSpreadPred ,
179
+ func (_ ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
180
+ plugins .Filter = appendToPluginSet (plugins .Filter , podtopologyspread .Name , nil )
181
+ return
182
+ })
183
+ // Register Priorities.
176
184
registry .RegisterPriority (priorities .TaintTolerationPriority ,
177
185
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
178
186
plugins .Score = appendToPluginSet (plugins .Score , tainttoleration .Name , & args .Weight )
179
187
return
180
188
})
181
-
182
189
registry .RegisterPriority (priorities .NodeAffinityPriority ,
183
190
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
184
191
plugins .Score = appendToPluginSet (plugins .Score , nodeaffinity .Name , & args .Weight )
185
192
return
186
193
})
187
-
188
194
registry .RegisterPriority (priorities .ImageLocalityPriority ,
189
195
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
190
196
plugins .Score = appendToPluginSet (plugins .Score , imagelocality .Name , & args .Weight )
191
197
return
192
198
})
193
-
194
199
registry .RegisterPriority (priorities .NodePreferAvoidPodsPriority ,
195
200
func (args ConfigProducerArgs ) (plugins config.Plugins , pluginConfig []config.PluginConfig ) {
196
201
plugins .Score = appendToPluginSet (plugins .Score , nodepreferavoidpods .Name , & args .Weight )
0 commit comments