Upgrade and Rollback
This runbook covers how to upgrade, pin, and roll back each release surface of the vLLM Semantic Router in a production environment.
Release Channels
| Channel | Tag pattern | Updated on | Use case |
|---|---|---|---|
| Versioned | v0.3.0 / 0.3.0 | Tagged releases only | Production — immutable, recommended |
| Nightly | nightly-20260115 | Daily at 02:00 UTC | Pre-release testing |
| Latest | latest | Every push to main + releases | Development only |
Always use a versioned tag in production. It is immutable — the digest never changes for a given version tag. Find the latest release on the GitHub Releases page.
Prerequisites
helm≥ 3.14 (for Helm OCI operations)kubectlconfigured for your target clusterpip≥ 22 (for Python CLI)dockerorpodman(for direct image operations)
1. Checking Your Current Version
Helm release
helm list -n vllm-semantic-router-system
helm history semantic-router -n vllm-semantic-router-system
The CHART column shows the chart version (e.g. semantic-router-0.2.0) and
APP VERSION shows the image tag that chart deployed.
Running container image
# Get the image tag currently used by the extproc deployment
kubectl get deployment -n vllm-semantic-router-system \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.template.spec.containers[0].image}{"\n"}{end}'
Python CLI
vllm-sr --version
pip show vllm-sr
2. Upgrading
2a. Helm chart upgrade
Always upgrade to a specific version. Never rely on latest in production.
# Pull the chart metadata first (optional but useful to verify it exists)
helm show chart oci://ghcr.io/vllm-project/charts/semantic-router --version 0.3.0
# Upgrade to a specific version
# --reset-then-reuse-values (Helm ≥ 3.14) resets to the new chart's defaults
# first, then re-applies your previous overrides on top. This is safer than
# --reuse-values alone, which breaks if the new chart adds new required values.
helm upgrade semantic-router \
oci://ghcr.io/vllm-project/charts/semantic-router \
--version 0.3.0 \
--namespace vllm-semantic-router-system \
--reset-then-reuse-values \
--wait \
--timeout 10m
--reset-then-reuse-values, not --reuse-values, for cross-version upgrades--reuse-values only merges your old stored values and skips new chart defaults,
which causes template errors when a new chart version introduces new required
values. --reset-then-reuse-values (Helm ≥ 3.14) resets to the new defaults
first, then re-applies your overrides — it is always safe to use.
If you are on Helm < 3.14, supply your configuration explicitly with -f your-values.yaml instead.
Verify after upgrade:
helm status semantic-router -n vllm-semantic-router-system
kubectl rollout status deployment/semantic-router -n vllm-semantic-router-system
2b. Docker image upgrade (non-Helm deployments)
Find the latest version on the GitHub Releases page, then:
# Pull by version tag (substitute podman for docker if using podman)
docker pull ghcr.io/vllm-project/semantic-router/extproc:v0.3.0
docker pull ghcr.io/vllm-project/semantic-router/vllm-sr:v0.3.0
docker pull ghcr.io/vllm-project/semantic-router/anthropic-shim:v0.3.0
# Get the immutable digest for maximum pinning stability
DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' \
ghcr.io/vllm-project/semantic-router/extproc:v0.3.0)
echo "Use digest: ${DIGEST}"
For Kubernetes manifests, pin to the digest, not the tag:
image: ghcr.io/vllm-project/semantic-router/extproc@sha256:<digest>
Published versioned images for a full release:
| Image | Typical owner |
|---|---|
ghcr.io/vllm-project/semantic-router/extproc:v0.3.0 | Router ExtProc runtime |
ghcr.io/vllm-project/semantic-router/extproc-rocm:v0.3.0 | ROCm router ExtProc runtime |
ghcr.io/vllm-project/semantic-router/vllm-sr:v0.3.0 | Local/runtime CLI image |
ghcr.io/vllm-project/semantic-router/vllm-sr-rocm:v0.3.0 | ROCm local/runtime CLI image |
ghcr.io/vllm-project/semantic-router/anthropic-shim:v0.3.0 | Anthropic-compatible API shim image |
ghcr.io/vllm-project/semantic-router/dashboard:v0.3.0 | Dashboard backend/frontend image |
ghcr.io/vllm-project/semantic-router/llm-katan:v0.3.0 | Fleet simulation service image |
ghcr.io/vllm-project/semantic-router/operator:v0.3.0 | Kubernetes operator image |
ghcr.io/vllm-project/semantic-router/operator-bundle:v0.3.0 | Operator bundle image |
2c. Python CLI upgrade
pip install --upgrade vllm-sr==0.3.0
vllm-sr --version # verify
To upgrade to the latest stable release:
pip install --upgrade vllm-sr