Skip to content

feat(demo): add llm-d-async dispatcher support to deploy-k8s.sh - #607

Merged
yizhaodev merged 1 commit into
llm-d:mainfrom
yizhaodev:zhao-doc
Jul 20, 2026
Merged

feat(demo): add llm-d-async dispatcher support to deploy-k8s.sh#607
yizhaodev merged 1 commit into
llm-d:mainfrom
yizhaodev:zhao-doc

Conversation

@yizhaodev

@yizhaodev yizhaodev commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Why is this PR needed?

The deploy-k8s.sh demo script only supports sync dispatch. Users cannot demo or test the async dispatch integration with llm-d-async.

#458

What does this PR do?

Adds ENABLE_DISPATCHER=true support to the deploy-k8s.sh demo script:

  • Processor config: switches to dispatchMode: async with inferencePoolName
  • Prometheus: deploys a minimal instance scraping EPP + vLLM metrics (required for prometheus-budget gate)
  • async-processor: deploys via Helm chart, routes through the existing Internal Gateway (pass-through headers carry the user token for AuthPolicy)
  • Verification: verify_dispatcher_config (install) checks processor config + Prometheus metrics; verify_dispatcher_runtime (test) checks successful_requests_total + dispatch_budget + pool_worker_limit
  • Docs: updates deploy-k8s.md and docs/guides/deploy-k8s.md with async dispatch option

How was this tested?

  • Manual testing performed
  • Full end-to-end on OpenShift: ENABLE_DISPATCHER=true ./deploy-k8s.sh install && ./deploy-k8s.sh test — 13/13 tests passed + dispatcher config/runtime verification passed

Checklist

  • Commits are signed off (git commit -s) per DCO
  • Code follows project contributing guidelines
  • Pre-commit checks pass (make pre-commit)

Comment thread examples/deploy-demo/deploy-k8s.sh Outdated
Comment on lines +1366 to +1368
kubectl delete deployment,svc,configmap,sa prometheus -n "${LLM_NAMESPACE}" 2>/dev/null || true
kubectl delete clusterrole,clusterrolebinding prometheus 2>/dev/null || true

@j-mok-dev j-mok-dev Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit: The ConfigMap created by install_prometheus is named prometheus-config, but the uninstall line targets configmap prometheus:

kubectl delete deployment,svc,configmap,sa prometheus -n "${LLM_NAMESPACE}" 2>/dev/null || true 

this leaves prometheus-config behind after uninstall

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

good catch, fixed.

Comment thread examples/deploy-demo/deploy-k8s.sh Outdated
errors=$((errors + 1))
fi

# 5. Prometheus has the metrics that prometheus-budget gate needs

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

broken numbering. should be 4

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

fixed, thanks

Comment thread docs/guides/deploy-k8s.md
imagePullPolicy: IfNotPresent
messageQueueImpl: "redis-sortedset"
concurrency: 1
prometheusURL: "${PROMETHEUS_URL}"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The script sets prometheusCacheTTL: "0s" in deploy_dispatcher, but this snippet doesn't include it. Without it, the default cache TTL applies and dispatch budget can be stale during short demo runs.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

good catch! thanks

Signed-off-by: Raymond Zhao <zhaoeryi@gmail.com>
@yizhaodev
yizhaodev merged commit e558b70 into llm-d:main Jul 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants