t·‹H Edgelet Configuration Reference | Datasance PoT Documentation
Skip to main content
Version: v3.8.0

Configuration reference

Edgelet stores settings in /etc/edgelet/config.yaml under profiles. Use edgelet config to update the active profile, or edit the file and send SIGHUP to reload.

For quick setup, see Configuration.

YAML vs CLI key names​

The config file and edgelet config use slightly different names for some keys:

Config file keyedgelet config flag key
diskLimitdiskLimitGiB (--disk-limit-gib, -d)
memoryLimitmemoryLimitMiB (--memory-limit-mib, -m)
cpuLimitcpuLimitPercent (--cpu-limit-percent, -p)
logLimitlogLimitGiB (--log-limit-gib, -l)
changeFrequencychangeFrequencySeconds (--change-frequency-seconds, -cf)
statusFrequencystatusFrequencySeconds (--status-frequency-seconds, -sf)

Legacy aliases logDiskDirectory and logDiskLimit map to logDirectory and logLimit.

Controller push overrides​

When provisioned, the Controller can push config changes via the field agent config/changes feed. Pushed values override local profile keys until changed again from the Controller or locally.

Reload behavior​

CategoryHot reload (SIGHUP / edgelet system reload)Restart required
Frequencies, limits (monitor), log levelYes—
logDirectory—Yes
containerEngine, containerEngineUrl—Yes (cold engine change)
diskDirectory—Yes

Embedded engine: data plane log settings also reload via systemctl kill -s HUP edgelet-containerd.


CLI-managed keys​

Every key accepted by edgelet config:

KeyAliasTypeAllowed valuesDefaultNotes
controllerUrlastringURLhttp://localhost:54421/api/v3/Controller REST base
controllerCertacstringPEM file path/etc/edgelet/cert.crtController CA
containerEnginecestringedgelet, docker, podmanedgelet (linux)Platform validated
containerEngineUrlcustringsocket URLunix:///run/edgelet/containerd.sockExternal engine socket
networkInterfacenstringinterface namedynamicHost network binding
diskLimitGiBdfloatGiB10Monitor only — disk usage alert threshold
diskDirectorydlstringpath/var/lib/edgelet/SQLite + volume data root
memoryLimitMiBmfloatMiB4096Monitor only — not cgroup-enforced
cpuLimitPercentpfloatpercent80Monitor only — not cgroup-enforced
logLimitGiBlfloatGiB10Combined daemon log rotation budget
logDirectoryldstringpath/var/log/edgelet/Daemon log files
logFileCountlcintcount10Rotated files per series
logLevelllstringDEBUG, INFO, WARN, ERRORINFOHot reload
statusFrequencySecondssfintseconds10Status POST interval
changeFrequencySecondscfintseconds20Controller changes poll
deviceScanFrequencysdintseconds60Device scan interval
watchdogEnabledwdboolon/offtrueOrphan container cleanup
edgeGuardFrequencyegfintseconds00 disables Edge Guard; forced 0 when unprovisioned
gpsModegpsstringauto, dynamic, manual, offautoGPS integration
gpsCoordinatesgpscstringlat,lonemptyManual GPS
gpsDevicegpsdstringdevice path/dev/ttyUSB0NMEA device
gpsScanFrequencygpsfintseconds60GPS poll interval
archftstringauto, amd64, arm64, arm, riscv64autoNode architecture
secureModesecboolon/offoffSecure mode flag
pruningFrequencypfinthours0Image/volume prune cycle; 0 disables scheduled prune
availableDiskThresholddtintpercent20Low-disk prune trigger
upgradeScanFrequencyufinthours24OTA readiness scan
devModedevboolon/offoffDeveloper mode
timezonetzstringIANA zoneEurope/IstanbulNode timezone

Run edgelet config --help for the live flag list.


File-only keys (no edgelet config flag)​

These appear in config.yaml or are set by provision/OTA:

KeyDefaultReloadNotes
iofogUuidempty—Set by provision; empty when unprovisioned
shutdownPolicyleave-running (docker/podman), drain-all (embedded monolithic)partialleave-running or drain-all. See Workload continuity
shutdownGracePeriodSeconds90yesDrain timeout for maintenance stops
controllerRequestTimeoutSeconds30yesController HTTP client timeout
controllerPingTimeoutSeconds60yesConnectivity probe timeout
pingFrequencyderivedyesController ping worker interval (seconds)
logReconcileCycleEveryNTicks60yesReconcile log sampling
namespacedefault—Agent namespace metadata
timeZoneEurope/Istanbul—Same as timezone

Private key material is stored in SQLite (agent_credentials), not in config.yaml.


Resource limits: monitor vs enforce​

SettingScopeEnforced?
Node memoryLimit / cpuLimit / diskLimitEdgelet node hostMonitor only — status and alerts
Manifest spec.container.memoryLimitSingle microserviceEnforced by container engine (see Deploy manifests)

Profiles​

currentProfile: production
profiles:
production:
controllerUrl: "http://localhost:51121/api/v3/"
containerEngine: edgelet
arch: auto

Switch without editing the file:

edgelet config switch production

See also​

Group 3See anything wrong with the document? Help us improve it!
ÿÿÿÿ