@@ -44,9 +44,16 @@ import (
4444	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore" 
4545	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics" 
4646	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics/collectors" 
47+ 	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/plugins" 
4748	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/requestcontrol" 
4849	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/saturationdetector" 
4950	"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" 
5057	runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server" 
5158	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging" 
5259	"sigs.k8s.io/gateway-api-inference-extension/version" 
@@ -335,6 +342,23 @@ func (r *Runner) Run(ctx context.Context) error {
335342	return  nil 
336343}
337344
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+ 
338362func  (r  * Runner ) parsePluginsConfiguration (ctx  context.Context ) error  {
339363	if  * configText  ==  ""  &&  * configFile  ==  ""  {
340364		return  nil  // configuring through code, not through file 
@@ -351,7 +375,8 @@ func (r *Runner) parsePluginsConfiguration(ctx context.Context) error {
351375		}
352376	}
353377
354- 	handle  :=  newEppHandle (ctx )
378+ 	r .registerInTreePlugins ()
379+ 	handle  :=  plugins .NewEppHandle (ctx )
355380	config , err  :=  loader .LoadConfig (configBytes , handle )
356381	if  err  !=  nil  {
357382		return  fmt .Errorf ("failed to load the configuration - %w" , err )
0 commit comments