Skip to content

feat: add Helm chart for Kubernetes deployment#800

Merged
qin-ctx merged 1 commit intovolcengine:mainfrom
jackjin1997:feat/helm-chart
Mar 20, 2026
Merged

feat: add Helm chart for Kubernetes deployment#800
qin-ctx merged 1 commit intovolcengine:mainfrom
jackjin1997:feat/helm-chart

Conversation

@jackjin1997
Copy link
Copy Markdown
Contributor

Summary

Closes #724

Adds a complete Helm chart for deploying OpenViking on Kubernetes.

What's Included

deploy/helm/
├── README.md                    # Installation guide
└── openviking/
    ├── Chart.yaml
    ├── values.yaml              # All configurable values
    └── templates/
        ├── _helpers.tpl
        ├── deployment.yaml
        ├── service.yaml
        ├── pvc.yaml
        ├── configmap.yaml
        ├── ingress.yaml
        └── NOTES.txt

Key Design Decisions

  • Recreate strategy — RocksDB requires single-writer access, so rolling updates would cause lock contention
  • Server binds to 0.0.0.0 — Required for Kubernetes service routing (unlike the default 127.0.0.1)
  • Config checksum annotation — Pod automatically restarts when ov.conf changes via ConfigMap
  • PVC retained on uninstall — Prevents accidental data loss
  • Values derived from docker-compose.yml — Port 1933, image ghcr.io/volcengine/openviking, data volume at /app/data

Quick 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=50Gi

Checklist

  • Chart follows Helm best practices (standard labels, helpers, NOTES.txt)
  • All docker-compose.yml settings mapped to values.yaml
  • PVC for RocksDB data persistence
  • Optional ingress support
  • Health probes matching Dockerfile HEALTHCHECK
  • README with installation instructions

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
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown
Collaborator

@qin-ctx qin-ctx left a comment

Choose a reason for hiding this comment

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

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: ""
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.

[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.

@qin-ctx qin-ctx self-assigned this Mar 20, 2026
@qin-ctx qin-ctx merged commit 723069c into volcengine:main Mar 20, 2026
1 check was pending
@github-project-automation github-project-automation bot moved this from Backlog to Done in OpenViking project Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add Helm Chart for OpenViking Deployment

3 participants