Skip to content

Commit c18be17

Browse files
committed
add actions for helm chart package install test
Signed-off-by: Maxime Fournioux <[email protected]>
1 parent 1ee92cd commit c18be17

File tree

1 file changed

+55
-2
lines changed

1 file changed

+55
-2
lines changed

.github/workflows/publish-helm-ghcr.yaml

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
push:
66
paths:
77
- 'examples/online_serving/chart-helm/**'
8+
pull_request:
89
env:
910
CHART_NAME: chart-vllm
1011

@@ -36,5 +37,57 @@ jobs:
3637
- name: helm package
3738
run: helm package examples/online_serving/chart-helm --version ${{ env.CHART_TAG }}
3839

39-
- name: helm push
40-
run: helm push /home/runner/work/vllm/vllm/${{ env.CHART_NAME }}-${{ env.CHART_TAG }}.tgz oci://ghcr.io/${{ github.repository_owner }}
40+
# - name: helm push
41+
# run: helm push /home/runner/work/vllm/vllm/${{ env.CHART_NAME }}-${{ env.CHART_TAG }}.tgz oci://ghcr.io/${{ github.repository_owner }}
42+
43+
- name: Setup minio
44+
run: |
45+
docker network create vllm-net
46+
docker run -d -p 9000:9000 --name minio --net vllm-net \
47+
-e "MINIO_ACCESS_KEY=minioadmin" \
48+
-e "MINIO_SECRET_KEY=minioadmin" \
49+
-v /tmp/data:/data \
50+
-v /tmp/config:/root/.minio \
51+
minio/minio server /data
52+
export AWS_ACCESS_KEY_ID=minioadmin
53+
export AWS_SECRET_ACCESS_KEY=minioadmin
54+
export AWS_EC2_METADATA_DISABLED=true
55+
mkdir opt-125m
56+
cd opt-125m && curl -O -Ls "https://huggingface.co/facebook/opt-125m/resolve/main/{pytorch_model.bin,config.json,generation_config.json,merges.txt,special_tokens_map.json,tokenizer_config.json,vocab.json}" && cd ..
57+
aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket
58+
aws --endpoint-url http://127.0.0.1:9000/ s3 cp opt-125m/ s3://testbucket/opt-125m --recursive
59+
60+
- name: Create kind cluster
61+
uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0
62+
63+
- name: Build the Docker image vllm cpu
64+
run: docker buildx build -f Dockerfile.cpu -t vllm-cpu-env .
65+
66+
- name: Configuration of docker images, network and namespace for the kind cluster
67+
run: |
68+
docker pull amazon/aws-cli:2.6.4
69+
kind load docker-image amazon/aws-cli:2.6.4 --name chart-testing
70+
kind load docker-image vllm-cpu-env:latest --name chart-testing
71+
docker network connect vllm-net "$(docker ps -aqf "name=chart-testing-control-plane")"
72+
kubectl create ns ns-vllm
73+
74+
- name: Run chart-testing (install)
75+
run: |
76+
export AWS_ACCESS_KEY_ID=minioadmin
77+
export AWS_SECRET_ACCESS_KEY=minioadmin
78+
sleep 30 && kubectl -n ns-vllm logs -f "$(kubectl -n ns-vllm get pods | awk '/deployment/ {print $1;exit}')" &
79+
helm install --wait --wait-for-jobs --timeout 5m0s --debug --create-namespace --namespace=ns-vllm test-vllm oci://ghcr.io/mfournioux/chart-vllm --version 0.0.1 -f examples/online_serving/chart-helm/values.yaml --set secrets.s3endpoint=http://minio:9000 --set secrets.s3bucketname=testbucket --set secrets.s3accesskeyid=$AWS_ACCESS_KEY_ID --set secrets.s3accesskey=$AWS_SECRET_ACCESS_KEY --set resources.requests.cpu=1 --set resources.requests.memory=4Gi --set resources.limits.cpu=2 --set resources.limits.memory=5Gi --set image.env[0].name=VLLM_CPU_KVCACHE_SPACE --set image.env[1].name=VLLM_LOGGING_LEVEL --set-string image.env[0].value="1" --set-string image.env[1].value="DEBUG" --set-string extraInit.s3modelpath="opt-125m/" --set-string 'resources.limits.nvidia\.com/gpu=0' --set-string 'resources.requests.nvidia\.com/gpu=0' --set-string image.repository="vllm-cpu-env"
80+
81+
- name: curl test
82+
run: |
83+
kubectl -n ns-vllm port-forward service/test-vllm-service 8001:80 &
84+
sleep 10
85+
CODE="$(curl -v -f --location http://localhost:8001/v1/completions \
86+
--header "Content-Type: application/json" \
87+
--data '{
88+
"model": "opt-125m",
89+
"prompt": "San Francisco is a",
90+
"max_tokens": 7,
91+
"temperature": 0
92+
}'):$CODE"
93+
echo "$CODE"

0 commit comments

Comments
 (0)