Modules
Deep-dive documentation for daemon components under internal/. For system overview and diagrams, see Architecture.
Module startup order
The Supervisor opens SQLite, then starts modules in dependency order. Embedded containerd (when containerEngine=edgelet) must be running before Supervisor starts; bootstrap owns that in cmd/edgelet.
Approximate sequence in internal/supervisor/supervisor.go:
- Open
store(/var/lib/edgelet/edgelet.db) statusreporter. Aggregates module and daemon status for Controller POSTnetwork. Host interface managementresourceconsumption. Host resource samplingfieldagent. Controller REST client and sync workersprocessmanager. Container reconcile (after engine wired)gps. NMEA/device integrationedgeletapi. HTTPS + Unix/v1/...pruning. Scheduled/threshold image + unused-local-model prune (not persistent VOLUME data)edgeguard. Hardware attestation loop
Host hardware/USB inventory posting (formerly Resource Manager) is removed. Edge Guard stays.
Shutdown reverses the order; store.Close() runs last (WAL checkpoint).
Lazy or engine-bound components (not separate Supervisor Start() modules):
volumemount. Initialized on first use; driven by Field Agent syncdnsresolver. Started with edgelet enginehealthcheck. Goroutine whencontainerEngine=edgeletproxy. Updated from Controller change feedruntimeapi. Library facade for EdgeletAPI handlersserviceaccount. Reconciled from Process Manager / Field Agentmodelmanager. Model artifact reconcile (wired from Supervisor / EdgeletAPI)
StatusReporter module indices
GET /v1/system/status exposes modulesStatus[] aligned with internal/utils/constants.go:
| Index | Module |
|---|---|
| 0 | Resource Consumption Manager |
| 1 | Process Manager |
| 2 | Status Reporter |
| 3 | EdgeletAPI |
| 4 | Field Agent |
| 5 | (unused: former Resource Manager; indexes are not reshuffled) |
| 6 | GPS Manager |
Edge Guard, Pruning, Volume Mount, and SSH Proxy are not in this fixed array; their health surfaces via logs and dedicated status objects.
Module documentation
Tier 1: core runtime
| Module | Document |
|---|---|
| Supervisor | Supervisor |
| Field Agent | Field agent |
| Process Manager | Process manager |
| EdgeletAPI | Edgelet API module |
| SQLite Store | Store |
Tier 2: security and identity
| Module | Document |
|---|---|
| Auth | Auth |
| Service Account | Service account |
| Edge Guard | EdgeGuard: operator guide: EdgeGuard |
Tier 3: runtime plumbing
| Module | Document |
|---|---|
| Container Engines | Engines: operator guide: Container engines |
| DNS Resolver | DNS resolver: operator guide: DNS |
| Healthcheck Runner | Health check |
| Pruning Manager | Pruning |
| Volume Mount Manager | Volume mount |
| Runtime API Facade | Runtime API |
Tier 4: supporting
| Module | Document |
|---|---|
| Status Reporter | Status reporter |
| Resource Manager (removed) | Resource manager |
| Resource Consumption | Resource consumption |
| Network Manager | Network |
| GPS Manager | GPS |
| SSH Proxy Manager | Proxy |
| ControlPlane (runtime) | Control plane module: operator guide: Local control plane |
Related operator docs
| Topic | Document |
|---|---|
| EdgeletAPI usage | Edgelet API |
| Controller sync / CP deploy | Local control plane |
| SQLite backup / wipe | Persistence |
| Workload volumes | Volumes |
| Container engines | Container engines |
| DNS | DNS |
| Workload labels/env | Workload metadata |
| Manifest YAML | Manifests |
| Model artifacts | Models |
| Knowledge artifacts | Knowledge |
| Crash / last-error inspect | Troubleshooting |