Skip to content

feat(helm): add official Helm chart for Kubernetes deployment (#49) - #2031

Open
sloemo01 wants to merge 1 commit into
repowise-dev:mainfrom
sloemo01:feat/helm-chart
Open

feat(helm): add official Helm chart for Kubernetes deployment (#49)#2031
sloemo01 wants to merge 1 commit into
repowise-dev:mainfrom
sloemo01:feat/helm-chart

Conversation

@sloemo01

@sloemo01 sloemo01 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

What

Fixes #49. Official Helm chart for Kubernetes deployment, per the constraints in the thread.

Root cause

No first-class Kubernetes deployment path existed — docker-compose was the only orchestration story, and it doesn't cover PVC lifecycle, Secret management, or probes.

Changes

  • SQLite + PVC by default — matches the project's store; PostgreSQL is opt-in via postgresql.enabled (switches REPOWISE_DB_URL to a DSN, suppresses the SQLite PVC).
  • API keys via Secret refs — chart generates a Secret from values or references an existing one; nothing baked into the Deployment.
  • Probes hit /health — the unauthenticated liveness/readiness endpoint.
  • Built on the existing docker/Dockerfile image — no new image; same env vars and volume mounts as docker-compose, mapped to k8s resources.
  • Repos mount read-only at /repos/<name> (hostPath or PVC), mirroring docker-compose.
  • Replicas pinned to 1 with a note: the SQLite file and vector store live on the PVC, so a second replica would race on the same volume.

Structure: charts/repowise/ — Chart.yaml, values.yaml, templates (Deployment, Service, PVC, Secret, Ingress, ServiceAccount, NOTES), README with config reference.

Tests

  • helm lint clean; helm template renders correctly for both the SQLite default and PostgreSQL opt-in paths, and with ingress enabled.

Note: test_plugin_content is red on main itself (v0.47.0 release bug, unrelated to this PR).

…se-dev#49)

SQLite + PVC by default (matching the project's store), PostgreSQL opt-in
via values. API keys mount from a Secret (generated or existing), probes
hit the unauthenticated /health endpoint, and the chart builds on the
existing docker/Dockerfile image — no new image. Repos mount read-only at
/repos/<name>, mirroring docker-compose. Replicas pinned to 1: the SQLite
file and vector store live on the PVC, so a second replica would race on
the same volume.

Verified: helm lint clean, helm template renders Deployment/Service/PVC/
Secret/Ingress/ServiceAccount for both the SQLite and PostgreSQL paths.
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.

feat: Add Helm chart for Kubernetes deployment

1 participant