This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/chart/values.yaml
2026-03-19 18:50:27 +00:00

144 lines
4.1 KiB
YAML

# Chat Switchboard — Helm values
# helm install switchboard ./chart
# ── Images ─────────────────────────────────
backend:
image:
repository: git.gobha.me/xcaliber/chat-switchboard
tag: "" # defaults to Chart.appVersion
pullPolicy: IfNotPresent
replicaCount: 2 # v0.32.0: multi-replica HA
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: "1"
memory: 1Gi
port: 8080
frontend:
image:
repository: git.gobha.me/xcaliber/chat-switchboard-frontend
tag: "" # defaults to Chart.appVersion
pullPolicy: IfNotPresent
replicaCount: 1
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 256Mi
port: 80
# ── Database ───────────────────────────────
database:
# "postgres" or "sqlite"
driver: postgres
# For postgres: full DSN or assembled from postgres.* below
url: ""
postgres:
host: postgresql
port: 5432
user: switchboard
password: "" # set via secret
database: switchboard
sslmode: disable
# For sqlite: path inside the container (requires persistence)
sqlitePath: /data/switchboard.db
# ── Core ───────────────────────────────────
basePath: "" # URL prefix, e.g. "/dev"
environment: production
jwtSecret: "" # REQUIRED — set via secret or --set
encryptionKey: "" # REQUIRED for BYOK — set via secret
# ── Admin bootstrap ────────────────────────
admin:
username: admin
password: "" # set via secret
email: ""
# ── Storage ────────────────────────────────
storage:
backend: pvc # "pvc" or "s3"
path: /data/storage
s3:
endpoint: ""
bucket: ""
region: us-east-1
accessKey: ""
secretKey: ""
prefix: ""
forcePathStyle: true
# ── Persistence (PVC) ─────────────────────
persistence:
enabled: true
storageClass: "" # use cluster default
size: 10Gi
accessMode: ReadWriteOnce
# ── Ingress ────────────────────────────────
ingress:
enabled: true
className: traefik
annotations: {}
host: switchboard.local
tls:
enabled: false
secretName: ""
# Traefik retry middleware (auto-applied when className=traefik).
# The Middleware CRD is always created. Set annotateIngress: true to wire
# it to the ingress. Only enable after confirming the middleware CRD exists
# (Traefik invalidates the entire router if a referenced middleware is missing).
retry:
attempts: 2
initialInterval: 100ms
annotateIngress: false
# ── Auth ───────────────────────────────────
auth:
mode: builtin # builtin | mtls | oidc
oidc:
issuerURL: ""
externalIssuerURL: ""
clientID: ""
clientSecret: ""
redirectURL: ""
autoActivate: true
defaultTeam: ""
defaultRole: user
rolesClaim: "realm_access.roles"
groupsClaim: groups
adminRole: admin
mtls:
headerDN: X-SSL-Client-DN
headerVerify: X-SSL-Client-Verify
headerFingerprint: X-SSL-Client-Fingerprint
autoActivate: true
defaultTeam: ""
defaultRole: user
# ── Tuning ─────────────────────────────────
sessionExpiryDays: 30
workflowStaleHours: 72
providerAutoDisableThreshold: 3
extraction:
mode: inline
concurrency: 3
workspace:
indexingEnabled: true
indexConcurrency: 2
# ── CORS ───────────────────────────────────
corsAllowedOrigins: "*"
# ── Existing secret reference ──────────────
# If set, skips creating a Secret and mounts this one instead.
existingSecret: ""
# ── Image pull secrets ─────────────────────
imagePullSecrets: []