Skip to content

Commit 008bf25

Browse files
committed
use simulated render for e2e test
Signed-off-by: Maya Barnea <mayab@il.ibm.com>
1 parent d3673bd commit 008bf25

6 files changed

Lines changed: 86 additions & 20 deletions

File tree

deploy/environments/dev/base-kind-istio/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ kind: Kustomization
1616
resources:
1717
- destination-rules.yaml
1818
- services.yaml
19+
- vllm-render.yaml
1920
- ../../../components/istio-control-plane/
2021
- ../../../components/inference-gateway/
2122

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: vllm-render
5+
labels:
6+
app: vllm-render
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: vllm-render
12+
template:
13+
metadata:
14+
labels:
15+
app: vllm-render
16+
spec:
17+
containers:
18+
- name: vllm-render
19+
image: ${VLLM_RENDER_IMAGE}
20+
imagePullPolicy: IfNotPresent
21+
command: ["vllm", "launch", "render"]
22+
args: ["${MODEL_NAME}", "--port=8082"]
23+
ports:
24+
- name: render-http
25+
containerPort: 8082
26+
startupProbe:
27+
httpGet:
28+
path: /health
29+
port: 8082
30+
initialDelaySeconds: 2
31+
periodSeconds: 1
32+
failureThreshold: 600
33+
timeoutSeconds: 1
34+
livenessProbe:
35+
httpGet:
36+
path: /health
37+
port: 8082
38+
periodSeconds: 10
39+
failureThreshold: 5
40+
timeoutSeconds: 1
41+
readinessProbe:
42+
httpGet:
43+
path: /health
44+
port: 8082
45+
periodSeconds: 5
46+
failureThreshold: 1
47+
timeoutSeconds: 1
48+
volumeMounts:
49+
- name: model-cache
50+
mountPath: /root/.cache/huggingface
51+
volumes:
52+
- name: model-cache
53+
emptyDir: {}
54+
---
55+
apiVersion: v1
56+
kind: Service
57+
metadata:
58+
name: vllm-render
59+
labels:
60+
app: vllm-render
61+
spec:
62+
selector:
63+
app: vllm-render
64+
ports:
65+
- name: http
66+
protocol: TCP
67+
port: 8082
68+
targetPort: 8082
69+
type: ClusterIP

deploy/environments/dev/e2e-infra/vllm-render.yaml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ spec:
1818
- name: vllm-render
1919
image: ${VLLM_RENDER_IMAGE}
2020
imagePullPolicy: IfNotPresent
21-
command: ["vllm", "launch", "render"]
22-
args: ["${MODEL_NAME}", "--port=8082"]
23-
env:
24-
- name: HF_TOKEN
25-
value: "${HF_TOKEN}"
21+
args:
22+
- "--model=${MODEL_NAME}"
23+
- "--port=8082"
24+
- "--mode=echo"
25+
- "--force-dummy-tokenizer"
2626
ports:
2727
- name: http
2828
containerPort: 8082
@@ -48,12 +48,7 @@ spec:
4848
periodSeconds: 5
4949
failureThreshold: 1
5050
timeoutSeconds: 1
51-
volumeMounts:
52-
- name: model-cache
53-
mountPath: /root/.cache/huggingface
54-
volumes:
55-
- name: model-cache
56-
emptyDir: {}
51+
volumes: []
5752
---
5853
apiVersion: v1
5954
kind: Service

test/e2e/e2e_suite_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ var (
7474

7575
containerRuntime = env.GetEnvString("CONTAINER_RUNTIME", "docker", ginkgo.GinkgoLogr)
7676
eppImage = env.GetEnvString("EPP_IMAGE", "ghcr.io/llm-d/llm-d-router-endpoint-picker:dev", ginkgo.GinkgoLogr)
77-
vllmSimImage = env.GetEnvString("VLLM_IMAGE", "ghcr.io/llm-d/llm-d-inference-sim:v0.9.2", ginkgo.GinkgoLogr)
78-
sideCarImage = env.GetEnvString("SIDECAR_IMAGE", "ghcr.io/llm-d/llm-d-router-disagg-sidecar:dev", ginkgo.GinkgoLogr)
79-
vllmRenderImage = env.GetEnvString("VLLM_RENDER_IMAGE", "vllm/vllm-openai-cpu:v0.21.0", ginkgo.GinkgoLogr)
80-
loadRenderImage = env.GetEnvBool("LOAD_VLLM_RENDER_IMAGE", true, ginkgo.GinkgoLogr)
77+
vllmSimImage = env.GetEnvString("VLLM_IMAGE", "ghcr.io/llm-d/llm-d-inference-sim:v0.9.2", ginkgo.GinkgoLogr)
78+
sideCarImage = env.GetEnvString("SIDECAR_IMAGE", "ghcr.io/llm-d/llm-d-router-disagg-sidecar:dev", ginkgo.GinkgoLogr)
79+
vllmRenderImage = env.GetEnvString("VLLM_RENDER_IMAGE", "ghcr.io/llm-d/llm-d-inference-sim:v0.9.2", ginkgo.GinkgoLogr)
80+
loadRenderImage = env.GetEnvBool("LOAD_VLLM_RENDER_IMAGE", true, ginkgo.GinkgoLogr)
8181
// nsName is the namespace in which the K8S objects will be created
8282
nsName = env.GetEnvString("NAMESPACE", "default", ginkgo.GinkgoLogr)
8383

@@ -212,7 +212,7 @@ func setupK8sCluster() {
212212
kindLoadImage(vllmSimImage)
213213
kindLoadImage(eppImage)
214214
kindLoadImage(sideCarImage)
215-
if loadRenderImage {
215+
if loadRenderImage && vllmRenderImage != vllmSimImage {
216216
kindLoadImage(vllmRenderImage)
217217
}
218218
}

test/e2e/setup_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ func createModelServersFromKustomize(kustomizeDir string, extra map[string]strin
2828
"${DECODE_ROLE}": "",
2929
"${EPP_NAME}": "e2e-epp",
3030
"${NAMESPACE}": nsName,
31-
"${VLLM_EXTRA_ARGS_E}": "",
32-
"${VLLM_EXTRA_ARGS_P}": "",
33-
"${VLLM_EXTRA_ARGS_D}": "",
31+
"${VLLM_EXTRA_ARGS_E}": "--force-dummy-tokenizer",
32+
"${VLLM_EXTRA_ARGS_P}": "--force-dummy-tokenizer",
33+
"${VLLM_EXTRA_ARGS_D}": "--force-dummy-tokenizer",
3434
}
3535
for k, v := range extra {
3636
subs[k] = v
@@ -124,7 +124,6 @@ func createRender() []string {
124124
map[string]string{
125125
"${MODEL_NAME}": kvModelName,
126126
"${VLLM_RENDER_IMAGE}": vllmRenderImage,
127-
"${HF_TOKEN}": "",
128127
})
129128
objects := testutils.CreateObjsFromYaml(testConfig, renderYamls)
130129
podsInDeploymentsReady(objects)

test/scripts/run_e2e.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ echo "Running end to end tests"
2121

2222
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
2323

24+
export VLLM_RENDER_IMAGE=${VLLM_IMAGE}
25+
2426
if [ -n "${E2E_LABEL_FILTER:-}" ]; then
2527
echo "Label filter: ${E2E_LABEL_FILTER}"
2628
go test -v -timeout 45m "${DIR}/../e2e/" -ginkgo.v -ginkgo.fail-fast "-ginkgo.label-filter=${E2E_LABEL_FILTER}"

0 commit comments

Comments
 (0)