Kubernetes (Helm)
Production-grade deployment of Palveron on Kubernetes with Helm.
The Helm chart packages the gateway, dashboard, PostgreSQL, and Redis with sensible defaults for production. Rolling updates, horizontal scaling, and zero-downtime upgrades are wired in.
Install
helm repo add palveron https://charts.palveron.com
helm repo update
helm install palveron palveron/palveron \
-f my-values.yaml \
-n palveron --create-namespaceOr from the source repo:
git clone https://github.com/palveron/palveron-deploy.git
helm install palveron ./palveron-deploy/helm/palveron \
-f my-values.yaml -n palveron --create-namespaceRecommended my-values.yaml
gateway:
replicas: 3 # stateless — scale horizontally
resources:
requests: { cpu: 500m, memory: 1Gi }
limits: { cpu: 2, memory: 4Gi } # 4Gi covers NGE ONNX models
env:
DATABASE_URL: postgresql://...
OPENAI_API_KEY: sk-...
INTERNAL_PROXY_SECRET: ${INTERNAL_PROXY_SECRET}
dashboard:
replicas: 2
ingress:
enabled: true
host: app.example.com
tlsSecret: app-tls
postgres:
external: true # use managed PG (Supabase, RDS, Cloud SQL)
redis:
enabled: trueArchitecture
- Gateway — 2-3 replicas by default. Stateless, horizontally scalable. Rolling updates have zero downtime; readiness probes hit
/healthand reject pods until NGE models load. - Dashboard — 2 replicas behind an ingress. Standalone Next.js output, ~150 MB image.
- PostgreSQL — bundled chart is StatefulSet with a single replica plus PVC. For HA, set
postgres.external: trueand use a managed service. - Redis — single deployment by default. For HA, enable Redis Sentinel via the chart's
redis.sentinel.enabledflag.
Observability
The chart exposes Prometheus metrics on :9090/metrics per service. Wire them into your existing Prometheus + Grafana stack:
gateway:
metrics:
enabled: true
serviceMonitor: true # creates a ServiceMonitor for Prometheus OperatorKey metrics:
| Metric | Type | Description |
|---|---|---|
palveron_verify_requests_total | counter | Verify calls by decision |
palveron_verify_duration_seconds | histogram | End-to-end verify latency |
palveron_nge_inference_duration_seconds | histogram | NGE model latency per stage |
palveron_flare_anchor_lag_seconds | gauge | Time since last successful Flare anchor |
palveron_policy_evaluations_total | counter | Policies evaluated, labeled by action |
Upgrades
helm upgrade palveron palveron/palveron -f my-values.yaml -n palveronThe chart uses RollingUpdate strategy with maxUnavailable: 0 — new pods spin up before old ones terminate, so traffic is never interrupted.