Skip to content

Environment variables

The environment variables the arion binary reads: runtime sizing, log filtering and config-referenced secrets.

Arion reads a small set of environment variables at startup; each overrides the matching runtime field and its command-line flag, so the precedence is environment, then flag, then file.

Variables

VariableValueOverridesDescription
ARION_CPU_LIMITinteger ≥ 1runtime.num_cpusCores to use. Checked before ARION_GATEWAY_CORES.
ARION_GATEWAY_CORESinteger ≥ 1runtime.num_cpusCores to use, when ARION_CPU_LIMIT is unset.
ARION_GATEWAY_RUNTIMESinteger ≥ 1runtime.num_runtimesNumber of Tokio worker runtimes.
ARION_SERVICE_THREADSinteger ≥ 1runtime.num_service_threadsThreads for background service tasks.
ARION_RT_GLOBAL_QUEUE_INTERVALinteger ≥ 1runtime.global_queue_intervalScheduler ticks between global queue polls.
ARION_RT_EVENT_INTERVALintegerruntime.event_intervalScheduler ticks between I/O event polls.
ARION_RT_MAX_IO_EVENT_PER_TICKinteger ≥ 1runtime.max_io_events_per_tickMaximum I/O events processed per tick.
ARION_CODEMODE_POOL_CAPACITYinteger ≥ 1runtime.codemode.pool_capacityCode-mode sandboxes the process can run at once.
ARION_CODEMODE_MAX_MEMORY_BYTESinteger ≥ 1runtime.codemode.max_memory_bytesLargest memory one code-mode sandbox may use, in bytes.
RUST_LOGfilter stringlogging.log_levelProcess log filter, e.g. info or arion_lib=debug,info.
ARION_CPU_LIMIT=4 ARION_GATEWAY_RUNTIMES=2 RUST_LOG=info arion -c arion.yaml

A value that does not parse (for example ARION_CPU_LIMIT=abc or 0) is silently ignored and the next source in the precedence chain applies.

Variables named in the configuration

Wherever an Envoy DataSource appears in the configuration — TLS certificates and keys, trusted CA bundles, inline bodies — the environment_variable variant makes Arion read that value from a variable you name:

private_key:
  environment_variable: ARION_TLS_KEY

The variable must be set when the config loads; a missing one fails with failed to read environment variable.

Build-time variables

CHANNEL_BODY_PREFETCH_FRAMES, EXT_PROC_BUFFERED_BODY_LIMIT, EXT_PROC_MERGE_WINDOW and EXT_PROC_FRAME_MERGE_LIMIT tune ext_proc internals but are read when the binary is compiled, not at runtime. Setting them on a running deployment has no effect.

Continue

Start typing to search the site.

↑ ↓ to move Enter to open Esc to close