@@ -50,11 +50,13 @@ import (
50
50
ctrl "sigs.k8s.io/controller-runtime"
51
51
"sigs.k8s.io/controller-runtime/pkg/cache"
52
52
k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
53
- "sigs.k8s.io/controller-runtime/pkg/config"
53
+ crconfig "sigs.k8s.io/controller-runtime/pkg/config"
54
54
"sigs.k8s.io/controller-runtime/pkg/envtest"
55
55
crmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
56
56
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
57
57
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
58
+ "sigs.k8s.io/yaml"
59
+
58
60
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha2"
59
61
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend"
60
62
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
@@ -63,11 +65,15 @@ import (
63
65
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/requestcontrol"
64
66
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/saturationdetector"
65
67
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling"
68
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/config"
69
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework"
70
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/filter"
71
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
72
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
66
73
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
67
74
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
68
75
epptestutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/testing"
69
76
integrationutils "sigs.k8s.io/gateway-api-inference-extension/test/integration"
70
- "sigs.k8s.io/yaml"
71
77
)
72
78
73
79
const (
@@ -1018,7 +1024,41 @@ func BeforeSuite() func() {
1018
1024
// Adjust from defaults
1019
1025
serverRunner .PoolNamespacedName = types.NamespacedName {Name : testPoolName , Namespace : testNamespace }
1020
1026
serverRunner .Datastore = datastore .NewDatastore (context .Background (), pmf )
1021
- scheduler := scheduling .NewScheduler ()
1027
+
1028
+ loraAffinityFilter := filter .NewLoraAffinityFilter (config .Conf .LoraAffinityThreshold )
1029
+ leastQueueFilter := filter .NewLeastQueueFilter ()
1030
+ leastKvCacheFilter := filter .NewLeastKVCacheFilter ()
1031
+
1032
+ lowLatencyFilter := & filter.DecisionTreeFilter {
1033
+ Current : filter .NewLowQueueFilter (config .Conf .QueueingThresholdLoRA ),
1034
+ NextOnSuccess : & filter.DecisionTreeFilter {
1035
+ Current : loraAffinityFilter ,
1036
+ NextOnSuccessOrFailure : & filter.DecisionTreeFilter {
1037
+ Current : leastQueueFilter ,
1038
+ NextOnSuccessOrFailure : & filter.DecisionTreeFilter {
1039
+ Current : leastKvCacheFilter ,
1040
+ },
1041
+ },
1042
+ },
1043
+ NextOnFailure : & filter.DecisionTreeFilter {
1044
+ Current : leastQueueFilter ,
1045
+ NextOnSuccessOrFailure : & filter.DecisionTreeFilter {
1046
+ Current : loraAffinityFilter ,
1047
+ NextOnSuccessOrFailure : & filter.DecisionTreeFilter {
1048
+ Current : leastKvCacheFilter ,
1049
+ },
1050
+ },
1051
+ },
1052
+ }
1053
+
1054
+ defaultProfile := framework .NewSchedulerProfile ().
1055
+ WithFilters (lowLatencyFilter ).
1056
+ WithPicker (picker .NewRandomPicker (picker .DefaultMaxNumOfEndpoints ))
1057
+
1058
+ profileHandler := profile .NewSingleProfileHandler ()
1059
+
1060
+ schedulerConfig := scheduling .NewSchedulerConfig (profileHandler , map [string ]* framework.SchedulerProfile {"default" : defaultProfile })
1061
+ scheduler := scheduling .NewSchedulerWithConfig (schedulerConfig )
1022
1062
1023
1063
sdConfig := & saturationdetector.Config {
1024
1064
QueueDepthThreshold : saturationdetector .DefaultQueueDepthThreshold ,
@@ -1125,7 +1165,7 @@ func managerTestOptions(namespace, name string, metricsServerOptions metricsserv
1125
1165
},
1126
1166
},
1127
1167
},
1128
- Controller : config .Controller {
1168
+ Controller : crconfig .Controller {
1129
1169
SkipNameValidation : boolPointer (true ),
1130
1170
},
1131
1171
Metrics : metricsServerOptions ,
0 commit comments