Skip to content

Tear it down

Deleting a CAPVCO cluster is a single command, and it cleans up everything it created on whitesky.cloud — VMs, disks, the load balancer, DNS records, and the cloudspace(s). No orphaned resources, no manual portal clicking.

This destroys the workload cluster and its data

Anything not backed up (including data on whitesky.cloud disks) is gone. If you provisioned etcd backups or PVs you care about, make sure they’re safe first.

Delete

Run this against the management cluster (not the workload kubeconfig):

# make sure KUBECONFIG points at the management cluster again
unset KUBECONFIG        # if you exported the workload one on the previous page

kubectl delete cluster my-cluster

Cluster API deletes cooperatively and in order:

flowchart LR
  A["kubectl delete cluster"] --> B["CAPI drains & deletes<br/>Machines"]
  B --> C["VCOMachine finalizers<br/>delete VMs, disks, portforwards"]
  C --> D["VCOCluster finalizer<br/>deletes LB, DNS, cloudspace(s)"]

Every backend delete is 404-tolerant and idempotent, so a partial or repeated teardown converges cleanly rather than getting stuck.

Verify nothing was left behind

kubectl get clusters,machines -l cluster.x-k8s.io/cluster-name=my-cluster
# -> "No resources found" once teardown completes

The VCOCluster object lingers (with its finalizer) until the cloudspace is actually gone, then disappears — so its removal is your signal that whitesky.cloud is clean. You can confirm in the whitesky.cloud portal that the cluster’s cloudspace no longer exists.

Clean up the rest (optional)

kubectl delete secret my-cluster-vco-credential      # the credential Secret isn't owned by the cluster
kind delete cluster --name capvco-mgmt               # if this was a throwaway local management cluster

Where next?

You’ve built, used, and torn down a cluster. Now make it production-shaped: