Skip to content

feat: add Helm chart - #621

Merged
sng-asyncfunc merged 1 commit into
AsyncFuncAI:mainfrom
lbarrosby:helm-chart
Nov 4, 2026
Merged

sng-asyncfunc merged 1 commit into
AsyncFuncAI:mainfrom
lbarrosby:helm-chart

Conversation

@lbarrosby

Copy link
Copy Markdown
Contributor

Follow-up to #45: a Helm chart in charts/deepwiki-open.

What's in it

  • One Deployment with the published ghcr.io/asyncfuncai/deepwiki-open image (API on 8001 and frontend on 3000, same container as in docker-compose). Single replica with Recreate, since the app keeps local state.
  • Service with both ports, optional Ingress and Gateway API HTTPRoute.
  • Provider keys from an existing Secret (secret.existingSecret); no secret is created by default. Non-secret settings (DEEPWIKI_EMBEDDER_TYPE, OLLAMA_HOST, DEEPWIKI_AUTH_MODE...) go in a ConfigMap.
  • PVC for ~/.adalflow (repos, embeddings, wiki cache), with existingClaim support.
  • Probes: startup and liveness on /health, readiness on /api/auth/status through the Next.js rewrite, so the pod is only ready when both processes are up.
  • Runs as UID 1000 with a read-only root filesystem. The image has no USER, so the chart sets HOME to a writable volume and mounts emptyDirs for logs, the Next.js cache and /tmp.
  • values.schema.json, helm-unittest tests, README generated with helm-docs, NOTES and a helm test pod.
  • .github/workflows/helm-chart.yml: chart-testing lint, unit tests and install on kind. Only runs when charts/** changes.
  • Short "Kubernetes (Helm)" section in the main README.

One thing worth knowing: since NEXT_PUBLIC_WS_BASE_URL is fixed at build time, the published image opens the chat WebSocket on <page host>:8001. The chart README covers the ways to expose that (LoadBalancer, a second HTTPRoute on a port 8001 listener, or a custom build plus ingress.apiPaths).

Install

kubectl create namespace deepwiki
kubectl -n deepwiki create secret generic deepwiki-keys \
  --from-literal=GOOGLE_API_KEY=... --from-literal=OPENAI_API_KEY=...
helm upgrade --install deepwiki ./charts/deepwiki-open -n deepwiki \
  --set secret.existingSecret=deepwiki-keys
kubectl -n deepwiki port-forward svc/deepwiki-deepwiki-open 3000:3000 8001:8001

Testing

helm lint --strict, ct lint, helm unittest (23 tests), helm template + kubeconform with default, Ingress, Gateway API, existing Secret/claim and no-persistence values. The new workflow also ran on my fork: the chart installed on kind with the latest image, both probes went green and helm test passed.

Adds charts/deepwiki-open for the published ghcr image: one Deployment
running the API and the frontend, a Service with both ports, optional
Ingress and Gateway API HTTPRoute, provider keys from an existing Secret,
non-secret settings in a ConfigMap and a PVC for ~/.adalflow.

Includes values.schema.json, helm-unittest tests, a helm-docs README and
a workflow that lints, unit tests and installs the chart on kind.

Refs AsyncFuncAI#45
@sng-asyncfunc
sng-asyncfunc merged commit b81b40e into AsyncFuncAI:main Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants