Suspend a machine to stop paying for compute while keeping your data safe. The machine’s disk is snapshotted before the server is deleted. Resume creates a new server from the snapshot — your machine comes back with the same hostname, Kubernetes identity, and local data.
Cost comparison
| State | 40 GB disk cost (Hetzner) | Notes |
|---|
| Running (cx23) | ~€4.11/month | Full compute + storage |
| Suspended (snapshot) | ~€0.40/month | Storage only — 90% savings |
| Deleted | €0/month | Data permanently lost |
Suspend is the middle ground between running (expensive) and deleting (permanent).
How to suspend
- Go to your cluster’s Machines tab
- Click the menu on the machine you want to suspend
- Choose Suspend machine
- Confirm in the dialog
CNAP will:
- Gracefully shut down the server
- Create a snapshot of the full disk
- Delete the cloud server (billing stops)
- Show the machine in the Suspended Machines section
The machine shows a “Suspending…” status while the workflow runs (typically 1-3 minutes depending on disk size).
How to resume
- Find the machine in the Suspended Machines section
- Click Resume
CNAP will:
- Create a new server from the snapshot
- Wait for it to boot
- Delete the snapshot (data is now on the new server)
- The machine rejoins your cluster automatically
Resume typically takes 1-2 minutes. The machine comes back with the same hostname and Kubernetes node identity.
What’s preserved
| Data type | Preserved? | How |
|---|
| Local storage (local-path-provisioner) | Yes | Disk data is in the snapshot |
| LINSTOR/DRBD volumes | Yes | DRBD replicas on other nodes stay intact, auto-resync on return |
| Kubernetes node identity | Yes | Same hostname from snapshot, kubelet reconnects |
| PersistentVolume bindings | Yes | Node affinity uses hostname label — matches on resume |
| Running pods | No | Pods are evicted on suspend, rescheduled on resume |
Pods running on the machine are terminated during suspend. Stateless workloads reschedule to other nodes. Stateful workloads using local PVs wait until the machine is resumed.
Auto-suspend on subscription downgrade
When your Pro subscription ends, CNAP automatically suspends all platform-managed machines instead of deleting them:
- Subscription ends → machines are suspended
- Snapshots kept for 90 days
- Re-subscribe → dashboard shows suspended machines with Resume button
- After 90 days → snapshots permanently deleted
Bring-your-own-key (BYOM) machines are not affected by subscription changes. They stay running because you pay the provider directly.
Snapshot retention
Suspended machine snapshots are kept for 90 days. After that, they are permanently deleted by the hourly cleanup job. The dashboard shows the expiration date for each suspended machine.
To permanently delete a suspension early (and its snapshot), click the trash icon next to the suspended machine. This is irreversible.
API
Suspend and resume are available via the REST API:
# Suspend a machine
curl -X POST https://api.cnap.tech/v1/compute/machines/{providerId}/suspend \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"
# List suspended machines
curl https://api.cnap.tech/v1/compute/suspensions?workspace=$WORKSPACE_ID \
-H "Authorization: Bearer $TOKEN"
# Resume from suspension
curl -X POST https://api.cnap.tech/v1/compute/suspensions/{id}/resume \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"
# Delete a suspension (permanently removes snapshot)
curl -X DELETE https://api.cnap.tech/v1/compute/suspensions/{id} \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"
Provider differences
Different cloud providers handle “stop billing” differently. CNAP abstracts this — the suspend/resume API is the same regardless of provider.
| Provider | What happens on suspend |
|---|
| Hetzner, DigitalOcean, Vultr, Linode, OVH | Snapshot disk → delete server (these providers bill for stopped servers) |
| AWS, GCP, Azure | Stop instance (compute billing stops automatically) |
You don’t need to know which approach your provider uses — CNAP picks the right strategy.