Skip to main content

Storage configuration

zymtrace uses ClickHouse, Postgres and S3-compatible Object Storage as its primary storage backends. For a deeper understanding of how these components interact, refer to the architecture section.

To accommodate different operational needs, zymtrace provides two deployment modes:

  1. Create Mode (create): Deploys and manages the storage service within your cluster. This is ideal for quick setup and seamless integration with zymtrace.
  2. Existing Mode (use_existing): Connects to your existing ClickHouse, Postgres, or S3 storage, eliminating the need to manage additional infrastructure.

This guide walks you through configuring ClickHouse, Postgres, and S3-compatible storage in both modes.

ClickHouse Configuration​

Deploy new ClickHouse instance​

This mode deploys and manages ClickHouse within your cluster.

ClickHouse Create Mode Configuration
clickhouse:
mode: "create"
create:
image:
repository: clickhouse/clickhouse-server
tag: "25.3.2.39"
config:
user: "clickhouse"
password: "clickhouse123"
database: "zymtrace"
service:
http:
port: 8123
native:
port: 9000
replicas: 1
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2000m"
memory: "4Gi"
storage:
type: "persistent" # "persistent" or "empty_dir"
size: 30Gi
className: ""

Postgres Configuration​

Deploy new Postgres instance​

This mode deploys and manages Postgres within your cluster.

Postgres Create Mode Configuration
postgres:
mode: "create"
create:
config:
user: "postgres"
password: "postgres123"
service:
port: 5432
resources:
requests:
cpu: "200m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1024Mi"
storage:
type: "persistent"
size: 20Gi
className: ""

S3-Compatible Object Storage Configuration​

Deploy new MinIO instance​

This mode deploys and manages MinIO within your cluster.

MinIO Create Mode Configuration
storage:
mode: "create"
create:
image:
repository: minio/minio
tag: "RELEASE.2024-12-18T13-15-44Z"
config:
user: "minio"
password: "minio123"
service:
api:
port: 9000
console:
port: 9001
replicas: 1
resources:
requests:
cpu: "200m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
storage:
type: "persistent"
size: 20Gi
className: ""
buckets:
symbols: "zymtrace-symdb"

Applying the configuration​

Once you've updated custom_values.yaml with the appropriate configuration, deploy the backend using Helm:

helm upgrade backend zymtrace/backend -f custom_values.yaml