Skip to main content
By default, the Onyx Helm chart installs PostgreSQL, Redis, OpenSearch, MinIO, Code Interpreter, and NGINX. For production, you can turn off each bundled service and connect Onyx to a managed service.

Chart toggles

postgresqlOperator and redisOperator are not in the default values.yaml. Add them to your values file when you need them. An existing Redis operator must provide the redis.redis.opstreelabs.in/v1beta2 CRDs.
Do not set vectorDB.enabled: false only to use an external OpenSearch. That key turns off indexing, connectors, the indexing model server, and all Celery workers. Use it only for Onyx Lite.

Application-only example

This example runs only the Onyx application in Kubernetes. It assumes:
  • Managed PostgreSQL, Redis, OpenSearch, and S3 exist and pods can reach them.
  • The Secrets named in auth exist in the release namespace.
  • Your own ingress controller sends traffic to Onyx.
values.yaml
The chart sets POSTGRES_HOST, REDIS_HOST, OPENSEARCH_HOST, and S3_ENDPOINT_URL only for bundled services. When you turn a service off, you must set its connection values in configMap. Put passwords in Secrets, not in configMap. See Security Hardening.

Per-service notes

  • The database user must be able to create tables. The API server runs database migrations when it starts.
  • For TLS with certificate verification, set postgresTls.enabled: true and give the CA in postgresTls.caSecretName or postgresTls.caConfigMapName.
  • For Amazon RDS, see the RDS guide.
  • For TLS with certificate verification, set redisTls.enabled: true and give the CA in redisTls.caSecretName or redisTls.caConfigMapName. The bundled Redis does not support TLS.
  • If the managed Redis has no password, set auth.redis.enabled: false.
  • For Amazon OpenSearch Service and other managed settings, see the OpenSearch guide.
  • For S3-compatible storage that is not AWS, also set configMap.S3_ENDPOINT_URL.
  • If the pods use a cloud IAM role for S3, set auth.objectstorage.enabled: false and do not set access keys.
  • To use Azure Blob Storage, set configMap.FILE_STORE_BACKEND: "azure" and the AZURE_* keys in configMap.
  • To run Code Interpreter as a separate release, set codeInterpreter.enabled: false and set configMap.CODE_INTERPRETER_BASE_URL to its Service URL. See Code Interpreter.
  • With nginx.enabled: false, your ingress must remove the /api prefix before requests reach the API Service. The bundled NGINX does this.
  • ingress.enabled: true creates Ingress objects that use ingress-nginx annotations and cert-manager.
  • The bundled NGINX also routes SAML and MCP paths. Read templates/nginx-conf.yaml in the chart before you replace it.

Who owns what

The chart does not configure backups for any bundled service. For each external service, you must make sure that its version works with your Onyx version. Test upgrades in a staging environment first.

Uninstall

With bundled PostgreSQL or Redis, helm uninstall runs a cleanup hook. The hook deletes every CNPG Cluster and every Redis resource in the release namespace, not only those of this release. CNPG then deletes the PostgreSQL volumes, so the database is lost.
  • Back up the database before you uninstall.
  • Install Onyx in its own namespace.
  • Use external PostgreSQL if the data must outlive the release.