NodeRingsDocs

Resume, recover, and roll back

Continue a failed registration, reconcile local state, or roll back checkpoints

Registration is checkpointed on the agent VM under ~/.nr/. If a run fails mid-way, you usually resume instead of starting over.

Resume after a failure

Use the same agent name (and the same major flags you care about):

nr cluster register --resume --name edge-ams-01

Typical reasons to resume:

  • Network blip while downloading tools or charts
  • Temporary API error
  • Operator credentials were missing on the first attempt

Inspect where you left off:

nr cluster status --name edge-ams-01
nr cluster info --name edge-ams-01

Re-run the operator phase only

If peering succeeded but the operator Helm install needs another pass (chart or image fix):

nr cluster register \
  --resume \
  --name edge-ams-01 \
  --reinstall-operator \
  --yes

--reinstall-operator and --skip-operator-install are mutually exclusive.

Wrong URL, token, or panel key

Those values live in a Kubernetes Secret on the agent. NodeRings does not keep a copy, so a typo is fixed by writing the Secret again and restarting the pods that already loaded the old value.

If the install stopped before the Secret existed, resume and answer the questions again. Leave --yes off so the CLI can ask:

nr cluster register --resume --name edge-ams-01

If the operator is already installed, --reinstall-operator keeps the old Secret unless you supply the corrected values. Use the same instance id as the first run (proxmox-1, vf-1, or svm-1 unless you chose another).

Proxmox:

export PROXMOX_URL="https://pve.example:8006"
export PROXMOX_USERNAME="kopfoperator@pve"
export PROXMOX_TOKEN_ID="kopf-operator-token"
export PROXMOX_TOKEN_SECRET="<token secret>"
export PROXMOX_INSTANCE_ID="proxmox-1"
nr cluster register --resume --name edge-ams-01 --reinstall-operator --yes
k3s kubectl -n proxmox-system rollout restart deployment
k3s kubectl -n vnc-gateway rollout restart deployment

VirtFusion:

export VIRTFUSION_URL="https://cp.example.com"
export VIRTFUSION_TOKEN="<global api token>"
export VIRTFUSION_USER_NAME="noderings"
export VIRTFUSION_USER_ID="5"
export VIRTFUSION_USER_API_TOKEN="<user api token>"
export VIRTFUSION_INSTANCE_ID="vf-1"
nr cluster register --resume --name edge-ams-01 --hypervisor-driver virtfusion --reinstall-operator --yes
k3s kubectl -n virtfusion-system rollout restart deployment
k3s kubectl -n vnc-gateway rollout restart deployment

SolusVM 2:

export SOLUSVM_URL="https://mn.example.com"
export SOLUSVM_TOKEN="<admin api token>"
export SOLUSVM_INSTANCE_ID="svm-1"
nr cluster register --resume --name edge-ams-01 --hypervisor-driver solusvm --reinstall-operator --yes
k3s kubectl -n solusvm-system rollout restart deployment
k3s kubectl -n vnc-gateway rollout restart deployment

Pterodactyl keys are replaced by running the installer again. Unset any earlier exports first, or the CLI will reuse those values and will not ask:

unset PTERODACTYL_PANEL_URL PTERODACTYL_APPLICATION_KEY PTERODACTYL_CLIENT_KEY PTERODACTYL_PANEL_USER_ID
nr cluster install-pterodactyl
k3s kubectl -n pterodactyl-system rollout restart deployment

The panel URL on the NodeRings platform form is separate. If that URL was wrong too, edit the platform so it matches the origin you just gave the CLI (scheme plus host, no /admin). The form does not store the keys.

Recover local state

If the cluster looks installed but local checkpoints are wrong or incomplete:

nr cluster recover --name edge-ams-01

Recover reconciles local state with what is actually present on the machine.

Roll back checkpoints

Roll installation state back to the last successful checkpoint (does not always uninstall every package):

nr cluster rollback --name edge-ams-01

Reset checkpoints (keep agent identity)

Clear checkpoints while keeping the agent ID/name association:

nr cluster reset --name edge-ams-01

Use this when you intentionally want register to treat phases as pending again without deleting the API agent.

When to deregister instead

If the VM is disposable or the install is badly corrupted, deregister uninstalls local components and can delete the agent from the API. Prefer resume/recover for transient failures.

Background