/etc/openlit/config.yaml or through environment variables.
Configuration File
/etc/openlit/config.yaml
Configuration Reference
Environment variables take precedence over config file values.
Deployment Mode
The Controller auto-detects its deployment mode:- Kubernetes — Detected when the
KUBERNETES_SERVICE_HOSTenvironment variable is present - Docker — Detected when
/var/run/docker.sockis accessible - Linux — Default fallback when neither Kubernetes nor Docker is detected
OPENLIT_DEPLOY_MODE environment variable:
Kubernetes Configuration
Required RBAC
The Controller needs the following ClusterRole to discover and modify workloads:get/list/watchon pods — for service discoverydelete/createon pods — for naked pod Agent Observability (requires pod restart)update/patchon deployments/daemonsets/statefulsets — for Agent Observability SDK injection
Volume Mounts
Security Context
The Controller requiresprivileged: true and hostPID: true because eBPF kprobe attachment and /proc scanning across all namespaces require elevated kernel access. The Controller itself is read-only (it inspects traffic, it doesn’t modify it).
Docker Configuration
Required Volumes
/proc— Scan process network connections to detect LLM API calls/sys/kernel/debug+/sys/fs/bpf— Required for eBPF operation (LLM traffic interception)- Docker socket — Discover running containers, read labels/metadata, and inject the Python SDK for Agent Observability
Linux Configuration
Systemd Integration
For Agent Observability on Linux, the Controller manages systemd drop-in files to inject the SDK. It needs:- Write access to
/etc/systemd/system/for creating drop-in configurations - Ability to run
systemctl daemon-reloadandsystemctl restart
Proc Filesystem
The Controller reads/proc to discover running processes and their network connections. Ensure /host/proc is mounted (or the Controller runs on the host directly with access to /proc).
Controller Identity
Each controller registers itself in the dashboard with a uniqueinstance_id. This ID determines whether a restarted controller appears as the same entry or a new one on the Agents page.
To override the automatic identity on any platform, set
OPENLIT_INSTANCE_ID:
Multi-Cluster Setup
To run Controllers across multiple Kubernetes clusters reporting to the same OpenLIT dashboard, set a uniquecluster_id for each cluster:

