Skip to content

Environment Variables

Epsio reads its configuration from environment variables at startup. This page lists the variables you can set to configure and manage an Epsio instance.

All variables can optionally be prefixed with EPSIO_ for explicit namespacing (for example, EPSIO_LOG_LEVEL is equivalent to LOG_LEVEL). When both are set, the EPSIO_-prefixed variable takes precedence.

How to set environment variables

Pass variables under spec.env of the Epsio custom resource (or env in values.yaml when using Helm):

apiVersion: epsio.io/v1
kind: Epsio
metadata:
  name: example-epsio
spec:
  ...
  env:
    - name: SLOT_NAME
      value: "hello_world_slot"

Add variables to the .env file in your PIG_DIRECTORY (typically /var/lib/epsio/.env), or pass them with -e to docker run:

docker run -e SLOT_NAME=hello_world_slot ...

Source Database (PostgreSQL)

Variable Description Default
LOGICAL_REPLICATION_PLUGIN Logical decoding plugin to use. Either pgoutput or wal2json. pgoutput
SLOT_NAME Override the default replication slot name prefix used by Epsio. epsio_slot_<INSTANCE_ID>
<SOURCE_NAME>_SLOT_NAME Per-source override of the replication slot name. The variable name is the source name in uppercase with hyphens replaced by underscores, suffixed with _SLOT_NAME (e.g. for a source my-db, set MY_DB_SLOT_NAME). Falls back to SLOT_NAME when unset. inherits SLOT_NAME
MAX_DATA_CONNECTIONS_FOR_PG_POOL Maximum number of data connections per source PostgreSQL pool. 32
MAX_DATA_CONNECTIONS_FOR_PG_POOL_<source_name> Per-source override of the maximum data connections for the PostgreSQL pool. The variable name is MAX_DATA_CONNECTIONS_FOR_PG_POOL_ followed by the source name (e.g. for a source otherpgdb, set MAX_DATA_CONNECTIONS_FOR_PG_POOL_otherpgdb). Falls back to MAX_DATA_CONNECTIONS_FOR_PG_POOL when unset. inherits MAX_DATA_CONNECTIONS_FOR_PG_POOL

Source Database (MySQL)

Variable Description Default
SQL_LOCK_TIMEOUT Timeout (seconds) Epsio waits when acquiring table locks during initial population and table validation. When this is exceeded, Epsio raises a Timed out trying to get lock on the following tables error. Increase this if you have long-running transactions on the source that hold conflicting locks. 5

Behavior Flags

Variable Description Default
PAUSE_POPULATION Pause initial view population (0 / 1). Useful for staged rollouts and incident mitigation. 0
SKIP_POPULATION_ROWS_COUNT Skip the row-count query that runs alongside initial population (0 / 1). Set to 1 to avoid an extra full-table scan on very large source tables; population progress in dashboard will not include total row counts. 0