> For the complete documentation index, see [llms.txt](https://docs.cybus.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cybus.io/2-1-0/documentation/installation-and-upgrades/uninstalling-connectware/uninstalling-connectware-kubernetes.md).

# Uninstalling Connectware (Kubernetes)

Uninstall Connectware from a Kubernetes cluster using Helm.

Uninstalling Connectware removes Connectware from your system, including all containers, volumes, and service configurations.

{% hint style="warning" %}
Make sure to back up any important data before proceeding with the uninstallation, as this process will permanently remove all Connectware-related data from your system.
{% endhint %}

## Prerequisites

* [Helm version 3](https://helm.sh/docs/intro/quickstart/#install-helm) is installed on your system.
* [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) is installed on your system.
* You know the name and namespace of your Connectware installation (see [Obtaining the Name, Namespace, and Version of your Connectware Installation](/2-1-0/documentation/connectware-on-kubernetes/connectware-helm-chart.md#obtaining-the-name-namespace-and-version-of-your-connectware-installation)).

## Uninstalling Connectware

To uninstall Connectware, use the helm uninstall command on your Connectware on Kubernetes installation:

{% code lineNumbers="true" %}

```bash
helm uninstall -n ${NAMESPACE} ${INSTALLATION_NAME}
```

{% endcode %}

## Cleaning up Leftover Resources

Some resources will intentionally not be removed, like some PersistentVolumeClaims, and potentially ConfigMaps and secrets manually created for mTLS.

If you want to completely clean up, for example for a fresh install, use this command to identify the resources:

{% code lineNumbers="true" %}

```bash
kubectl -n ${NAMESPACE} get all,cm,secret,pvc
```

{% endcode %}

Keep in mind that some resources are part of a standard Kubernetes namespace, for example `configmap/kube-root-ca.crt` or `service/kubernetes`. After identifying the resources for cleanup, use this command to remove them:

{% code lineNumbers="true" %}

```bash
kubectl -n ${NAMESPACE} delete <resource-1> <resource-2> <resource-n>
```

{% endcode %}

**Example**

{% code lineNumbers="true" %}

```bash
kubectl -n ${NAMESPACE} delete persistentvolumeclaim/brokerdata-broker-0
persistentvolumeclaim/brokerdata-broker-1 configmap/cw-mtls-ca-cert
secret/cw-mtls-welder-robots
persistentvolumeclaim/postgresql-postgresql-0
persistentvolumeclaim/certs
```

{% endcode %}

{% hint style="info" %}
If you plan a fresh installation in the same location, make sure to remove `persistentvolumeclaim/postgresql-postgresql-0` and `persistentvolumeclaim/certs`.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cybus.io/2-1-0/documentation/installation-and-upgrades/uninstalling-connectware/uninstalling-connectware-kubernetes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
