Skip to content
Ciro Scognamiglio edited this page Jun 30, 2026 · 7 revisions

The EdgeNet Node Manager Wiki

Whereas the nodes of a classic Kubernetes cluster all reside in a single datacenter, the EdgeNet extensions to Kubernetes allow a cluster to include nodes distributed across the internet, including nodes contributed by third parties. The EdgeNet node manager is what integrates these distributed nodes into the cluster.

Notably, the node manager is used by the current version of the PlanetLab testbed (https://planetlab.io/), which is itself powered by EdgeNet.

The node manager is a modular Go agent that runs as a systemd service on each contributed node, handling the node's full lifecycle from initial installation and bootstrapping through deployment and orchestration.

Table of Contents


About

The node manager is a core component of the EdgeNet ecosystem, working in tandem with the EdgeNet Console. It is designed to automate the management of remote nodes. It provides a centralized orchestrator that communicates with nodes, manages their configuration (including WireGuard networking), and integrates them into the Kubernetes cluster.

Features

  • Modular Provisioning: Support for multiple backends (Kubernetes, etc.) via a plugin interface.
  • Stable Identity: Automatic generation and persistence of WireGuard keypairs and node identity.
  • Idempotent Operations: Safe to restart; the agent checks existing state before applying changes.
  • Structured Logging: Uses zap for high-performance, structured logging.
  • Packaging Support: Easily create .deb and .rpm packages.

Configuration

The agent's configuration is managed through flags, environment variables, and a configuration file (defaulting to /etc/edgenet/agent.conf).

Precedence: Flags > Environment Variables > Config File

Development

Running Tests

make test

Linting

make lint

Contributors

Copyright and License

Copyright © 2026 Sorbonne Université.

This project is licensed under the MIT License; see the LICENSE file for details.

Clone this wiki locally