@@ -46,9 +46,16 @@ import (
46
46
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
47
47
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics"
48
48
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics/collectors"
49
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/plugins"
49
50
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/requestcontrol"
50
51
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/saturationdetector"
51
52
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling"
53
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/filter"
54
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/multi/prefix"
55
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
56
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
57
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/scorer"
58
+ testfilter "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/test/filter"
52
59
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
53
60
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
54
61
"sigs.k8s.io/gateway-api-inference-extension/version"
@@ -357,6 +364,23 @@ func (r *Runner) Run(ctx context.Context) error {
357
364
return nil
358
365
}
359
366
367
+ // registerInTreePlugins registers the factory functions of all known plugins
368
+ func (r * Runner ) registerInTreePlugins () {
369
+ plugins .Register (filter .DecisionTreeFilterType , filter .DecisionTreeFilterFactory )
370
+ plugins .Register (filter .LeastKVCacheFilterType , filter .LeastKVCacheFilterFactory )
371
+ plugins .Register (filter .LeastQueueFilterType , filter .LeastQueueFilterFactory )
372
+ plugins .Register (filter .LoraAffinityFilterType , filter .LoraAffinityFilterFactory )
373
+ plugins .Register (filter .LowQueueFilterType , filter .LowQueueFilterFactory )
374
+ plugins .Register (prefix .PrefixCachePluginType , prefix .PrefixCachePluginFactory )
375
+ plugins .Register (picker .MaxScorePickerType , picker .MaxScorePickerFactory )
376
+ plugins .Register (picker .RandomPickerType , picker .RandomPickerFactory )
377
+ plugins .Register (profile .SingleProfileHandlerType , profile .SingleProfileHandlerFactory )
378
+ plugins .Register (scorer .KvCacheScorerType , scorer .KvCacheScorerFactory )
379
+ plugins .Register (scorer .QueueScorerType , scorer .QueueScorerFactory )
380
+ // register filter for test purpose only (used in conformance tests)
381
+ plugins .Register (testfilter .HeaderBasedTestingFilterType , testfilter .HeaderBasedTestingFilterFactory )
382
+ }
383
+
360
384
func (r * Runner ) parsePluginsConfiguration (ctx context.Context ) error {
361
385
if * configText == "" && * configFile == "" {
362
386
return nil // configuring through code, not through file
@@ -373,7 +397,8 @@ func (r *Runner) parsePluginsConfiguration(ctx context.Context) error {
373
397
}
374
398
}
375
399
376
- handle := newEppHandle (ctx )
400
+ r .registerInTreePlugins ()
401
+ handle := plugins .NewEppHandle (ctx )
377
402
config , err := loader .LoadConfig (configBytes , handle )
378
403
if err != nil {
379
404
return fmt .Errorf ("failed to load the configuration - %w" , err )
0 commit comments