11package e2e
22
33import (
4- "context"
54 "fmt"
65 "io"
76 "os/exec"
@@ -14,22 +13,19 @@ import (
1413 "github.com/onsi/gomega"
1514 "github.com/onsi/gomega/gexec"
1615 apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
17- k8sruntime "k8s.io/apimachinery/pkg/runtime"
1816 clientgoscheme "k8s.io/client-go/kubernetes/scheme"
19- "sigs.k8s.io/controller-runtime/pkg/client"
2017 "sigs.k8s.io/controller-runtime/pkg/client/config"
2118 k8slog "sigs.k8s.io/controller-runtime/pkg/log"
19+
20+ infextv1 "sigs.k8s.io/gateway-api-inference-extension/api/v1"
2221 infextv1a2 "sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
2322 "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/env"
23+ testutils "sigs.k8s.io/gateway-api-inference-extension/test/utils"
2424)
2525
2626const (
27- // defaultExistsTimeout is the default timeout for a resource to exist in the api server.
28- defaultExistsTimeout = 30 * time .Second
2927 // defaultReadyTimeout is the default timeout for a resource to report a ready state.
3028 defaultReadyTimeout = 3 * time .Minute
31- // defaultModelReadyTimeout is the default timeout for the model server deployment to report a ready state.
32- defaultModelReadyTimeout = 10 * time .Minute
3329 // defaultInterval is the default interval to check if a resource exists or ready conditions.
3430 defaultInterval = time .Millisecond * 250
3531 // xInferPoolManifest is the manifest for the inference pool CRD with 'inference.networking.x-k8s.io' group.
@@ -57,19 +53,16 @@ const (
5753)
5854
5955var (
60- ctx = context .Background ()
61- k8sClient client.Client
62- port string
63- scheme = k8sruntime .NewScheme ()
56+ port string
57+
58+ testConfig * testutils.TestConfig
6459
6560 eppTag = env .GetEnvString ("EPP_TAG" , "dev" , ginkgo .GinkgoLogr )
6661 vllmSimTag = env .GetEnvString ("VLLM_SIMULATOR_TAG" , "dev" , ginkgo .GinkgoLogr )
67- routingSideCarTag = env .GetEnvString ("ROUTING_SIDECAR_TAG" , "v0.2.0 " , ginkgo .GinkgoLogr )
62+ routingSideCarTag = env .GetEnvString ("ROUTING_SIDECAR_TAG" , "dev " , ginkgo .GinkgoLogr )
6863
69- existsTimeout = env .GetEnvDuration ("EXISTS_TIMEOUT" , defaultExistsTimeout , ginkgo .GinkgoLogr )
70- readyTimeout = env .GetEnvDuration ("READY_TIMEOUT" , defaultReadyTimeout , ginkgo .GinkgoLogr )
71- modelReadyTimeout = env .GetEnvDuration ("MODEL_READY_TIMEOUT" , defaultModelReadyTimeout , ginkgo .GinkgoLogr )
72- interval = defaultInterval
64+ readyTimeout = env .GetEnvDuration ("READY_TIMEOUT" , defaultReadyTimeout , ginkgo .GinkgoLogr )
65+ interval = defaultInterval
7366)
7467
7568func TestEndToEnd (t * testing.T ) {
@@ -83,16 +76,17 @@ var _ = ginkgo.BeforeSuite(func() {
8376 port = "30080"
8477
8578 setupK8sCluster ()
79+ testConfig = testutils .NewTestConfig (nsName )
8680 setupK8sClient ()
8781 createCRDs ()
8882 createEnvoy ()
89- applyYAMLFile ( rbacManifest )
90- applyYAMLFile ( serviceAccountManifest )
91- applyYAMLFile ( servicesManifest )
83+ testutils . ApplyYAMLFile ( testConfig , rbacManifest )
84+ testutils . ApplyYAMLFile ( testConfig , serviceAccountManifest )
85+ testutils . ApplyYAMLFile ( testConfig , servicesManifest )
9286
93- infPoolYaml := readYaml (inferExtManifest )
87+ infPoolYaml := testutils . ReadYaml (inferExtManifest )
9488 infPoolYaml = substituteMany (infPoolYaml , map [string ]string {"${POOL_NAME}" : modelName + "-inference-pool" })
95- createObjsFromYaml ( infPoolYaml )
89+ testutils . CreateObjsFromYaml ( testConfig , infPoolYaml )
9690})
9791
9892var _ = ginkgo .AfterSuite (func () {
@@ -147,32 +141,33 @@ func setupK8sClient() {
147141 k8sCfg := config .GetConfigOrDie ()
148142 gomega .ExpectWithOffset (1 , k8sCfg ).NotTo (gomega .BeNil ())
149143
150- err := clientgoscheme .AddToScheme (scheme )
144+ err := clientgoscheme .AddToScheme (testConfig . Scheme )
151145 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
152146
153- err = apiextv1 . AddToScheme ( scheme )
147+ err = infextv1 . Install ( testConfig . Scheme )
154148 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
155149
156- err = infextv1a2 . Install ( scheme )
150+ err = apiextv1 . AddToScheme ( testConfig . Scheme )
157151 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
158152
159- k8sClient , err = client . New ( k8sCfg , client. Options { Scheme : scheme } )
153+ err = infextv1a2 . Install ( testConfig . Scheme )
160154 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
161- gomega .Expect (k8sClient ).NotTo (gomega .BeNil ())
155+
156+ testConfig .CreateCli ()
162157
163158 k8slog .SetLogger (ginkgo .GinkgoLogr )
164159}
165160
166161// createCRDs creates the Inference Extension CRDs used for testing.
167162func createCRDs () {
168163 crds := runKustomize (gieCrdsKustomize )
169- createObjsFromYaml ( crds )
164+ testutils . CreateObjsFromYaml ( testConfig , crds )
170165}
171166
172167func createEnvoy () {
173- manifests := readYaml (envoyManifest )
168+ manifests := testutils . ReadYaml (envoyManifest )
174169 ginkgo .By ("Creating envoy proxy resources from manifest: " + envoyManifest )
175- createObjsFromYaml ( manifests )
170+ testutils . CreateObjsFromYaml ( testConfig , manifests )
176171}
177172
178173const kindClusterConfig = `
0 commit comments