Skip to main content

Environment Variables

This is the dedicated runtime env-var reference for NoETL components:

  • NoETL Server
  • NoETL Worker
  • Rust Worker Pool
  • Gateway

Source Of Truth

  • NoETL Python settings and runtime behavior:
    • noetl/core/config.py
    • noetl/core/storage/result_store.py
  • Ops Helm values used in Kubernetes deployments:
    • ops/automation/helm/noetl/values.yaml
    • ops/automation/helm/gateway/values.yaml
  • Ops playbooks that apply/override values:
    • ops/automation/deployment/noetl-stack.yaml
    • ops/automation/gcp_gke/noetl_gke_fresh_stack.yaml

NoETL Server

Configured in Helm under config.server.

VariableDefaultPurpose
NOETL_RUN_MODEserverProcess mode
NOETL_HOST0.0.0.0API bind host
NOETL_PORT8082API port
NOETL_SERVER_URLhttp://noetl.noetl.svc.cluster.local:8082Internal server URL
NOETL_ENABLE_UItrueEnable API UI routes
NOETL_DISABLE_METRICStrueToggle metrics emission
NOETL_SERVER_METRICS_INTERVAL60Metrics publish interval (seconds)
NATS_URLnats://noetl:[email protected]:4222NATS connection URL
NATS_STREAMNOETL_COMMANDSJetStream stream name
NATS_SUBJECTnoetl.commandsJetStream subject
NATS_CONSUMERnoetl_worker_poolDurable consumer name
POSTGRES_HOSTpostgres.postgres.svc.cluster.localPostgreSQL host
POSTGRES_PORT5432PostgreSQL port
NOETL_POSTGRES_POOL_MIN_SIZE2DB pool minimum
NOETL_POSTGRES_POOL_MAX_SIZE12DB pool maximum
NOETL_POSTGRES_POOL_MAX_WAITING200DB acquire queue limit
NOETL_POSTGRES_POOL_TIMEOUT_SECONDS30DB acquire timeout
NOETL_TEMPSTORE_MAX_REF_CACHE_ENTRIES50000Max in-memory TempRef metadata entries
NOETL_TEMPSTORE_MAX_MEMORY_CACHE_ENTRIES20000Max in-memory temp payload entries

NoETL Worker

Configured in Helm under config.worker.

VariableDefaultPurpose
NOETL_RUN_MODEworkerProcess mode
NOETL_SERVER_URLhttp://noetl.noetl.svc.cluster.local:8082API endpoint for command execution
NATS_URLnats://noetl:[email protected]:4222NATS connection URL
NATS_STREAMNOETL_COMMANDSJetStream stream name
NATS_SUBJECTnoetl.commandsJetStream subject
NATS_CONSUMERnoetl_worker_poolDurable consumer name
NOETL_WORKER_NATS_FETCH_TIMEOUT_SECONDS30Pull fetch timeout
NOETL_WORKER_NATS_FETCH_HEARTBEAT_SECONDS5Pull fetch heartbeat
NOETL_WORKER_NATS_MAX_ACK_PENDING64Consumer ack-pending limit
NOETL_WORKER_NATS_MAX_DELIVER1000Consumer max delivery retries
NOETL_WORKER_MAX_INFLIGHT_COMMANDS8Inflight command concurrency
NOETL_WORKER_MAX_INFLIGHT_DB_COMMANDS3Inflight DB-heavy command cap
NOETL_POSTGRES_POOL_MIN_SIZE1DB pool minimum
NOETL_POSTGRES_POOL_MAX_SIZE8DB pool maximum
NOETL_POSTGRES_POOL_MAX_WAITING100DB acquire queue limit
NOETL_POSTGRES_POOL_TIMEOUT_SECONDS30DB acquire timeout
NOETL_INLINE_MAX_BYTES65536Inline result payload threshold
NOETL_PREVIEW_MAX_BYTES1024Preview payload size
NOETL_DEFAULT_STORAGE_TIERkvDefault result storage tier
NOETL_TEMPSTORE_MAX_REF_CACHE_ENTRIES50000Max in-memory TempRef metadata entries
NOETL_TEMPSTORE_MAX_MEMORY_CACHE_ENTRIES20000Max in-memory temp payload entries

Rust Worker Pool

Configured in Helm under config.workerPool.

VariableDefaultPurpose
WORKER_POOL_NAMEworker-rust-poolWorker pool identity
NOETL_SERVER_URLhttp://noetl.noetl.svc.cluster.local:8082API endpoint
NATS_URLnats://noetl:[email protected]:4222NATS connection URL
NATS_STREAMNOETL_COMMANDSJetStream stream name
NATS_CONSUMERnoetl_worker_poolDurable consumer name
WORKER_HEARTBEAT_INTERVAL15Heartbeat interval (seconds)
WORKER_MAX_CONCURRENT4Max concurrent jobs per pool pod
RUST_LOGinfo,worker_pool=debug,noetl_tools=debugRust log filter

Gateway

Configured in Helm under env (ops/automation/helm/gateway/values.yaml).

VariableDefaultPurpose
ROUTER_PORT8090Gateway listen port
NOETL_BASE_URLhttp://noetl.noetl.svc.cluster.local:8082Upstream NoETL API
NATS_URLnats://noetl:[email protected]:4222NATS connection URL
NATS_UPDATES_SUBJECT_PREFIXplaybooks.executions.Execution updates subject prefix
CORS_ALLOWED_ORIGINShttp://localhost:3001Browser origins allow-list
AUTH_BYPASSfalseDisable auth checks (dev only)
PUBLIC_URLemptyPublic URL used in redirects/callbacks
RUST_LOGinfo,gateway=debugRust log filter

TempStore Cache Controls

NOETL_TEMPSTORE_MAX_REF_CACHE_ENTRIES and NOETL_TEMPSTORE_MAX_MEMORY_CACHE_ENTRIES bound TempStore in-memory caches to avoid unbounded growth.

  • Larger values improve hot-cache hit rates but increase process memory usage.
  • Smaller values reduce memory footprint but may increase backend reads/deletes.

Playbook Overrides

Local kind stack deploy

noetl run automation/deployment/noetl-stack.yaml --runtime local \
--set action=deploy \
--set noetl_tempstore_max_ref_cache_entries=50000 \
--set noetl_tempstore_max_memory_cache_entries=20000

GKE fresh stack deploy

noetl run automation/gcp_gke/noetl_gke_fresh_stack.yaml --runtime local \
--set action=deploy \
--set project_id=<project-id> \
--set noetl_tempstore_max_ref_cache_entries=50000 \
--set noetl_tempstore_max_memory_cache_entries=20000

Direct Helm override (any environment)

helm upgrade --install noetl automation/helm/noetl \
--namespace noetl \
--set config.server.NOETL_TEMPSTORE_MAX_REF_CACHE_ENTRIES=50000 \
--set config.server.NOETL_TEMPSTORE_MAX_MEMORY_CACHE_ENTRIES=20000 \
--set config.worker.NOETL_TEMPSTORE_MAX_REF_CACHE_ENTRIES=50000 \
--set config.worker.NOETL_TEMPSTORE_MAX_MEMORY_CACHE_ENTRIES=20000