Reference

Environment variables

The runtime environment each telark service reads at startup.

telark reads its runtime configuration from environment variables. Each service exposes a small, opinionated surface — anything you do not set falls back to a sensible default. This page lists the variables that have first-class effect on behaviour.

Helm values that map to these variables are documented in the Reference → Helm values reference once the public install path lands.

discovery-service

Discovery is the heaviest service and exposes the most knobs.

VariableDefaultEffect
PROTECTION_PLAN_TICK_INTERVAL_SEC31Interval at which the protection-plan controller scans, transitions phases, and runs health for active plans. Lower = faster reconciliation, more API hits.
ROLLBACK_INFORMER_RESYNCimplementation defaultHow often the rollback controller's dynamic informer resyncs.
INFORMER_RESYNC_JITTER_FRACTIONimplementation defaultJitter applied to informer resync to avoid thundering herds.
DISCOVERY_REDIS_ADDRrequiredRedis address for application coalescing, leader election, and consumer groups.
DISCOVERY_REDIS_PASSWORDemptyRedis auth when required.
DISCOVERY_LEADER_LOCK_TTLimplementation defaultLeader election lock TTL.
EXPORTER_BASE_URLrequiredHTTP base for the exporter service. Discovery posts plan / snapshot / notification calls here.
NATS_URLoptionalNATS endpoint for telark.applications.update event publishing. If unset, events are dropped silently.
LOG_LEVELinfodebug, info, warn, error.

The protection-plan tick is the variable most operators reach for. Lower it during testing; leave it at the default in production unless you have a specific reason.

exporter-service

Exporter owns CRD persistence + the snapshot PVC + the notifications Redis store.

VariableDefaultEffect
EXPORTER_LISTEN_ADDR:8080HTTP bind address.
EXPORTER_REDIS_ADDRrequiredRedis for notifications + caches.
EXPORTER_REDIS_PASSWORDemptyRedis auth.
SNAPSHOT_PVC_PATHrequiredMount path for the snapshot PVC. Snapshots are addressed by {scope, namespace, generation, id} under this root.
KUBE_CONFIG_PATHin-clusterOverride for out-of-cluster development.
LOG_LEVELinfoLogging verbosity.

The exporter's concurrency package serialises writes per-resource in-process. Multi-replica exporter is supported; cross-replica serialisation goes through the CRD's resource version + retry.

auth-service

Auth handles passkey + OIDC + sessions + permissions.

VariableDefaultEffect
AUTH_LISTEN_ADDR:8080HTTP bind.
AUTH_REDIS_ADDRrequiredRedis for session cache + cleanup queue.
AUTH_REDIS_PASSWORDemptyRedis auth.
WEBAUTHN_RP_DISPLAY_NAMEtelarkDisplay name for WebAuthn challenges.
WEBAUTHN_RP_IDrequiredRelying-party ID — must match the dashboard's effective domain.
WEBAUTHN_RP_ORIGINSrequiredComma-separated list of allowed origins.
SESSION_TTL_HOURS24Default session lifetime.
SESSION_CLEANUP_INTERVAL_SECimplementation defaultHow often the cleanup controller runs.
BOOTSTRAP_ADMIN_EMAILemptyFirst user with this email on login is granted the Admin role. Ignored after bootstrap.
OIDC_GOOGLE_CLIENT_IDemptyWhen set + oidc.enabled=true in GlobalConfig, exposes the Google sign-in flow.
OIDC_GOOGLE_CLIENT_SECRETemptyRequired when Google OIDC is enabled.
OIDC_GOOGLE_REDIRECT_URLrequired when OIDC enabledMust match the configured callback URL in Google Cloud.
EXPORTER_BASE_URLrequiredAuth talks to the exporter for User / Passkey / Session persistence.
LOG_LEVELinfoLogging verbosity.

WEBAUTHN_RP_ID and WEBAUTHN_RP_ORIGINS are the two variables that will trip you up — get them wrong and passkey enrolment fails with cryptic browser errors. Set them to the public domain of the dashboard, not the internal service address.

Notes

  • telark never reads secrets from environment variables that contain personally identifiable information. Anything sensitive (*_PASSWORD, OIDC_GOOGLE_CLIENT_SECRET) should be mounted from a Kubernetes Secret via Helm.
  • Cluster-level knobs (excluded namespaces, AI enrichment, OIDC toggle, snapshot retention) live on the GlobalConfig CRD, not in environment variables. See Reference → CRD reference — GlobalConfig.