PalveronPalveronDocs

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-namespace

Or 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-namespace
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: true

Architecture

  • Gateway — 2-3 replicas by default. Stateless, horizontally scalable. Rolling updates have zero downtime; readiness probes hit /health and 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: true and use a managed service.
  • Redis — single deployment by default. For HA, enable Redis Sentinel via the chart's redis.sentinel.enabled flag.

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 Operator

Key metrics:

MetricTypeDescription
palveron_verify_requests_totalcounterVerify calls by decision
palveron_verify_duration_secondshistogramEnd-to-end verify latency
palveron_nge_inference_duration_secondshistogramNGE model latency per stage
palveron_flare_anchor_lag_secondsgaugeTime since last successful Flare anchor
palveron_policy_evaluations_totalcounterPolicies evaluated, labeled by action

Upgrades

helm upgrade palveron palveron/palveron -f my-values.yaml -n palveron

The chart uses RollingUpdate strategy with maxUnavailable: 0 — new pods spin up before old ones terminate, so traffic is never interrupted.

On this page