@@ -68,8 +68,6 @@ const (
68
68
inferExtName = "inference-gateway-ext-proc"
69
69
// clientManifest is the manifest for the client test resources.
70
70
clientManifest = "../../testdata/client.yaml"
71
- // modelServerManifest is the manifest for the model server test resources.
72
- modelServerManifest = "../../../config/manifests/vllm/gpu-deployment.yaml"
73
71
// modelServerSecretManifest is the manifest for the model server secret resource.
74
72
modelServerSecretManifest = "../../testdata/model-secret.yaml"
75
73
// inferPoolManifest is the manifest for the inference pool CRD.
@@ -80,6 +78,8 @@ const (
80
78
inferExtManifest = "../../../config/manifests/ext_proc.yaml"
81
79
// envoyManifest is the manifest for the envoy proxy test resources.
82
80
envoyManifest = "../../testdata/envoy.yaml"
81
+ // modelServerManifestFilepathEnvVar is the env var that holds absolute path to the manifest for the model server test resource.
82
+ modelServerManifestFilepathEnvVar = "MANIFEST_PATH"
83
83
)
84
84
85
85
var (
@@ -107,6 +107,7 @@ var _ = ginkgo.BeforeSuite(func() {
107
107
})
108
108
109
109
func setupInfra () {
110
+ modelServerManifest := readModelServerManifestPath ()
110
111
crds := map [string ]string {
111
112
"inferencepools.inference.networking.x-k8s.io" : inferPoolManifest ,
112
113
"inferencemodels.inference.networking.x-k8s.io" : inferModelManifest ,
@@ -145,6 +146,7 @@ func setupSuite() {
145
146
146
147
kubeCli , err = kubernetes .NewForConfig (cfg )
147
148
gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
149
+ gomega .Expect (kubeCli ).NotTo (gomega .BeNil ())
148
150
}
149
151
150
152
func cleanupResources () {
@@ -181,6 +183,14 @@ func namespaceExists(k8sClient client.Client, ns string) {
181
183
}, existsTimeout , interval )
182
184
}
183
185
186
+ // readModelServerManifestPath reads from env var the absolute filepath to model server deployment for testing.
187
+ func readModelServerManifestPath () string {
188
+ ginkgo .By (fmt .Sprintf ("Ensuring %s environment variable is set" , modelServerManifestFilepathEnvVar ))
189
+ modelServerManifestFilepath := os .Getenv (modelServerManifestFilepathEnvVar )
190
+ gomega .Expect (modelServerManifestFilepath ).NotTo (gomega .BeEmpty (), modelServerManifestFilepathEnvVar + " is not set" )
191
+ return modelServerManifestFilepath
192
+ }
193
+
184
194
// createCRDs creates the Inference Extension CRDs used for testing.
185
195
func createCRDs (k8sClient client.Client , crds map [string ]string ) {
186
196
for name , path := range crds {
@@ -215,6 +225,29 @@ func createClient(k8sClient client.Client, filePath string) {
215
225
216
226
// createModelServer creates the model server resources used for testing from the given filePaths.
217
227
func createModelServer (k8sClient client.Client , secretPath , deployPath string ) {
228
+ ginkgo .By ("Ensuring the model server manifest points to an existing file" )
229
+ modelServerManifestArray := readYaml (deployPath )
230
+ gomega .Expect (modelServerManifestArray ).NotTo (gomega .BeEmpty ())
231
+ modelServerManifestYaml := modelServerManifestArray [0 ]
232
+ if strings .Contains (modelServerManifestYaml , "hf-token" ) {
233
+ createHfSecret (k8sClient , secretPath )
234
+ }
235
+
236
+ ginkgo .By ("Creating model server resources from manifest: " + deployPath )
237
+ createObjsFromYaml (k8sClient , modelServerManifestArray )
238
+
239
+ // Wait for the deployment to exist.
240
+ deploy := & appsv1.Deployment {}
241
+ testutils .EventuallyExists (ctx , func () error {
242
+ return k8sClient .Get (ctx , types.NamespacedName {Namespace : nsName , Name : modelServerName }, deploy )
243
+ }, existsTimeout , interval )
244
+
245
+ // Wait for the deployment to be available.
246
+ testutils .DeploymentAvailable (ctx , k8sClient , deploy , modelReadyTimeout , interval )
247
+ }
248
+
249
+ // createHfSecret read HF_TOKEN from env var and creates a secret that contains the access token.
250
+ func createHfSecret (k8sClient client.Client , secretPath string ) {
218
251
ginkgo .By ("Ensuring the HF_TOKEN environment variable is set" )
219
252
token := os .Getenv ("HF_TOKEN" )
220
253
gomega .Expect (token ).NotTo (gomega .BeEmpty (), "HF_TOKEN is not set" )
@@ -226,25 +259,13 @@ func createModelServer(k8sClient client.Client, secretPath, deployPath string) {
226
259
outManifests = append (outManifests , strings .Replace (m , "$HF_TOKEN" , token , 1 ))
227
260
}
228
261
229
- ginkgo .By ("Creating model server secret resource from manifest: " + deployPath )
262
+ ginkgo .By ("Creating model server secret resource" )
230
263
createObjsFromYaml (k8sClient , outManifests )
231
264
232
265
// Wait for the secret to exist before proceeding with test.
233
266
testutils .EventuallyExists (ctx , func () error {
234
267
return k8sClient .Get (ctx , types.NamespacedName {Namespace : nsName , Name : "hf-token" }, & corev1.Secret {})
235
268
}, existsTimeout , interval )
236
-
237
- ginkgo .By ("Creating model server resources from manifest: " + deployPath )
238
- applyYAMLFile (k8sClient , deployPath )
239
-
240
- // Wait for the deployment to exist.
241
- deploy := & appsv1.Deployment {}
242
- testutils .EventuallyExists (ctx , func () error {
243
- return k8sClient .Get (ctx , types.NamespacedName {Namespace : nsName , Name : modelServerName }, deploy )
244
- }, existsTimeout , interval )
245
-
246
- // Wait for the deployment to be available.
247
- testutils .DeploymentAvailable (ctx , k8sClient , deploy , modelReadyTimeout , interval )
248
269
}
249
270
250
271
// createEnvoy creates the envoy proxy resources used for testing from the given filePath.
0 commit comments