Provide the datastores
How to run Postgres+pgvector and Valkey (or Redis) for a Kubernetes deployment — bundled in the chart, on a VM or managed service, or via Docker — and point the chart at them.
Postgres and Valkey each default to bundled (the chart runs them in-cluster) — so the quickest path is to change nothing and just set a Postgres password. You can externalize either one for production durability. Doris is the exception: the chart never runs it, so you always provide it yourself — it has its own page, Setting up Doris.
Where these `my-values.yaml` snippets go
The YAML on this page goes into your my-values.yaml — a small overrides file with just the keys you change. You don't copy the whole values.yaml: when you install ./orbtrace (over on Install with Helm), Helm applies the chart's own values.yaml as the base automatically, and layers your my-values.yaml on top (helm install ./orbtrace -f <sizing-preset> -f my-values.yaml). When a store stays bundled you set nothing here except its password — the chart deploys it and wires the in-cluster host/port automatically.
Postgres + pgvector
Bundled in Helm (default)
Nothing to install, nothing to point at: the chart deploys Postgres+pgvector in-cluster and connects to it automatically — you don't give a host or port. Leave postgres.mode: bundled (the default) and just set a password:
postgres:
mode: bundled
password: a-strong-password # required — the only thing you setThat's the whole config — host, port, database, and user are all derived from the in-cluster Service; you don't provide them. This is the fastest way to get running and is fine for evaluation and small single-cluster deployments. Because the metadata (users, incidents, RCA vectors) is non-reconstructable and the bundled instance is a single replica, production should externalize it — below.
External — a VM or managed Postgres 18 (recommended for production)
- Install PostgreSQL 18 on a VM, or provision a managed instance (AWS RDS, Cloud SQL, Azure Database — all support the
vectorextension). - Create the database, a login user, and enable the extension. The
orbtracenames below are just our convention — pick any database/user name you like and mirror your choice in step 3. Connect as a superuser (psql) and run:CREATE DATABASE orbtrace; CREATE USER orbtrace WITH PASSWORD 'a-strong-password'; GRANT ALL PRIVILEGES ON DATABASE orbtrace TO orbtrace; \c orbtrace CREATE EXTENSION IF NOT EXISTS vector; - In your
my-values.yaml, point at yours.postgres.mode: externalis all you need — it takes precedence, so the bundled Postgres is automatically not deployed:my-values.yaml postgres: mode: external host: pg.db.internal # reachable from the cluster port: 5432 # default — change only if yours differs database: orbtrace # whatever you named it in step 2 username: orbtrace # the user you created in step 2 password: a-strong-password # or set existingSecret instead
Fastest external on a plain VM — one Docker container
One container gives you Postgres with pgvector already built in:
docker run -d --name orbtrace-pg -p 5432:5432 \
-e POSTGRES_DB=orbtrace -e POSTGRES_USER=orbtrace \
-e POSTGRES_PASSWORD=a-strong-password \
pgvector/pgvector:pg18
docker exec orbtrace-pg psql -U orbtrace -d orbtrace \
-c 'CREATE EXTENSION IF NOT EXISTS vector;'Then set the same postgres.* values as in step 3 above (host = the VM's address).
Valkey (or Redis)
Orbtrace talks to the cache over the Redis protocol, so it can be Valkey or any Redis-compatible server — plain Redis works just as well. The image the chart bundles is Valkey.
Bundled in Helm (default, recommended)
Leave valkey.mode: bundled — nothing to configure. It holds only cache, so keeping it in-cluster is fine even in production.
External — Valkey or Redis (VM / managed / Docker)
- Run a Redis-compatible server reachable from the cluster. With Docker, either image works:
docker run -d -p 6379:6379 valkey/valkey:9-alpine # or, plain Redis: docker run -d -p 6379:6379 redis:7-alpine - In your
my-values.yaml, point at yours.valkey.mode: externalis all you need — it takes precedence, so the bundled Valkey is automatically not deployed:my-values.yaml valkey: mode: external host: cache.db.internal # your Valkey or Redis host port: 6379 # password: "" # optional — leave empty for no auth
Apache Doris
The telemetry store — always external to the chart. Run it on a VM/managed service, with the in-cluster doris-operator, or (for evaluation) the all-in-one Compose stack. Setting up Doris is the full step-by-step: the operator install commands, a testbed-verified DorisCluster to apply, the node prerequisites, and how to verify it before you install. Then point the chart at it with doris.host.
Next: Setting up Doris.