* feat(helm): add persistent volume for local model cache When using local reranker (e.g., BAAI/bge-reranker-v2-m3) or local embedding models, the models are downloaded to /home/hindsight/.cache on every pod restart, causing slow startup and unnecessary bandwidth. Add optional persistent volume support: - api: PVC mounted at /home/hindsight/.cache - worker: volumeClaimTemplate (StatefulSet) at same path Disabled by default. Enable via: api.persistence.modelCache.enabled: true worker.persistence.modelCache.enabled: true Closes #860 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(helm): add extraVolumes and extraVolumeMounts for api and worker Allow users to mount arbitrary volumes (configMaps, secrets, emptyDir, etc.) into api and worker pods via values, following common helm chart library conventions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| templates | ||
| .helmignore | ||
| Chart.lock | ||
| Chart.yaml | ||
| README.md | ||
| values.yaml | ||
Hindsight Helm Chart
Helm chart for deploying Hindsight - a temporal-semantic-entity memory system for AI agents.
Prerequisites
- Kubernetes 1.19+
- Helm 3.0+
- PostgreSQL database (external or bundled)
Quick Start
# Update dependencies first
helm dependency update ./helm/hindsight
# Install (PostgreSQL included by default)
export OPENAI_API_KEY="sk-your-openai-key"
helm upgrade hindsight --install ./helm/hindsight -n hindsight --create-namespace \
--set api.secrets.HINDSIGHT_API_LLM_API_KEY="$OPENAI_API_KEY"
To use an external database instead:
helm install hindsight ./helm/hindsight -n hindsight --create-namespace \
--set api.secrets.HINDSIGHT_API_LLM_API_KEY="sk-your-openai-key" \
--set postgresql.enabled=false \
--set postgresql.external.host=my-postgres.example.com \
--set postgresql.external.password=mypassword
Installation
Add the repository (if published)
helm repo add hindsight https://your-helm-repo.com
helm repo update
Install with custom values file
Create a values-override.yaml:
api:
secrets:
HINDSIGHT_API_LLM_API_KEY: "sk-your-openai-key"
postgresql:
external:
host: "my-postgres.example.com"
password: "mypassword"
Then install:
helm install hindsight ./helm/hindsight -n hindsight --create-namespace -f values-override.yaml
Configuration
Key Values
| Parameter | Description | Default |
|---|---|---|
version |
Default image tag for all components | 0.1.0 |
api.enabled |
Enable the API component | true |
api.image.repository |
API image repository | hindsight/api |
api.image.tag |
API image tag (defaults to version) |
- |
api.service.port |
API service port | 8888 |
controlPlane.enabled |
Enable the control plane | true |
controlPlane.image.repository |
Control plane image repository | hindsight/control-plane |
controlPlane.image.tag |
Control plane image tag (defaults to version) |
- |
controlPlane.service.port |
Control plane service port | 3000 |
postgresql.enabled |
Deploy PostgreSQL as subchart | true |
postgresql.external.host |
External PostgreSQL host | postgresql |
postgresql.external.port |
External PostgreSQL port | 5432 |
postgresql.external.database |
Database name | hindsight |
postgresql.external.username |
Database username | hindsight |
ingress.enabled |
Enable ingress | false |
autoscaling.enabled |
Enable HPA | false |
Environment Variables
All environment variables in api.env and controlPlane.env are automatically added to the respective pods. Sensitive values should go in api.secrets or controlPlane.secrets.
api:
env:
HINDSIGHT_API_LLM_PROVIDER: "openai"
HINDSIGHT_API_LLM_MODEL: "gpt-4"
secrets:
HINDSIGHT_API_LLM_API_KEY: "your-api-key"
HINDSIGHT_API_LLM_BASE_URL: "https://api.openai.com/v1"
controlPlane:
env:
NODE_ENV: "production"
secrets: {}
External Database
To connect to an external PostgreSQL database:
postgresql:
enabled: false
external:
host: "my-postgres.example.com"
port: 5432
database: "hindsight"
username: "hindsight"
password: "your-password"
Ingress
To expose the services via ingress:
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: hindsight.example.com
paths:
- path: /
pathType: Prefix
service: controlPlane
- path: /api
pathType: Prefix
service: api
tls:
- secretName: hindsight-tls
hosts:
- hindsight.example.com
Upgrading
helm upgrade hindsight ./helm/hindsight -n hindsight
Uninstalling
helm uninstall hindsight -n hindsight
Components
The chart deploys:
- API: The main Hindsight API server for memory operations
- Control Plane: Web UI for managing agents and viewing memories
Development
Lint the chart
helm lint ./helm/hindsight
Template locally
helm template hindsight ./helm/hindsight --debug
Dry run installation
helm install hindsight ./helm/hindsight --dry-run --debug