> ## Documentation Index
> Fetch the complete documentation index at: https://arize-ax.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Fresh reinstall cleanup

> Destructive cleanup procedure for intentionally discarding an Arize AX install before reinstalling on Kubernetes.

## Overview

This procedure removes an Arize AX install from any Kubernetes cluster, including managed cloud, OpenShift, Rancher, and bare metal, so you can reinstall from scratch.

<Warning>
  Use this only when you are intentionally discarding the previous Arize AX install. The PVC deletion below removes in-cluster Arize AX data. Only run this when data loss is acceptable or you have a backup and restore plan.
</Warning>

Run from a workstation with `kubectl` and `helm` configured for the target cluster:

```bash theme={null}
helm uninstall arize-op -n arize-operator || true

kubectl delete all,cm,secret,pvc,sa,role,rolebinding,cronjob,job \
  -n arize --all --ignore-not-found=true --wait=false || true
kubectl delete all,cm,secret,pvc,sa,role,rolebinding,job \
  -n arize-operator --all --ignore-not-found=true --wait=false || true

kubectl delete ns arize --wait=false || true
kubectl delete ns arize-operator --wait=false || true
kubectl wait --for=delete ns/arize --timeout=300s || true
kubectl wait --for=delete ns/arize-operator --timeout=300s || true
```

`helm uninstall` removes the operator chart's cluster-scoped resources (such as the Arize AX Prometheus node `ClusterRole` and `ClusterRoleBinding`) automatically. The chart applies a `helm.sh/resource-policy: keep` annotation to both namespaces, so the explicit `kubectl delete ns` calls above are required.

Some Arize AX pods use a long graceful termination window. Gazette, for example, sets `terminationGracePeriodSeconds: 1500` (25 minutes). If namespace deletion stays in `Terminating` for more than a few minutes, force-delete any stuck pods to unblock it:

```bash theme={null}
kubectl get pods -n arize -o name \
  | xargs -r kubectl delete -n arize --grace-period=0 --force
```

If a namespace is still stuck after its pods are gone, remove the namespace finalizer. Use this as a last resort: it bypasses controllers that may still be reconciling resources.

```bash theme={null}
kubectl get ns arize -o json \
  | jq 'del(.spec.finalizers)' \
  | kubectl replace --raw /api/v1/namespaces/arize/finalize -f -
```

Before reinstalling, verify both namespaces are gone:

```bash theme={null}
kubectl get ns arize || true
kubectl get ns arize-operator || true
```

Verify no leftover pods or resources exist in the recreated namespace before continuing.

If the cluster uses Longhorn, also check for old Arize AX volumes before reinstalling. Repeated test installs can leave detached Longhorn volumes even after Kubernetes namespaces and PVCs are gone, and those volumes still consume disk:

```bash theme={null}
kubectl get volumes.longhorn.io -n longhorn-system
```

Delete only volumes that clearly belong to the previous Arize AX install and whose data you intend to discard. Do not delete volumes for other namespaces or other applications.
