Upgrade to v0.9.10
4 minute read
This page describes how to upgrade the United Manufacturing Hub to version 0.9.10. Before upgrading, remember to backup the database, Node-RED flows, and your cluster configuration.
Add Helm repo in UMHLens / OpenLens
Check if the UMH Helm repository is added in UMHLens / OpenLens.
To do so, from the top-left menu, select FIle > Preferences (or press CTRL + ,
).
Click on the Kubernetes tab and check if the Helm Chart section contains
the https://repo.umh.app
repository.
If it doesn’t, click the Add Custom Helm Repo button and fill in the following values:
- Helm repo name: united-manufacturing-hub
- URL: https://repo.umh.app
Then click Add.
Grafana plugins
In this release, the Grafana version has been updated from 8.5.9 to 9.3.1. Check the release notes for further information about the changes.
Additionally, the way default plugins are installed has changed. Unfortunatly, it is necesary to manually install all the plugins that were previously installed.
If you didn’t install any plugin other than the default ones, you can skip this section.
Follow these steps to see the list of plugins installed in your cluster:
Open the browser and go to the Grafana dashboard.
Navigate to the Configuration > Plugins tab.
Select the Installed filter.
Write down all the plugins that you manually installed. You can recognize them by not having the
Core
tag.The following ones are installed by default, therefore you can skip them:
- ACE.SVG by Andrew Rodgers
- Button Panel by UMH Systems Gmbh
- Button Panel by CloudSpout LLC
- Discrete by Natel Energy
- Dynamic Text by Marcus Olsson
- FlowCharting by agent
- Pareto Chart by isaozler
- Pie Chart (old) by Grafana Labs
- Timepicker Buttons Panel by williamvenner
- UMH Datasource by UMH Systems Gmbh
- Untimely by factry
- Worldmap Panel by Grafana Labs
Clear Workloads
Some workloads need to be deleted before upgrading. This process does not delete any data, but it will cause downtime. If a workload is missing, it means that it was not enabled in your cluster, therefore you can skip it.
To delete a resource, you can select it using the box on the left of the resource name and click the - button on the bottom right corner.
- Open the Workloads tab.
- From the Deployment section, delete the following deployments:
- united-manufacturing-hub-barcodereader
- united-manufacturing-hub-factoryinsight-deployment
- united-manufacturing-hub-grafana
- united-manufacturing-hub-kafkatopostgresql
- united-manufacturing-hub-mqttkafkabridge
- united-manufacturing-hub-iotsensorsmqtt
- united-manufacturing-hub-opcuasimulator-deployment
- From the StatefulSet section, delete the following statefulsets:
- united-manufacturing-hub-mqttbridge
- united-manufacturing-hub-hivemqce
- united-manufacturing-hub-nodered
- united-manufacturing-hub-sensorconnect
Upgrade Helm Chart
Now everything is ready to upgrade the Helm chart.
Navigate to the Helm > Releases tab.
Select the united-manufacturing-hub release and click Upgrade.
In the Helm Upgrade window, make sure that the
Upgrade version
field contains the version you want to upgrade to.You can also change the values of the Helm chart, if needed.
In the
grafana
section, find theextraInitContainers
field and change its value to the following:- image: unitedmanufacturinghub/grafana-umh:1.1.2 name: init-plugins imagePullPolicy: IfNotPresent command: ['sh', '-c', 'cp -r /plugins /var/lib/grafana/'] volumeMounts: - name: storage mountPath: /var/lib/grafana
Make these changes in the
kafka
section:Set the value of the
heapOpts
field to-Xmx2048m -Xms2048m
.Replace the content of the
resources
section with the following:limits: cpu: 1000m memory: 4Gi requests: cpu: 100m memory: 2560Mi
Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
Afterwards, you can reinstall the additional Grafana plugins.
Replace VerneMQ with HiveMQ
In this upgrade we switched from using VerneMQ to HiveMQ as our MQTT Broker (you can read the blog article about it).
While this process is fully backwards compatible, we suggest to update NodeRed flows and any other additional service that uses MQTT, to use the new service broker called united-manufacturing-hub-mqtt. The old united-manufacturing-hub-vernemq is still functional and, despite the name, also points to HiveMQ, but in future upgrades will be removed.
Additionally, for production environments, we recommend to enable RBAC for the MQTT Broker.
Please double-check if all of your services can connect to the new MQTT broker. It might be needed for them to be restarted, so that they can resolve the DNS name and get the new IP. Also, it can happen with tools like chirpstack, that you need to specify the client-id as the automatically generated ID worked with VerneMQ, but is now declined by HiveMQ.
Troubleshooting
Some microservices can’t connect to the new MQTT broker
If you are using the united-manufacturing-hub-mqtt service, but some microservice can’t connect to it, restarting the microservice might solve the issue. To do so, you can delete the Pod of the microservice and let Kubernetes recreate it.
ChirpStack can’t connect to the new MQTT broker
ChirpStack uses a generated client-id to connect to the MQTT broker. This
client-id is not accepted by HiveMQ. To solve this issue, you can set the
client_id
field in the integration.mqtt
section of the chirpstack configuration
file to a fixed value:
[integration]
...
[integration.mqtt]
client_id="chirpstack"