Deleting old data
About deleting old Calico data
You may need or wish to manually delete Calico data from your etcd datastore under the following conditions.
Deleting Calico data from etcdv2 after a successful migration and upgrade
Prerequisite
This procedure requires etcdctl v3. The etcdctl tool is installed along with etcd. To install just etcdctl, download the etcd release binary, untar it, and extract the etcdctl binary.
Deleting Calico data from etcdv2
Note: You must pass the same options you configured
calico-upgrade
with to etcdctl to achieve a connection. We include just the--endpoint
flag in the following commands. Depending on your etcd configuration, you may need to include additional parameters in these commands. Refer to the etcdctl documentation for etcdv2 datastores for more information about the flags and environment variables.
-
Issue the following command to retrieve a list of all of the Calico keys.
etcdctl --endpoint=<etcdv2-hostname:port> ls /calico --recursive
-
Issue the following command to delete the Calico keys.
etcdctl --endpoint=<etcdv2-hostname:port> rm /calico/ --recursive
-
Issue the following command to confirm that the Calico keys were deleted.
etcdctl --endpoint=<etcdv2-hostname:port> ls /calico --recursive
It should return
Error: 100: Key not found (/calico) [1186]
. -
Congratulations! You’ve cleaned Calico’s etcdv2 datastore of Calico data.
Deleting Calico data from etcdv3 after a partial migration
Prerequisites
This procedure requires etcdctl v3. The etcdctl tool is installed along with etcd. To install just etcdctl, download the etcd release binary, untar it, and extract the etcdctl binary.
Deleting Calico data from etcdv3
Note: You must pass the same options you configured
calico-upgrade
with to etcdctl to achieve a connection. We include just the--endpoints
flag in the following commands. Depending on your etcd configuration, you may need to include additional parameters in these commands or set environment variables. Refer to the etcdctl documentation for etcdv3 datastores for more information about the flags and environment variables.
-
Issue the following command to retrieve a list of all of the Calico keys.
ETCDCTL_API=3 etcdctl --endpoints=<etcdv3-hostname:port> get /calico/ --prefix --keys-only
-
Issue the following command to delete the Calico keys.
ETCDCTL_API=3 etcdctl --endpoints=<etcdv3-hostname:port> del /calico/ --prefix
It returns the number of keys it deleted.
-
Issue the following command to confirm that the Calico keys were deleted.
ETCDCTL_API=3 etcdctl --endpoints=<etcdv3-hostname:port> get /calico/ --prefix --keys-only
It should return nothing.
-
Congratulations! You’ve cleaned Calico’s etcdv3 datastore of Calico data.
Next steps
Return to Migrate your data to try again.
Deleting Calico data from the Kubernetes API datastore after a downgrade
Prerequisites
- This procedure requires kubectl.
- This procedure should only be done if you have upgraded to v3.x and then downgraded to your previous version.
Deleting Calico data from the Kubernetes API datastore
-
Check that the data exists in the Kubernetes API datastore. Issue the following.
kubectl get crd
- Verify the output contains lines with the following:
bgpconfigurations.crd.projectcalico.org
felixconfigurations.crd.projectcalico.org
clusterinformations.crd.projectcalico.org
networkpolicies.crd.projectcalico.org
-
Issue the following commands to delete the Calico data.
kubectl delete crd bgpconfigurations.crd.projectcalico.org kubectl delete crd felixconfigurations.crd.projectcalico.org kubectl delete crd clusterinformations.crd.projectcalico.org kubectl delete crd networkpolicies.crd.projectcalico.org
It returns the number of keys it deleted.
-
Issue the following command to confirm that the Calico data was deleted. Verify the output does not contain the
crd
s deleted above.kubectl get crd
- Congratulations! You’ve cleaned Calico’s Kubernetes API datastore.
Next steps
Return to Upgrading a self-hosted installation that uses the Kubernetes API datastore to try again.