Uninstall Neo4j and clean up the created resources

1. Uninstall Neo4j Helm deployment

Uninstall the Neo4j Helm deployment.

helm uninstall my-neo4j-release
release "my-neo4j-release" uninstalled

2. Fully remove all the data and resources

Uninstalling the Helm release does not remove the created resources and data. Therefore, after uninstalling the helm deployment, you also have to delete all the data and resources.

  1. Display all data associated with the GCP persistent disk by running:

    gcloud compute disks describe "my-neo4j-disk"
    creationTimestamp: '2021-07-28T04:54:59.385-07:00'
    id: '756334900703722364'
    kind: compute#disk
    labelFingerprint: 42WmSpB8rSM=
    lastAttachTimestamp: '2021-07-28T05:45:03.723-07:00'
    lastDetachTimestamp: '2021-07-28T06:00:18.793-07:00'
    name: my-neo4j-disk
    physicalBlockSizeBytes: '4096'
    selfLink: https://www.googleapis.com/compute/v1/projects/my-neo4j-project/zones/europe-west2-a/disks/my-neo4j-disk
    sizeGb: '128'
    status: READY
    type: https://www.googleapis.com/compute/v1/projects/my-neo4j-project/zones/europe-west2-a/diskTypes/pd-ssd
    zone: https://www.googleapis.com/compute/v1/projects/my-neo4j-project/zones/europe-west2-a

    If you re-create Neo4j with the same settings, it will pick up the same disk again, and all the data will still be on it.

    Even if the GKE cluster is deleted, the persistent disk with the Neo4j data will still exist.

  2. Delete the GCP persistent disk:

    gcloud compute disks delete my-neo4j-disk
    The following disks will be deleted:
     - [my-neo4j-disk] in [europe-west2-a]
    Do you want to continue (Y/n)?  y
    Deleted [https://www.googleapis.com/compute/v1/projects/my-neo4j-project/zones/europe-west2-a/disks/my-neo4j-disk].

    If you want to delete the entire GKE Kubernetes cluster, run:

    gcloud container clusters delete my-neo4j-gke-cluster
  1. Display all data associated with the AWS EBS disk by running:

    aws ec2 describe-volumes --filters Name=tag:volume,Values=neo4j-k8s --query "Volumes[*].{ID:VolumeId}" --output text

    If you re-create Neo4j with the same settings, it will pick up the same disk again, and all the data will still be on it.

    Even if you delete the EKS cluster, the EBS disk with the Neo4j data will still exist. Note that the disk will be deleted if its Resource Group is deleted.

  2. Delete the AWS EBS disk using the volume ID:

    aws ec2 delete-volume --volume-id "<volume id>"

    If you are sure that you want to delete the entire EKS Kubernetes cluster, run:

    eksctl delete cluster my-neo4j-eks-cluster
  1. Display all data associated with the Azure managed disk by running:

    az disk show --name "my-neo4j-disk"

    If you re-create Neo4j with the same settings, it will pick up the same disk again and all the data will still be on it.

    Even if you delete the AKS cluster, the managed disk with the Neo4j data will still exist. Note that the disk will be deleted if its Resource Group is deleted.

  2. Delete the Azure managed disk:

    az disks delete --name "my-neo4j-disk"

    If you are sure that you want to delete the entire AKS Kubernetes cluster, run:

    az aks delete --name my-neo4j-aks-cluster
  1. Check the name of the PersistentVolumeClaim (pvc):

    kubectl get pvc
    NAME                      STATUS   VOLUME                CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    data-my-neo4j-release-0   Bound    my-neo4j-release-pv   1Ti        RWO            manual         43h

    If you re-create Neo4j with the same settings, it will pick up the PVC again, and all the data is still on it. If you use manually provisioned volumes and delete the PersistentVolumeClaim and the PersistentVolume in Kubernetes, the hostPath directory with the Neo4j data will still exist.

    When you use dynamically provisioned volumes and delete the PersistentVolume, the underlying data may or may not be removed, depending on the Docker Desktop version and configuration.

  2. To fully remove all the data and resources, delete the PersistentVolumeClaim in Kubernetes. The dynamically provisioned volumes are automatically removed when the PersistentVolumeClaim is deleted.