Skip to content

Commit 95359e7

Browse files
committed
Refactor beforeSuite in integration tests
1 parent 53cb18f commit 95359e7

File tree

4 files changed

+98
-124
lines changed

4 files changed

+98
-124
lines changed

pkg/epp/server/controller_manager.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
ctrl "sigs.k8s.io/controller-runtime"
2929
"sigs.k8s.io/controller-runtime/pkg/cache"
3030
"sigs.k8s.io/controller-runtime/pkg/client"
31-
"sigs.k8s.io/controller-runtime/pkg/manager"
3231
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha2"
3332
)
3433

@@ -39,9 +38,9 @@ func init() {
3938
utilruntime.Must(v1alpha2.AddToScheme(scheme))
4039
}
4140

42-
// NewDefaultManager creates a new controller manager with default configuration.
43-
func NewDefaultManager(namespace, name string, restConfig *rest.Config) (ctrl.Manager, error) {
44-
defaultOpts := ctrl.Options{
41+
// DefaultManagerOptions returns the default options used to create the manager.
42+
func DefaultManagerOptions(namespace, name string) ctrl.Options {
43+
return ctrl.Options{
4544
Scheme: scheme,
4645
Cache: cache.Options{
4746
ByObject: map[client.Object]cache.ByObject{
@@ -67,12 +66,11 @@ func NewDefaultManager(namespace, name string, restConfig *rest.Config) (ctrl.Ma
6766
},
6867
},
6968
}
70-
return NewManagerWithOptions(restConfig, defaultOpts)
7169
}
7270

73-
// NewManagerWithOptions creates a new controller manager with injectable options.
74-
func NewManagerWithOptions(restConfig *rest.Config, opts manager.Options) (ctrl.Manager, error) {
75-
manager, err := ctrl.NewManager(restConfig, opts)
71+
// NewDefaultManager creates a new controller manager with default configuration.
72+
func NewDefaultManager(namespace, name string, restConfig *rest.Config) (ctrl.Manager, error) {
73+
manager, err := ctrl.NewManager(restConfig, DefaultManagerOptions(namespace, name))
7674
if err != nil {
7775
return nil, fmt.Errorf("failed to create controller manager: %v", err)
7876
}

pkg/epp/util/testing/wrappers.go

+11
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,17 @@ func (p *PodWrapper) Labels(labels map[string]string) *PodWrapper {
7171
return p
7272
}
7373

74+
// Labels sets the pod labels.
75+
func (p *PodWrapper) LabelsFromPoolSelector(selector map[v1alpha2.LabelKey]v1alpha2.LabelValue) *PodWrapper {
76+
if p.ObjectMeta.Labels == nil {
77+
p.ObjectMeta.Labels = map[string]string{}
78+
}
79+
for k, v := range selector {
80+
p.ObjectMeta.Labels[string(k)] = string(v)
81+
}
82+
return p
83+
}
84+
7485
// SetReadyCondition sets a PodReay=true condition.
7586
func (p *PodWrapper) ReadyCondition() *PodWrapper {
7687
p.Status.Conditions = []corev1.PodCondition{{

test/integration/epp/hermetic_test.go

+33-2
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,42 @@ import (
3131
"google.golang.org/protobuf/types/known/structpb"
3232
"k8s.io/component-base/metrics/legacyregistry"
3333
metricsutils "k8s.io/component-base/metrics/testutil"
34+
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha2"
3435
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
3536
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
3637
utiltesting "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/testing"
3738
)
3839

40+
var models = []*v1alpha2.InferenceModel{
41+
utiltesting.MakeInferenceModel("sample").
42+
Namespace(pool.Namespace).
43+
ModelName("sql-lora").
44+
Criticality(v1alpha2.Critical).
45+
PoolName(pool.Name).
46+
TargetModel("sql-lora-1fdg2").
47+
ObjRef(),
48+
utiltesting.MakeInferenceModel("sheddable").
49+
Namespace(pool.Namespace).
50+
ModelName("sql-lora-sheddable").
51+
Criticality(v1alpha2.Sheddable).
52+
PoolName(pool.Name).
53+
TargetModel("sql-lora-1fdg3").
54+
ObjRef(),
55+
utiltesting.MakeInferenceModel("generic").
56+
Namespace(pool.Namespace).
57+
ModelName("my-model").
58+
Criticality(v1alpha2.Critical).
59+
PoolName(pool.Name).
60+
TargetModel("my-model-12345").
61+
ObjRef(),
62+
utiltesting.MakeInferenceModel("direct-model").
63+
Namespace(pool.Namespace).
64+
ModelName("direct-model").
65+
Criticality(v1alpha2.Critical).
66+
PoolName(pool.Name).
67+
ObjRef(),
68+
}
69+
3970
func TestMain(m *testing.M) {
4071
cleanup := BeforeSuite()
4172
code := m.Run()
@@ -304,7 +335,7 @@ func TestKubeInferenceModelRequest(t *testing.T) {
304335
}
305336
for _, test := range tests {
306337
t.Run(test.name, func(t *testing.T) {
307-
client, cleanup := setUpHermeticServer(t, test.pods, false)
338+
client, cleanup := startEPPServer(t, &eppOptions{podMetrics: test.pods, models: models})
308339
t.Cleanup(cleanup)
309340
want := &extProcPb.ProcessingResponse{
310341
Response: &extProcPb.ProcessingResponse_RequestBody{
@@ -1336,7 +1367,7 @@ func TestFullDuplexStreamed_KubeInferenceModelRequest(t *testing.T) {
13361367

13371368
for _, test := range tests {
13381369
t.Run(test.name, func(t *testing.T) {
1339-
client, cleanup := setUpHermeticServer(t, test.pods, true)
1370+
client, cleanup := startEPPServer(t, &eppOptions{podMetrics: test.pods, models: models, streamed: true})
13401371
t.Cleanup(cleanup)
13411372
responses, err := streamedRequest(t, client, test.requests, len(test.wantResponses))
13421373

0 commit comments

Comments
 (0)