@@ -44,9 +44,16 @@ import (
44
44
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
45
45
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics"
46
46
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics/collectors"
47
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/plugins"
47
48
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/requestcontrol"
48
49
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/saturationdetector"
49
50
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling"
51
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/filter"
52
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/multi/prefix"
53
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
54
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
55
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/scorer"
56
+ testfilter "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/test/filter"
50
57
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
51
58
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
52
59
"sigs.k8s.io/gateway-api-inference-extension/version"
@@ -335,6 +342,23 @@ func (r *Runner) Run(ctx context.Context) error {
335
342
return nil
336
343
}
337
344
345
+ // registerInTreePlugins registers the factory functions of all known plugins
346
+ func (r * Runner ) registerInTreePlugins () {
347
+ plugins .Register (filter .DecisionTreeFilterType , filter .DecisionTreeFilterFactory )
348
+ plugins .Register (filter .LeastKVCacheFilterType , filter .LeastKVCacheFilterFactory )
349
+ plugins .Register (filter .LeastQueueFilterType , filter .LeastQueueFilterFactory )
350
+ plugins .Register (filter .LoraAffinityFilterType , filter .LoraAffinityFilterFactory )
351
+ plugins .Register (filter .LowQueueFilterType , filter .LowQueueFilterFactory )
352
+ plugins .Register (prefix .PrefixCachePluginType , prefix .PrefixCachePluginFactory )
353
+ plugins .Register (picker .MaxScorePickerType , picker .MaxScorePickerFactory )
354
+ plugins .Register (picker .RandomPickerType , picker .RandomPickerFactory )
355
+ plugins .Register (profile .SingleProfileHandlerType , profile .SingleProfileHandlerFactory )
356
+ plugins .Register (scorer .KvCacheScorerType , scorer .KvCacheScorerFactory )
357
+ plugins .Register (scorer .QueueScorerType , scorer .QueueScorerFactory )
358
+ // register filter for test purpose only (used in conformance tests)
359
+ plugins .Register (testfilter .HeaderBasedTestingFilterType , testfilter .HeaderBasedTestingFilterFactory )
360
+ }
361
+
338
362
func (r * Runner ) parsePluginsConfiguration (ctx context.Context ) error {
339
363
if * configText == "" && * configFile == "" {
340
364
return nil // configuring through code, not through file
@@ -351,7 +375,8 @@ func (r *Runner) parsePluginsConfiguration(ctx context.Context) error {
351
375
}
352
376
}
353
377
354
- handle := newEppHandle (ctx )
378
+ r .registerInTreePlugins ()
379
+ handle := plugins .NewEppHandle (ctx )
355
380
config , err := loader .LoadConfig (configBytes , handle )
356
381
if err != nil {
357
382
return fmt .Errorf ("failed to load the configuration - %w" , err )
0 commit comments