+++ title = 'Uninstallation' weight = 5 +++
The uninstall script provides safe teardown with shared-cluster awareness:
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | bashIf you installed with the metrics overlay:
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | OVERLAY=metrics bash| Variable | Default | Description |
|---|---|---|
REPO |
streamshub/developer-quickstart |
GitHub repository path |
REF |
main |
Git ref, branch, or tag |
OVERLAY |
(empty) | Overlay to uninstall (e.g. metrics) |
TIMEOUT |
120s |
kubectl wait/poll timeout |
LOCAL_DIR |
(empty) | Use a local directory instead of GitHub |
The uninstall follows a 4-phase process designed to be safe on shared clusters:
Phase 1 — Interactive CR cleanup (interactive mode only)
Scans for Kafka, Registry, and Console resources that were not created by the quick-start (i.e., resources without the app.kubernetes.io/part-of=streamshub-developer-quickstart label). If found, you're prompted to delete them so their finalizers can be processed while operators are still running.
Phase 2 — Delete operands
Removes the quick-start custom resources (Kafka, Registry, Console instances) and waits for finalizers to complete.
Phase 3 — Shared-cluster safety checks
For each operator group (Strimzi, Apicurio, Console, Prometheus), the script checks whether non-quick-start custom resources exist on the cluster. This determines whether CRDs are shared with other deployments.
Phase 4 — Selective operator removal
- Not shared — the entire operator group is removed, including CRDs
- Shared — only the operator deployment is removed; CRDs are retained so other deployments continue to function
The script reports which operator groups were retained and why.
Warning: On shared clusters, deleting CRDs will cascade-delete all custom resources of that type cluster-wide. Always check for non-quick-start resources first.
kubectl delete -k 'https://github.com/streamshub/developer-quickstart//overlays/core/stack?ref=main'Wait for all custom resources to be fully removed before continuing.
First, check for shared resources:
kubectl get kafkas -A --selector='!app.kubernetes.io/part-of=streamshub-developer-quickstart'
kubectl get apicurioregistry3 -A --selector='!app.kubernetes.io/part-of=streamshub-developer-quickstart'
kubectl get console.console.streamshub.github.com -A --selector='!app.kubernetes.io/part-of=streamshub-developer-quickstart'If no shared resources exist, delete the operators:
kubectl delete -k 'https://github.com/streamshub/developer-quickstart//overlays/core/base?ref=main'For the metrics overlay, use overlays/metrics/base and overlays/metrics/stack instead of overlays/core.
All resources deployed by the quick-start carry the label app.kubernetes.io/part-of=streamshub-developer-quickstart:
# List all namespaced resources
kubectl get all -A -l app.kubernetes.io/part-of=streamshub-developer-quickstart
# List cluster-scoped resources
kubectl get crds,clusterroles,clusterrolebindings -l app.kubernetes.io/part-of=streamshub-developer-quickstart