@@ -46,9 +46,16 @@ import (
4646	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore" 
4747	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics" 
4848	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics/collectors" 
49+ 	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/plugins" 
4950	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/requestcontrol" 
5051	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/saturationdetector" 
5152	"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" 
5259	runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server" 
5360	"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging" 
5461	"sigs.k8s.io/gateway-api-inference-extension/version" 
@@ -357,6 +364,23 @@ func (r *Runner) Run(ctx context.Context) error {
357364	return  nil 
358365}
359366
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+ 
360384func  (r  * Runner ) parsePluginsConfiguration (ctx  context.Context ) error  {
361385	if  * configText  ==  ""  &&  * configFile  ==  ""  {
362386		return  nil  // configuring through code, not through file 
@@ -373,7 +397,8 @@ func (r *Runner) parsePluginsConfiguration(ctx context.Context) error {
373397		}
374398	}
375399
376- 	handle  :=  newEppHandle (ctx )
400+ 	r .registerInTreePlugins ()
401+ 	handle  :=  plugins .NewEppHandle (ctx )
377402	config , err  :=  loader .LoadConfig (configBytes , handle )
378403	if  err  !=  nil  {
379404		return  fmt .Errorf ("failed to load the configuration - %w" , err )
0 commit comments