feat: add Helm chart for Kubernetes deployment#800
Conversation
Closes volcengine#724 Adds a complete Helm chart at deploy/helm/openviking/ with: - Deployment with Recreate strategy (RocksDB single-writer) - PVC for persistent data storage - ConfigMap for ov.conf configuration - Optional ingress support - Health probes matching Dockerfile HEALTHCHECK - Configurable resources, replicas, and all ov.conf settings - Installation guide at deploy/helm/README.md
|
|
qin-ctx
left a comment
There was a problem hiding this comment.
Thanks for the contribution! The chart structure and Helm best practices look solid. However, there's a critical issue with the default configuration that will prevent the server from starting at all — see inline comment.
| model: "text-embedding-3-large" | ||
| max_concurrent: 10 | ||
| vlm: | ||
| api_base: "" |
There was a problem hiding this comment.
[Bug] (blocking) The default config sets server.host: "0.0.0.0" but does not include server.root_api_key. The server's security validation in openviking/server/config.py:90-117 calls sys.exit(1) when the host is non-localhost and root_api_key is not configured. This means a default helm install will result in the Pod entering CrashLoopBackOff immediately.
Suggested fix — add root_api_key to the server config section:
server:
host: "0.0.0.0"
port: 1933
workers: 1
root_api_key: "" # REQUIRED for non-localhost: set a key or the server will refuse to start
cors_origins:
- "*"Also consider adding a note in NOTES.txt reminding users to set this value.
Summary
Closes #724
Adds a complete Helm chart for deploying OpenViking on Kubernetes.
What's Included
Key Design Decisions
Recreatestrategy — RocksDB requires single-writer access, so rolling updates would cause lock contention0.0.0.0— Required for Kubernetes service routing (unlike the default127.0.0.1)ov.confchanges via ConfigMapdocker-compose.yml— Port 1933, imageghcr.io/volcengine/openviking, data volume at/app/dataQuick Start
helm install openviking deploy/helm/openviking # With custom config helm install openviking deploy/helm/openviking \ --set config.embedding.api_key=your-key \ --set persistence.size=50GiChecklist