Skip to main content
This document provides a complete reference for configuring Bud-Stack via Helm values.
Run helm show values infra/helm/bud/ to see all available configuration options.

Values Files Overview

The Helm chart provides several configuration files for different purposes:

Core Configuration Files

FilePurpose
values.yamlDefault configuration - base settings for all deployments. Contains all available parameters with sensible defaults.
example.standalone.yamlExample for standalone/development deployments with nightly images, Keel auto-updates, and minimal storage.
example.secrets.yamlTemplate for sensitive configuration - contains example secrets with generation commands. Copy and customize for your deployment.

Environment-Specific Overrides

FilePurpose
values.dev.yamlDevelopment environment overrides
values.stage.yamlStaging environment overrides
values.enc.yamlEncrypted production secrets (SOPS-encrypted)

Example: values.yaml (Default Configuration)

The main values.yaml contains all configurable parameters:
# Global settings
imagePullPolicy: "IfNotPresent"
deploymentAnnotations: {}

# Storage configuration
storage:
  budmodelRegistry:
    className: ""
    size: 32Gi

# Ingress configuration
ingress:
  enabled: true
  https: disabled
  hosts:
    root: "bud.example.com"

# Microservices configuration
microservices:
  budapp:
    enabled: true
    image: budstudio/budapp:0.4.5
    # ... service-specific settings

Example: example.standalone.yaml

For standalone deployments with auto-updates:
ingress:
  https: disabled
  hosts:
    root: bane.tsnet.sinanmohd.com

imagePullPolicy: "Always"
deploymentAnnotations:
  keel.sh/policy: force
  keel.sh/trigger: poll
  keel.sh/match-tag: true
  keel.sh/pollSchedule: "@every 1m"

storage:
  budmodelRegistry:
    size: "128Gi"

microservices:
  budadmin:
    image: budstudio/budadmin:nightly
  budapp:
    image: budstudio/budapp:nightly
  # ... other nightly images
  global:
    env:
      SUPER_USER_EMAIL: root@example.com
      SUPER_USER_PASSWORD: <generate-with-tr-command>

Example: example.secrets.yaml

Template for sensitive values (copy and customize):
microservices:
  rsaKeys:
    # tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32
    privateKeyPassword: <generate-random-password>
    # Generate with: openssl genrsa -aes256 -out private_key.pem 2048
    privateKey: <paste-your-encrypted-pem-key-here>
    # Generate with: openssl rsa -in private_key.pem -pubout -out public_key.pem
    publicKey: <paste-your-public-pem-key-here>
  budapp:
    env:
      # tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 64
      JWT_SECRET_KEY: <generate-64-char-secret>
      # https://huggingface.co/docs/hub/en/security-tokens
      HF_TOKEN: <your-huggingface-token>
      # tr -dc 'a-f0-9' < /dev/urandom | head -c 88
      AES_KEY_HEX: <generate-88-char-hex>
  global:
    env:
      OPENAI_API_KEY: <your-openai-key>
      # tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 64
      PASSWORD_SALT: <generate-64-char-salt>
      SUPER_USER_EMAIL: root@example.com
      SUPER_USER_PASSWORD: <generate-secure-password>

keycloak:
  auth:
    adminUser: admin
    adminPassword: <secure-password>

daprExtra:
  crypto:
    symmetricKey: <generate-32-char-key>
    # Generate with: openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096
    asymmetricKey: <paste-your-4096-bit-rsa-key-here>

minio:
  auth:
    rootUser: bud-runtime
    rootPassword: <secure-password>

Usage Examples

Values files are merged in order, with later files overriding earlier ones. Always start with values.yaml for defaults:
# Development deployment with standalone config
helm install bud infra/helm/bud/ \
  -f infra/helm/bud/values.yaml \
  -f infra/helm/bud/example.standalone.yaml \
  -n bud-dev --create-namespace

# Production with separate secrets file
helm install bud infra/helm/bud/ \
  -f infra/helm/bud/values.yaml \
  -f my-secrets.yaml \
  -n bud-prod --create-namespace

# Production with encrypted secrets (SOPS)
sops -d infra/helm/bud/values.enc.yaml > /tmp/secrets.yaml
helm install bud infra/helm/bud/ \
  -f infra/helm/bud/values.yaml \
  -f /tmp/secrets.yaml \
  -n bud-prod
rm /tmp/secrets.yaml

# Full production deployment (defaults + environment + secrets)
helm install bud infra/helm/bud/ \
  -f infra/helm/bud/values.yaml \
  -f infra/helm/bud/values.stage.yaml \
  -f my-secrets.yaml \
  -n bud-stage --create-namespace
Always keep your secrets file (my-secrets.yaml or values.enc.yaml) out of version control. Use SOPS encryption for GitOps workflows.

Global Configuration

ParameterDescriptionDefault
imagePullSecretsList of Kubernetes secrets for pulling images from private registries[]
imagePullPolicyImage pull policy for all containers. Options: Always, IfNotPresent, NeverIfNotPresent
deploymentAnnotationsAnnotations applied to all deployments (e.g., for Keel auto-updates){}
global.nodeSelectorNode selector applied to all microservices{}
global.affinityAffinity rules applied to all microservices{}

Ingress Configuration

ParameterDescriptionDefault
ingress.enabledEnable ingress resources for external accesstrue
ingress.httpsTLS mode. Options: disabled, internal (self-signed), external (cert-manager)disabled
ingress.hosts.rootRoot domain for the platform. Subdomains are auto-derived (e.g., admin., api., gateway.)bud.example.com
ingress.hosts.budadminOverride subdomain for budadmin frontend"" (auto: admin.{root})
ingress.hosts.budappOverride subdomain for budapp API"" (auto: api.{root})
ingress.hosts.budgatewayOverride subdomain for inference gateway"" (auto: gateway.{root})
ingress.hosts.s3Override subdomain for MinIO S3"" (auto: s3.{root})
ingress.hosts.onyxOverride subdomain for Onyx chat"" (auto: chat.{root})

Storage Configuration

ParameterDescriptionDefault
storage.budmodelRegistry.classNameStorage class for model registry PVC. Empty uses cluster default""
storage.budmodelRegistry.sizeSize of model registry persistent volume32Gi
storage.budmodelAddDir.classNameStorage class for additional model directory""
storage.budmodelAddDir.sizeSize of additional model directory20Gi
storage.budevalDataset.classNameStorage class for evaluation datasets""
storage.budevalDataset.sizeSize of evaluation datasets volume32Gi
storage.budappStaticDir.classNameStorage class for budapp static files""
storage.budappStaticDir.sizeSize of static files volume20Gi

PostgreSQL Configuration

ParameterDescriptionDefault
postgresql.enabledDeploy PostgreSQL as part of the charttrue
postgresql.architecturePostgreSQL architecture. Options: standalone, replicationstandalone
postgresql.auth.postgresPasswordPassword for the postgres admin userbud
postgresql.auth.usernameDefault database usernamebud
postgresql.auth.passwordDefault database passwordbud
postgresql.primary.resources.requests.memoryMemory request for PostgreSQL256Mi
postgresql.primary.resources.limits.memoryMemory limit for PostgreSQL512Mi
postgresql.primary.nodeSelectorNode selector for PostgreSQL pod{}
postgresqlExtra.autoCreateDBList of databases to auto-create on startup[keycloak, budask, budapp, ...]

Valkey (Redis) Configuration

ParameterDescriptionDefault
valkey.enabledDeploy Valkey (Redis-compatible) as part of the charttrue
valkey.architectureValkey architecture. Options: standalone, replicationstandalone
valkey.auth.passwordValkey authentication passwordbud
valkey.commonConfigurationRedis configuration. Includes keyspace notifications for DaprSee values.yaml
valkey.primary.resources.requests.memoryMemory request for Valkey512Mi
valkey.primary.resources.limits.memoryMemory limit for Valkey1Gi
valkey.primary.livenessProbe.initialDelaySecondsInitial delay for liveness probe30
valkey.primary.livenessProbe.failureThresholdFailure threshold for liveness probe10

ClickHouse Configuration

ParameterDescriptionDefault
clickhouse.enabledDeploy ClickHouse for analyticstrue
clickhouse.replicaCountNumber of ClickHouse replicas1
clickhouse.shardsNumber of ClickHouse shards1
clickhouse.auth.usernameClickHouse admin usernamebud
clickhouse.auth.passwordClickHouse admin passwordbud
clickhouse.resources.requests.memoryMemory request for ClickHouse1Gi
clickhouse.resources.limits.memoryMemory limit for ClickHouse4Gi
clickhouse.keeper.replicaCountNumber of ClickHouse Keeper replicas1
clickhouseExtra.autoCreateDBList of databases to auto-create[budproxy, budeval, metrics]

MinIO Configuration

ParameterDescriptionDefault
minio.enabledDeploy MinIO for object storagetrue
minio.auth.rootUserMinIO root access keyRequired
minio.auth.rootPasswordMinIO root secret keyRequired
minio.resources.requests.memoryMemory request for MinIO512Mi
minio.resources.limits.memoryMemory limit for MinIO1024Mi
minio.provisioning.enabledEnable automatic bucket provisioningtrue
minio.provisioning.bucketsList of buckets to create[novu-local, models-registry, model-info, onyx-file-store-bucket]

Keycloak Configuration

ParameterDescriptionDefault
keycloak.enabledDeploy Keycloak for authenticationtrue
keycloak.proxyProxy mode for Keycloakedge
keycloak.auth.adminUserKeycloak admin usernameadmin
keycloak.auth.adminPasswordKeycloak admin passwordRequired
keycloak.resources.limits.memoryMemory limit for Keycloak2Gi
keycloak.postgresql.enabledUse embedded PostgreSQL (should be false to use chart’s PostgreSQL)false
keycloak.externalDatabase.hostExternal PostgreSQL host{{ $.Release.Name }}-postgresql
keycloak.externalDatabase.databaseKeycloak database namekeycloak

Kafka Configuration

ParameterDescriptionDefault
kafka.enabledDeploy Kafka for event streamingtrue
kafka.clusterIdKafka cluster identifierbud
kafka.controller.resources.requests.memoryMemory request for Kafka controller1024Mi
kafka.controller.resources.limits.memoryMemory limit for Kafka controller2048Mi
kafka.sasl.client.usersSASL usernames for client authentication[budproxy, dapr]
kafka.sasl.client.passwordsSASL passwords for client authentication[budproxy, dapr]

MongoDB Configuration

ParameterDescriptionDefault
mongodb.enabledDeploy MongoDB for document storagetrue
mongodb.architectureMongoDB architecturestandalone
mongodb.auth.enabledEnable MongoDB authenticationtrue
mongodb.auth.usernamesMongoDB usernames[novu_user]
mongodb.auth.passwordsMongoDB passwords[novu_password]
mongodb.auth.databasesMongoDB databases[novu_db]

Microservices - budapp

Main API service handling users, projects, models, and endpoints.
ParameterDescriptionDefault
microservices.budapp.enabledEnable budapp deploymenttrue
microservices.budapp.imageContainer image for budappbudstudio/budapp:0.4.5
microservices.budapp.dapridDapr application IDbudapp
microservices.budapp.corsOriginsAllowed CORS origins[http://localhost:3000, http://localhost:3001]
microservices.budapp.env.KEYCLOAK_SERVER_URLKeycloak server URLhttp://{{ $.Release.Name }}-keycloak/
microservices.budapp.env.DEFAULT_REALM_NAMEDefault Keycloak realmbud-keycloak
microservices.budapp.env.KEYCLOAK_VERIFY_SSLVerify Keycloak SSL certificatesfalse
microservices.budapp.env.BUD_CONNECT_BASE_URLBud Connect service URLhttps://budconnect.bud.studio
microservices.budapp.env.CLOUD_MODEL_SEEDER_ENGINEModel seeder engine typetensorzero
microservices.budapp.nodeSelectorNode selector for budapp{}

Microservices - budadmin

Next.js frontend dashboard.
ParameterDescriptionDefault
microservices.budadmin.enabledEnable budadmin deploymenttrue
microservices.budadmin.imageContainer image for budadminbudstudio/budadmin:0.4.5
microservices.budadmin.env.NEXT_PUBLIC_LOGO_URLCustom logo URL for dashboard""
microservices.budadmin.env.NEXT_PUBLIC_LOGO_AUTH_URLCustom logo URL for auth pages""
microservices.budadmin.env.NEXT_PUBLIC_FAVICON_URLCustom favicon URL""
microservices.budadmin.env.NEXT_PUBLIC_ENABLE_DEV_MODEEnable development features (build-time only)""
microservices.budadmin.nodeSelectorNode selector for budadmin{}

Microservices - budcluster

Cluster lifecycle management service.
ParameterDescriptionDefault
microservices.budcluster.enabledEnable budcluster deploymenttrue
microservices.budcluster.imageContainer image for budclusterbudstudio/budcluster:0.4.5
microservices.budcluster.dapridDapr application IDbudcluster
microservices.budcluster.env.LOG_LEVELLogging levelINFO
microservices.budcluster.env.RSA_KEY_NAMERSA key filename for credential encryptionrsa-private-key.pem
microservices.budcluster.env.VOLUME_TYPEVolume type for model storagelocal
microservices.budcluster.env.VALIDATE_CERTSValidate TLS certificatesfalse
microservices.budcluster.env.REGISTRY_SERVERContainer registry URLhttps://budimages.azurecr.io
microservices.budcluster.env.ENGINE_CONTAINER_PORTInference engine port8000
microservices.budcluster.env.METRICS_COLLECTION_ENABLEDEnable metrics collectiontrue
microservices.budcluster.env.METRICS_COLLECTION_TIMEOUTMetrics collection timeout (seconds)30
microservices.budcluster.env.METRICS_BATCH_SIZEMetrics batch size20000
microservices.budcluster.env.NODE_INFO_COLLECTOR_IMAGE_CPUCPU node info collector imagebudstudio/node-info-collector-cpu:0.1.0
microservices.budcluster.env.NODE_INFO_COLLECTOR_IMAGE_CUDACUDA node info collector imagebudimages.azurecr.io/...
microservices.budcluster.env.NODE_INFO_COLLECTOR_IMAGE_HPUHPU node info collector imagebudimages.azurecr.io/...

Microservices - budgateway

Rust-based high-performance API gateway.
ParameterDescriptionDefault
microservices.budgateway.enabledEnable budgateway deploymenttrue
microservices.budgateway.imageContainer image for budgatewaybudstudio/budgateway:0.4.5
microservices.budgateway.envEnvironment variables{}
microservices.budgateway.nodeSelectorNode selector for budgateway{}

Microservices - budmodel

Model registry and leaderboard service.
ParameterDescriptionDefault
microservices.budmodel.enabledEnable budmodel deploymenttrue
microservices.budmodel.imageContainer image for budmodelbudstudio/budmodel:0.4.5
microservices.budmodel.dapridDapr application IDbudmodel
microservices.budmodel.storageClassNameStorage class for model cachenfs-csi
microservices.budmodel.storageSizeSize of model cache volume32Gi
microservices.budmodel.env.LOG_LEVELLogging levelINFO

Microservices - budmetrics

Observability service with ClickHouse analytics.
ParameterDescriptionDefault
microservices.budmetrics.enabledEnable budmetrics deploymenttrue
microservices.budmetrics.imageContainer image for budmetricsbudstudio/budmetrics:0.4.5
microservices.budmetrics.dapridDapr application IDbudmetrics
microservices.budmetrics.env.CLICKHOUSE_HOSTClickHouse host{{ .Release.Name }}-clickhouse
microservices.budmetrics.env.CLICKHOUSE_PORTClickHouse port9000
microservices.budmetrics.env.CLICKHOUSE_DB_NAMEClickHouse database namebudproxy
microservices.budmetrics.env.CLICKHOUSE_TTL_CLUSTER_METRICSMetrics retention in days30

Microservices - budsim

Performance simulation and optimization service.
ParameterDescriptionDefault
microservices.budsim.enabledEnable budsim deploymenttrue
microservices.budsim.imageContainer image for budsimbudstudio/budsim:0.4.5
microservices.budsim.dapridDapr application IDbudsim
microservices.budsim.env.LOG_LEVELLogging levelINFO

Microservices - budnotify

Notification and pub/sub messaging service.
ParameterDescriptionDefault
microservices.budnotify.enabledEnable budnotify deploymenttrue
microservices.budnotify.imageContainer image for budnotifybudstudio/budnotify:0.4.5
microservices.budnotify.dapridDapr application IDbudnotify
microservices.budnotify.pubsubTopicKafka topic for notificationsnotificationMessages

Microservices - askbud

AI assistant service for cluster and performance analysis.
ParameterDescriptionDefault
microservices.askbud.enabledEnable askbud deploymenttrue
microservices.askbud.imageContainer image for askbudbudstudio/askbud:0.4.5
microservices.askbud.dapridDapr application IDaskbud
microservices.askbud.modelAI model for assistantbud-gpt-oss-20b-ada28b58
microservices.askbud.env.INFERENCE_API_KEYAPI key for inferencetest
microservices.askbud.env.INFERENCE_URLInference service URLRequired

Microservices - Other Services

ParameterDescriptionDefault
microservices.buddoc.enabledEnable document processing servicetrue
microservices.buddoc.imageContainer imagebudstudio/buddoc:0.4.5
microservices.buddoc.env.MAX_FILE_SIZE_MBMaximum file size for uploads50
microservices.buddoc.env.VLM_API_TIMEOUTVLM API timeout in seconds300
microservices.budeval.enabledEnable model evaluation servicetrue
microservices.budeval.imageContainer imagebudstudio/budeval:0.4.5
microservices.budeval.storageClassNameStorage class for datasetsnfs-csi
microservices.budcustomer.enabledEnable customer portaltrue
microservices.budcustomer.imageContainer imagebudstudio/budcustomer:0.4.5
microservices.budplayground.enabledEnable model playgroundtrue
microservices.budplayground.imageContainer imagebudstudio/budplayground:0.4.5
microservices.budprompt.enabledEnable prompt management servicetrue
microservices.budprompt.imageContainer imagebudstudio/budprompt:0.4.5
microservices.mcpgateway.enabledEnable MCP gatewaytrue
microservices.mcpgateway.imageContainer imagebudstudio/mcpgateway:latest
microservices.budsentinel.enabledEnable Sentinel (closed source)false

OpenTelemetry Collector

ParameterDescriptionDefault
otelCollector.enabledEnable OpenTelemetry Collectortrue
otelCollector.image.repositoryCollector image repositoryotel/opentelemetry-collector-contrib
otelCollector.image.tagCollector image tag0.91.0
otelCollector.replicasNumber of collector replicas1
otelCollector.logLevelLogging levelinfo
otelCollector.batchSizeBatch size for metrics export10000
otelCollector.batchTimeoutBatch timeout10s
otelCollector.memoryLimitMemory limit in MB2048
otelCollector.resources.limits.memoryKubernetes memory limit2Gi
otelCollector.resources.limits.cpuKubernetes CPU limit1000m
otelCollector.clickhouse.hostClickHouse host for exportclickhouse
otelCollector.clickhouse.databaseClickHouse databasemetrics
otelCollector.clickhouse.ttlData retention period720h (30 days)

Onyx Configuration

AI-powered knowledge assistant with document search capabilities.
ParameterDescriptionDefault
onyx.enabledEnable Onyx deploymentfalse
onyx.global.versionOnyx image versionlatest
onyx.global.pullPolicyImage pull policyAlways
onyx.postgresql.enabledUse Onyx’s own PostgreSQL (should be false)false
onyx.valkey.enabledUse Onyx’s own Redis (should be false)false
onyx.minio.enabledUse Onyx’s own MinIO (should be false)false
onyx.vespa.enabledEnable Vespa search enginetrue
onyx.vespa.replicaCountNumber of Vespa replicas1
onyx.vespa.resources.requests.cpuVespa CPU request4000m
onyx.vespa.resources.requests.memoryVespa memory request8000Mi
onyx.vespa.resources.limits.memoryVespa memory limit32000Mi
onyx.nginx.enabledUse Onyx’s nginx (should be false, bud uses Traefik)false
onyx.configMap.AUTH_TYPEAuthentication typeoidc
onyx.configMap.KEYCLOAK_REALMKeycloak realmbud-keycloak
onyx.webserver.replicaCountWeb server replicas1
onyx.api.replicaCountAPI server replicas1

External Services Configuration

Use external services instead of chart-deployed ones.
ParameterDescriptionDefault
externalServices.minio.endpointExternal S3/MinIO endpoint""
externalServices.minio.auth.accessKeyS3 access key""
externalServices.minio.auth.secretKeyS3 secret key""
externalServices.minio.buckets.modelRegistryModel registry bucket namemodels-registry
externalServices.minio.buckets.modelInfoModel info bucket namemodel-info
externalServices.postgresql.hostExternal PostgreSQL host""
externalServices.postgresql.portExternal PostgreSQL port5432
externalServices.postgresql.databases.<service>.nameDatabase name per serviceService-specific
externalServices.postgresql.databases.<service>.usernameDatabase username per serviceService-specific
externalServices.postgresql.databases.<service>.passwordDatabase password per serviceService-specific

Dapr Configuration

ParameterDescriptionDefault
dapr.enabledDeploy Dapr as part of this chart (recommended: install separately)false
Dapr should be installed cluster-wide before deploying Bud-Stack:
# Via CLI
dapr init -k

# Via Helm
helm repo add dapr https://dapr.github.io/helm-charts/
helm install dapr dapr/dapr -n dapr-system --create-namespace

Secrets Management (SOPS)

Generate Age Key

# Generate key pair
age-keygen -o ~/.config/sops/age/keys.txt

# Get public key
grep -Eom1 "age1.*$" ~/.config/sops/age/keys.txt

Create Encrypted Values

# Create encrypted values file
sops --encrypt --age <public-key> my-secrets.yaml > values.enc.yaml

# Edit encrypted file
sops values.enc.yaml

Deploy with Encrypted Values

# Decrypt and deploy
sops -d infra/helm/bud/values.enc.yaml | \
  helm upgrade --install bud infra/helm/bud/ -f - -n bud-system