Before you start
- You need the owner or admin role.
- To delete an executor, first delete every node it hosts.
Revoke the API key
Use this when you want the executor to stop reaching Novacula right away — a compromised host, a colo you’re shutting down — without losing the executor or its history.1
Open API keys
In the sidebar, open API keys.
2
Find the key
Locate the key the executor uses. The last used column helps you match it to the right executor.
3
Revoke it
Open the key’s menu and choose Revoke. Its status changes to Revoked.
- The executor immediately reads as deactivated — it has no active credential, which is a different thing from an executor that merely stopped checking in. It’s hidden from the Executors list by default; turn on the explicit filter to see it.
- It can no longer reach Novacula, and its next sync attempt is refused.
- Its nodes stay in Novacula in their last reported state. They show as unreachable; any lifecycle action you queue applies only once the executor reconnects.
- The processes on the host keep running — the executor doesn’t stop just because it can’t reach Novacula.
Delete the executor
Use this when you’re decommissioning the host for good.1. Drain its nodes
You can’t delete an executor that still hosts nodes. For each node, stop it, then delete it — see the node lifecycle. Deleting a node removes its data, and there’s no automatic transfer to another executor. If you need to keep the data, copy the node’s data directory off the host before you delete it.2. Delete the row
Open Executors, select the executor, and choose Delete. The row is removed and the name frees up — you can reuse it for a new executor. The API key tied to the executor is revoked at the same time.3. Clean up your infrastructure
Novacula can’t reach into your infrastructure — the executor’s daemon and the node processes keep running until you remove them yourself.Agent (bare metal / VM)
Run on the host as root. The agent’s built-inuninstall removes only its own daemon — the per-node units, data directory, and firewall table survive it, so remove those too.
1
Stop the per-node units
They keep running after the agent is gone. List them, then disable and remove the unit files:
2
Remove the agent, its firewall table, and its files
3
Verify it's clean
Each command should return nothing (or “not found”):
Operator (Kubernetes)
The CRD and per-node resources outlive a plainhelm uninstall, so clean up in order.
1
Delete the nodes
Do this while the operator is still running — its finalizer tears down each node’s
StatefulSet, PVC, Service, Ingress, and NetworkPolicy:2
Remove the operator release
Removes the
Deployment, ServiceAccount, RBAC, Secret, and Service:3
Delete the CRD
The operator created it itself, so Helm never managed it:
4
Verify it's clean
Each should return empty; optionally drop the namespace too:
Terminating? If the operator was removed before its nodes, clear the finalizer by hand:
StatefulSet (persistentVolumeClaimRetentionPolicy.whenDeleted: Delete); if a PV uses the Retain reclaim policy, delete the released PVs separately.
Neither
uninstall nor helm uninstall revokes the executor’s API key or notifies Novacula — deleting the executor row (step 2) is what revokes the key. For the full install/uninstall walkthrough, see the bare metal or Kubernetes recipe.