Orbtrace

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:

my-values.yaml
postgres:
  mode: bundled
  password: a-strong-password # required — the only thing you set

That'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.

  1. Install PostgreSQL 18 on a VM, or provision a managed instance (AWS RDS, Cloud SQL, Azure Database — all support the vector extension).
  2. Create the database, a login user, and enable the extension. The orbtrace names 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;
  3. In your my-values.yaml, point at yours. postgres.mode: external is 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.

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)

  1. 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
  2. In your my-values.yaml, point at yours. valkey.mode: external is 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.