# Upgrading Connectware to 2.0.1 (Kubernetes)

Connectware 2.0.1 introduces enhancements to the [Data Explorer](https://docs.cybus.io/2-0-6/documentation/monitoring/data-explorer).

{% hint style="info" %}
If you are using services configured with `CYBUS_MQTT_ROOT`, you must run a migration script after installing Connectware 2.0.1 to ensure full Data Explorer compatibility.

If you are not using `CYBUS_MQTT_ROOT`, you can [upgrade](#upgrading-procedure) as usual — just note the additional [hardware requirements](#hardware-requirements).
{% endhint %}

## Disclaimer

{% hint style="info" %}
When upgrading your Connectware instance, follow the upgrade path based on your current version:

* **If you are on version 1.4.1 or below**
  * Upgrade sequentially: **1.5.0 → 1.7.0 → 2.0.0 → 2.0.1 → 2.0.2 → 2.0.5 → 2.0.6**
* **If you are between version 1.5.0 and 1.6.2**
  * Upgrade sequentially: **1.7.0 → 2.0.0 → 2.0.1 → 2.0.2 → 2.0.5 → 2.0.6**
* **If you are on version 1.7.0 or newer (but below 2.0.0)**
  * Upgrade sequentially: **2.0.0 → 2.0.1 → 2.0.2 → 2.0.5 → 2.0.6**
* **If you are on version 2.0.0**
  * Upgrade sequentially: **2.0.1 → 2.0.2 → 2.0.5 → 2.0.6**
* **If you are on version 2.0.1**
  * Upgrade sequentially: **2.0.2 → 2.0.5 → 2.0.6**
* **If you are on version 2.0.2, 2.0.3, or 2.0.4**
  * Upgrade sequentially: **2.0.5 → 2.0.6**
* **If you are on version 2.0.5**
  * Upgrade directly to **2.0.6**
* **If you are performing a clean or new installation**
  * No upgrade path required. You can install the **latest available version** directly.

**Detailed instructions on each upgrade step**

* [Upgrading Connectware to 2.0.6 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-6-kubernetes)
* [Upgrading Connectware to 2.0.5 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-5-kubernetes)
* [Upgrading Connectware to 2.0.2 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-2-kubernetes)
* [Upgrading Connectware to 2.0.1 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-1-kubernetes)
* [Upgrading Connectware to 2.0.0 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-0-kubernetes)
* [Upgrading Connectware to 1.7.0 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-1-7-0-kubernetes)
* [Upgrading from Connectware 1.x to 1.5.0 (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-from-1-x-to-1-5-0-kubernetes)
  {% endhint %}

## Hardware Requirements

Connectware 2.0.1 adds a new microservice for MQTT topic exploration. As a result, Connectware requires the following **additional resources**:

* 400m CPU (0.4 CPU)
* 1500 MiB of memory

On Kubernetes, this service runs with two replicas by default, effectively doubling the resource usage compared to Docker, but providing redundancy. Ensure your cluster has sufficient spare capacity before upgrading.

{% hint style="info" %}
As with any deployment, we recommend monitoring system performance and adjusting resources as needed.
{% endhint %}

## Upgrading Procedure

{% hint style="info" %}
If your installation is older than 2.0.0, first complete the [upgrade to 2.0.0](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes/upgrading-connectware-to-2-0-0-kubernetes) before upgrading to 2.0.1.
{% endhint %}

{% stepper %}
{% step %}

#### Upgrading Connectware to 2.0.1

* Update your Helm chart values and deploy Connectware 2.0.1. For more information, see [Upgrading Connectware (Kubernetes)](https://docs.cybus.io/2-0-6/documentation/installation-and-upgrades/upgrading-connectware/upgrading-connectware-kubernetes).

**Result**: Connectware is upgraded to 2.0.1.

{% hint style="info" %}
If you are using services configured with `CYBUS_MQTT_ROOT`, continue with [step 2](#migrating-services-with-cybus_mqtt_root-configuration).

If you are not using `CYBUS_MQTT_ROOT`, your Connectware upgrade to 2.0.1 is complete. Just note the additional [hardware requirements](#hardware-requirements).
{% endhint %}
{% endstep %}

{% step %}

#### Migrating Services with `CYBUS_MQTT_ROOT` Configuration

If you are using services configured with `CYBUS_MQTT_ROOT`, you must run a migration script after installing Connectware 2.0.1 to ensure full Data Explorer compatibility.

1. Set the shell variable `${YOUR_CONNECTWARE_NAMESPACE}` to the Kubernetes namespace in which your Connectware is installed.
2. Run the migration script. This is required if you have services using `CYBUS_MQTT_ROOT`.

{% code lineNumbers="true" %}

```bash
kubectl debug -it \
  -n ${YOUR_CONNECTWARE_NAMESPACE} $(kubectl get pod -n ${YOUR_CONNECTWARE_NAMESPACE} -lapp=system-control-server -o name) \
 --image=registry.cybus.io/cybus/connectware-toolkit:1.3.0 \
 --target=system-control-server --profile general \
 -- bash -c 'cw-db-migrate-2_0_1'
```

{% endcode %}

3. Verify that the script ran without errors.
4. Restart the `topic-explorer` Deployment:

{% code lineNumbers="true" %}

```bash
kubectl rollout restart -n ${YOUR_CONNECTWARE_NAMESPACE} deployment topic-explorer
```

{% endcode %}

**Result:** The migration script updates the database with new column values. You do not need to reinstall your services.
{% endstep %}
{% endstepper %}
