Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/build-mock-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Build and Push Mock Images

on:
push:
branches:
- main
paths:
- hack/mock-images/**
workflow_dispatch:
Comment on lines +1 to +9
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says “update all image references from personal registries accordingly”, but there is still at least one reference to a personal registry image (ghcr.io/huntersman/vllm-cpu-env:latest) in test/e2e/README.md (line ~40). Either update that reference too, or clarify in the PR description that only the mock images are being moved/updated.

Copilot uses AI. Check for mistakes.

jobs:
build-vllm-mock:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push vllm-mock
uses: docker/build-push-action@v5
with:
context: hack/mock-images/vllm-mock
push: true
tags: ghcr.io/volcano-sh/vllm-mock:latest
Comment on lines +28 to +33
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only pushing the :latest tag makes it hard to correlate a deployed image back to a specific commit and to roll back safely. Consider also pushing an immutable tag (e.g., :sha-${{ github.sha }} and/or a semver/date tag) alongside :latest so consumers can pin and debugging is easier.

Copilot uses AI. Check for mistakes.
Comment on lines +18 to +33
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow uses docker/build-push-action@v5 without setting up Buildx. Elsewhere in the repo, image builds set up Buildx and use newer action versions (e.g. .github/workflows/build-push-release.yml uses docker/setup-buildx-action@v3 + docker/build-push-action@v6). Aligning here improves consistency and avoids relying on the default legacy builder behavior.

Copilot uses AI. Check for mistakes.

Comment on lines +28 to +34
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow hardcodes tags to ghcr.io/volcano-sh/..., which will fail in forks (the fork’s GITHUB_TOKEN can’t push to volcano-sh) and is inconsistent with existing image workflows that use ${{ github.repository_owner }} (see .github/workflows/build-push-release.yml). Consider templating the image name via ghcr.io/${{ github.repository_owner }}/... and (optionally) adding a non-latest tag (e.g., git SHA) for traceability.

Copilot uses AI. Check for mistakes.
build-sglang-mock:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push sglang-mock
uses: docker/build-push-action@v5
with:
context: hack/mock-images/sglang-mock
push: true
tags: ghcr.io/volcano-sh/sglang-mock:latest
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Publishing only the :latest tag makes rollbacks and provenance difficult (you can’t reliably map a running image back to a commit). Consider also tagging with an immutable identifier (e.g., :${{ github.sha }}) and optionally keeping :latest as a moving alias.

Copilot uses AI. Check for mistakes.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down Expand Up @@ -49,7 +49,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
4 changes: 2 additions & 2 deletions docs/kthena/docs/assets/examples/kthena-router/LLM-Mock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The mock server will return a fixed response for any input.
# You can use this mock server to test the inference router without deploying a real LLM server.
#
# NOTE: `ghcr.io/yaozengzeng/vllm-mock:latest` is built based on `https://github.com/YaoZengzeng/aibrix/tree/vllm-mock`.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
Comment on lines +5 to 6
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment “Move the image to kthena registry once it's public.” appears outdated now that the doc example already references ghcr.io/volcano-sh/vllm-mock:latest. Consider removing or updating this note to avoid confusion.

Suggested change
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built from
# `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.

Copilot uses AI. Check for mistakes.

apiVersion: apps/v1
Expand All @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down Expand Up @@ -49,7 +49,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The mock server will return a fixed response for any input.
# You can use this mock server to test the inference router without deploying a real LLM server.
#
# NOTE: `ghcr.io/yaozengzeng/vllm-mock:latest` is built based on `https://github.com/YaoZengzeng/aibrix/tree/vllm-mock`.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment “Move the image to kthena registry once it's public.” appears outdated now that this versioned doc already references ghcr.io/volcano-sh/vllm-mock:latest. Consider removing or updating this note to avoid confusion.

Suggested change
# Move the image to kthena registry once it's public.

Copilot uses AI. Check for mistakes.

apiVersion: apps/v1
Expand All @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down Expand Up @@ -49,7 +49,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The mock server will return a fixed response for any input.
# You can use this mock server to test the inference router without deploying a real LLM server.
#
# NOTE: `ghcr.io/yaozengzeng/vllm-mock:latest` is built based on `https://github.com/YaoZengzeng/aibrix/tree/vllm-mock`.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
Comment on lines +5 to 6
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment “Move the image to kthena registry once it's public.” appears outdated now that this versioned doc already references ghcr.io/volcano-sh/vllm-mock:latest. Consider removing or updating this note to avoid confusion.

Copilot uses AI. Check for mistakes.

apiVersion: apps/v1
Expand All @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down Expand Up @@ -49,7 +49,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The mock server will return a fixed response for any input.
# You can use this mock server to test the inference router without deploying a real LLM server.
#
# NOTE: `ghcr.io/yaozengzeng/vllm-mock:latest` is built based on `https://github.com/YaoZengzeng/aibrix/tree/vllm-mock`.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
Comment on lines +5 to 6
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment “Move the image to kthena registry once it's public.” appears outdated now that this versioned doc already references ghcr.io/volcano-sh/vllm-mock:latest. Consider removing or updating this note to avoid confusion.

Copilot uses AI. Check for mistakes.

apiVersion: apps/v1
Expand All @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
4 changes: 2 additions & 2 deletions examples/kthena-router/LLM-Mock-ds1.5b-Canary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down Expand Up @@ -49,7 +49,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
2 changes: 1 addition & 1 deletion examples/kthena-router/LLM-Mock-ds1.5b.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
2 changes: 1 addition & 1 deletion examples/kthena-router/LLM-Mock-ds7b.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
4 changes: 2 additions & 2 deletions examples/kthena-router/LLM-Mock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# The mock server will return a fixed response for any input.
# You can use this mock server to test the inference router without deploying a real LLM server.
#
# NOTE: `ghcr.io/yaozengzeng/vllm-mock:latest` is built based on `https://github.com/YaoZengzeng/aibrix/tree/vllm-mock`.
# NOTE: `ghcr.io/volcano-sh/vllm-mock:latest` is built based on `https://github.com/volcano-sh/kthena/tree/main/hack/mock-images/vllm-mock`.
# Move the image to kthena registry once it's public.
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note on line 6 is now outdated/confusing since the image is already in the volcano-sh GHCR namespace and the PR adds an official build/push workflow. Update or remove the comment to reflect the current publishing location/source of truth.

Suggested change
# Move the image to kthena registry once it's public.
# The image is published in the `volcano-sh` GHCR namespace by the official kthena build/publish workflow.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment “Move the image to kthena registry once it's public.” appears outdated now that the example already references ghcr.io/volcano-sh/vllm-mock:latest. Consider removing or updating this note to avoid confusion.

Suggested change
# Move the image to kthena registry once it's public.

Copilot uses AI. Check for mistakes.

apiVersion: apps/v1
Expand All @@ -21,7 +21,7 @@ spec:
spec:
containers:
- name: llm-engine
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ spec:
spec:
containers:
- name: leader
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand All @@ -39,7 +39,7 @@ spec:
spec:
containers:
- name: leader
image: ghcr.io/yaozengzeng/vllm-mock:latest
image: ghcr.io/volcano-sh/vllm-mock:latest
imagePullPolicy: IfNotPresent
env:
# specify the model name to mock
Expand Down
10 changes: 10 additions & 0 deletions hack/mock-images/sglang-mock/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "sglang_app.py"]
1 change: 1 addition & 0 deletions hack/mock-images/sglang-mock/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
flask
Loading
Loading