Edgelet nodes
An Edgelet node is a member of a Datasance PoT cluster. It runs Edgelet, receives workloads, and joins the router and NATS fabrics. These pages cover the YAML kinds, the bootstrap pipeline, and how the Controller builds those fabrics.
A control plane must already exist in the namespace. Edgelet as a standalone engine is documented under Edgelet.
Three kinds
| Kind | Use |
|---|---|
Agent | Production Edgelet node. potctl reaches the host over SSH and bootstraps Edgelet. See Remote node. |
LocalAgent | Edgelet on the machine where potctl is running. This is an extra local node. The control plane system node is a different object. See Local node and spec.systemAgent on a local control plane. |
AgentConfig | Controller record only. No host bootstrap. See AgentConfig. |
User YAML uses the flavor apiVersion. Examples on these pages use <FlavorYaml> so the group and image registry match the site you are reading. The deploy command is deploy with -f.
potctl deploy -f agents.yaml -n my-ecn
Say Edgelet node in the console and in these guides. The YAML kind stays Agent.
Component pairing (v3.9.0)
| Component | Version |
|---|---|
| potctl | v3.9.0 |
| Edgelet (binary or image) | v1.1.0 (image tag 1.1.0) |
Controller, operator, Router, and NATS pins for this train are on Control plane.
Host architecture values used at deploy are amd64, arm64, arm, riscv64, and auto where that value is accepted.
Two deploy phases
deploy -f separates the Controller record from the host install.
For an Agent or LocalAgent in one file:
- AgentConfig phase. Explicit
kind: AgentConfigdocuments run against the Controller API first. For eachAgentorLocalAgentwith no matching AgentConfig, potctl synthesizes one fromspec.config, the node name, and the host. Matching is bymetadata.name. When names match, host and tags from the node spec are merged into that AgentConfig. - Host phase. potctl bootstraps Edgelet, may update AgentConfig again when
spec.configis set, runsedgelet configandedgelet provision, and stores the node in the CLI namespace config (~/.iofog/v3).
upstreamRouters and upstreamNatsServers are Edgelet node names in YAML. potctl resolves them to UUIDs at deploy time. The upstream node must already exist on the Controller. Deploy it first, or put its AgentConfig in the same file before the node that names it.
One file may also contain a control plane, volumes, and applications. Node deploy runs only after control plane executors succeed. metadata.namespace, when set, must match -n.
System node on the control plane
The system Edgelet node on a Controller host is not kind: Agent. Declare it in control plane YAML:
| Control plane | YAML path |
|---|---|
Remote ControlPlane | controllers[].systemAgent |
LocalControlPlane | spec.systemAgent |
Bootstrap runs when that host is prepared. The later system-node step only pushes AgentConfig and provisions. It does not bootstrap Edgelet again. Config fields for that record are the same shape as AgentConfig fields. Scripts live on the control plane object. See Remote and Local.
Console
Open Nodes. The pages are Edgelet List, Edgelet Map, and Mesh Graph. The first SSH install is a CLI deploy. After the node exists, the console and potctl share the Controller API.
Procedures
Get started already has the operator steps. Use these links. Do not treat this section as a second copy.
| Procedure | Guide |
|---|---|
| Install on a host | Setup Edgelet nodes |
| Config push | Configuration updates |
| EdgeGuard | EdgeGuard |
| Attach and detach | Attach and detach |
| Volumes | Volume distribution |
| Prune | Image pruning |
| Upgrade and rollback | Upgrade and rollback |
| Reconcile | Reconcile |
| Logs and exec | Node logs and exec |
| Console screens | Nodes |
Day-2 verbs are summarized on Lifecycle.
EdgeGuard
edgeGuardFrequency on the node config is the scan interval in seconds. 0 disables scans. What a signature change does, and how to turn scans on, is in EdgeGuard. The field is listed on AgentConfig fields.
Upgrade and rollback Edgelet
Fleet nodes move to Edgelet v1.1.0 with upgrade agent after the control plane is healthy. Rollback uses the same flow with the previous version. Steps and workload impact are in Upgrade and rollback.
Attach, detach, and move
Detach removes the Controller record and keeps Edgelet on the host so you can attach the node again. Move is that transfer across namespaces. Commands, delete, and SSH cache updates are in Attach and detach.
Service distribution tags
To receive local TCP bridge listeners for a Service, tag the node or its AgentConfig with the distribution prefix and the token:
metadata:
tags:
- "service.iofog.org/tag: checkout"
- "service.iofog.org/tag: all"
checkout matches a Service whose metadata.tags includes checkout. The all token matches every Service.
Guides
| Page | Contents |
|---|---|
| Remote node | kind: Agent |
| Agent fields | SSH, package, scripts, spec.config |
| Local node | kind: LocalAgent |
| LocalAgent fields | Local host fields and spec.config |
| AgentConfig | Controller record only |
| AgentConfig fields | spec configuration |
| Bootstrap | Install layers and custom scripts |
| Lifecycle | Day-2 verbs |
| Networking | Router and NATS from declarative config |
| Router fabric | routerMode, listeners, upstreams |
| NATS fabric | natsMode, leaf, server, JetStream |