Register your first agent
Install nr, set a service-account token, and register a provider VM as a peered NodeRings agent
This tutorial walks you through a complete first success: install the CLI on an agent VM, export a service-account token, register the cluster, and confirm it is healthy.
Plan about 20–40 minutes, depending on download speed and whether you install the hypervisor operator in the same run.
What you will end with
nron yourPATHNR_API_TOKENset from a service account (not OAuth on the VM)- A peered agent cluster named something like
edge-ams-01 - A passing
nr cluster verify
Before you start
Confirm these are ready:
- Provider organization verified (marketplace review approved).
- A service account in that organization with a token that can create agents. Create it in the console under Access Control → Service Accounts.
- A clean Ubuntu 22.04+ VM dedicated to the agent (2 vCPU, 4 GB RAM, outbound HTTPS).
- The VM’s public IPv4 (or the address NodeRings and Liqo should use to reach the agent).
- The organization UUID (
--org-id). Create agent in the console copies a command that already includes it. - Gateway region
AMS01(currently the supported value). - Optional but recommended for a production agent: a hypervisor API token as described in Get started (Proxmox), Get started (VirtFusion), or Get started (SolusVM 2).
Prefer not to run the agent on the Proxmox host itself. A dedicated VM keeps failure domains and permissions cleaner.
1. Install the CLI
On the agent VM:
curl -fsSL https://raw.githubusercontent.com/noderings/cli/main/scripts/install.sh | bash
nr versionIf nr version prints a version string, continue.
2. Export the service account token
Do not run nr auth login or nr auth login --no-browser on the agent VM.
On the VM:
export NR_API_TOKEN='<service-account-token>'
echo $NR_API_TOKEN
nr auth statusecho $NR_API_TOKEN must print the JWT. You should see an authenticated status.
--org-id is not a credential. A missing token, an expired JWT, or a token from another organization is rejected.
3. Register the agent
Replace the placeholders with your values (or paste the command from Create agent):
nr cluster register \
--name edge-ams-01 \
--agent-ip 203.0.113.10 \
--gateway-region AMS01 \
--org-id <org-uuid>What happens next (high level):
- Create or reuse the agent record in NodeRings
- Install k3s, then Calico, then Liqo
- Peer with NodeRings and offload the VNC gateway namespace
- Optionally install the hypervisor operator stack (unless you pass
--skip-operator-install) - Run verify automatically at the end
The CLI may prompt for hypervisor credentials and related secrets when installing the operator. You can skip the operator on a first peering-only lab run:
nr cluster register \
--name edge-ams-01 \
--agent-ip 203.0.113.10 \
--gateway-region AMS01 \
--org-id <org-uuid> \
--skip-operator-installWithout the operator, NodeRings cannot provision customer VMs on your hypervisor. Use --skip-operator-install only for connectivity labs; finish the operator before marketplace listing.
If the run is interrupted, resume from the last checkpoint:
nr cluster register --resume --name edge-ams-01 --org-id <org-uuid>4. Verify health
If register finished cleanly, verify already ran. Re-check anytime:
nr cluster verify --name edge-ams-01 --org-id <org-uuid>
nr cluster status --name edge-ams-01 --org-id <org-uuid>A healthy result means Kubernetes, Calico, Liqo, and peering look good. Operator checks appear unless you skipped operator install.
5. Continue in the dashboard
Registration is only the connectivity half of onboarding. Next:
- Confirm the agent shows as provisioned under Agents
- Add platforms and nodes
- Continue Get started (Proxmox), Get started (VirtFusion), or Get started (SolusVM 2) through plans and preflight
If something fails
| Symptom | What to try |
|---|---|
| Auth fails / unauthenticated | Confirm echo $NR_API_TOKEN prints the JWT; mint a new service-account token |
| “Provider organization review is pending” | Finish marketplace verification before creating agents |
| Permission denied | Confirm --org-id matches the service account’s organization |
| Prechecks fail | Free ports (especially 6443), add disk/RAM, use Ubuntu |
| Register stops mid-way | nr cluster register --resume --name <same-name> --org-id <org-uuid> |
| Peering / Liqo errors | nr cluster health --name <name> then verify & diagnose |
For deeper background, read How registration works.