This is the multi-page printable view of this section. Click here to print.
Upgrading
- 1: Upgrade to v0.15.0
- 2: Upgrade to v0.14.0
- 3: Upgrade to v0.13.7
- 4: Upgrade to v0.13.6
- 5: Upgrade to v0.10.6
- 6: Management Console Upgrades
- 7: Migrate to Data Model V1
- 8: Archive
- 8.1: Upgrade to v0.9.34
- 8.2: Upgrade to v0.9.15
- 8.3: Upgrade to v0.9.14
- 8.4: Upgrade to v0.9.13
- 8.5: Upgrade to v0.9.12
- 8.6: Upgrade to v0.9.11
- 8.7: Upgrade to v0.9.10
- 8.8: Upgrade to v0.9.9
- 8.9: Upgrade to v0.9.8
- 8.10: Upgrade to v0.9.7
- 8.11: Upgrade to v0.9.6
- 8.12: Upgrade to v0.9.5
- 8.13: Upgrade to v0.9.4
1 - Upgrade to v0.15.0
This page describes how to upgrade the United Manufacturing Hub from version 0.14.0 to 0.15.0. Before upgrading, remember to back up the database, Node-RED flows, and your cluster configuration.
Upgrade Helm Chart
Upgrade the Helm chart to the 0.15.0 version:
bash <(curl -s https://management.umh.app/binaries/umh/migrations/0_15_0.sh)
Troubleshooting
If for some reason the upgrade fails, you can delete the deployment and statefulsets and try again: This will not delete your data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment \
united-manufacturing-hub-factoryinsight-deployment \
united-manufacturing-hub-iotsensorsmqtt \
united-manufacturing-hub-opcuasimulator-deployment \
united-manufacturing-hub-packmlmqttsimulator \
united-manufacturing-hub-mqttkafkabridge \
united-manufacturing-hub-kafkatopostgresqlv2 \
united-manufacturing-hub-kafkatopostgresql \
united-manufacturing-hub-grafana \
united-manufacturing-hub-databridge-0 \
united-manufacturing-hub-console
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset \
united-manufacturing-hub-hivemqce \
united-manufacturing-hub-kafka \
united-manufacturing-hub-nodered \
united-manufacturing-hub-sensorconnect \
united-manufacturing-hub-mqttbridge \
united-manufacturing-hub-timescaledb \
united-manufacturing-hub-redis-master
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete jobs \
united-manufacturing-hub-kafka-configuration
2 - Upgrade to v0.14.0
This page describes how to upgrade the United Manufacturing Hub from version 0.13.6 to 0.14.0. Before upgrading, remember to back up the database, Node-RED flows, and your cluster configuration.
Upgrade Helm Chart
Upgrade the Helm chart to the 0.14.0 version:
bash <(curl -s https://management.umh.app/binaries/umh/migrations/0_14_0.sh)
Troubleshooting
If for some reason the upgrade fails, you can delete the deployment and statefulsets and try again: This will not delete your data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment \
united-manufacturing-hub-factoryinsight-deployment \
united-manufacturing-hub-iotsensorsmqtt \
united-manufacturing-hub-opcuasimulator-deployment \
united-manufacturing-hub-packmlmqttsimulator \
united-manufacturing-hub-mqttkafkabridge \
united-manufacturing-hub-kafkatopostgresqlv2 \
united-manufacturing-hub-kafkatopostgresql \
united-manufacturing-hub-grafana \
united-manufacturing-hub-databridge-0 \
united-manufacturing-hub-console
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset \
united-manufacturing-hub-hivemqce \
united-manufacturing-hub-kafka \
united-manufacturing-hub-nodered \
united-manufacturing-hub-sensorconnect \
united-manufacturing-hub-mqttbridge \
united-manufacturing-hub-timescaledb \
united-manufacturing-hub-redis-master
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete jobs \
united-manufacturing-hub-kafka-configuration
3 - Upgrade to v0.13.7
This page describes how to upgrade the United Manufacturing Hub from version 0.13.6 to 0.13.7. Before upgrading, remember to back up the database, Node-RED flows, and your cluster configuration.
Upgrade Helm Chart
Upgrade the Helm chart to the 0.13.7 version:
bash <(curl -s https://management.umh.app/binaries/umh/migrations/0_13_7.sh)
Troubleshooting
If for some reason the upgrade fails, you can delete the deployment and statefulsets and try again: This will not delete your data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment \
united-manufacturing-hub-factoryinsight-deployment \
united-manufacturing-hub-iotsensorsmqtt \
united-manufacturing-hub-opcuasimulator-deployment \
united-manufacturing-hub-packmlmqttsimulator \
united-manufacturing-hub-mqttkafkabridge \
united-manufacturing-hub-kafkatopostgresqlv2 \
united-manufacturing-hub-kafkatopostgresql \
united-manufacturing-hub-grafana \
united-manufacturing-hub-databridge-0 \
united-manufacturing-hub-console
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset \
united-manufacturing-hub-hivemqce \
united-manufacturing-hub-kafka \
united-manufacturing-hub-nodered \
united-manufacturing-hub-sensorconnect \
united-manufacturing-hub-mqttbridge \
united-manufacturing-hub-timescaledb \
united-manufacturing-hub-redis-master
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete jobs \
united-manufacturing-hub-kafka-configuration
4 - Upgrade to v0.13.6
This page describes how to upgrade the United Manufacturing Hub to version 0.13.6. Before upgrading, remember to back up the database, Node-RED flows, and your cluster configuration.
Upgrade Helm Chart
Upgrade the Helm chart to the 0.13.6 version:
bash <(curl -s https://management.umh.app/binaries/umh/migrations/0_13_6.sh)
Troubleshooting
If for some reason the upgrade fails, you can delete the deployment and statefulsets and try again: This will not delete your data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment \
united-manufacturing-hub-factoryinsight-deployment \
united-manufacturing-hub-iotsensorsmqtt \
united-manufacturing-hub-opcuasimulator-deployment \
united-manufacturing-hub-packmlmqttsimulator \
united-manufacturing-hub-mqttkafkabridge \
united-manufacturing-hub-kafkatopostgresqlv2 \
united-manufacturing-hub-kafkatopostgresql \
united-manufacturing-hub-grafana \
united-manufacturing-hub-databridge-0 \
united-manufacturing-hub-console
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset \
united-manufacturing-hub-hivemqce \
united-manufacturing-hub-kafka \
united-manufacturing-hub-nodered \
united-manufacturing-hub-sensorconnect \
united-manufacturing-hub-mqttbridge \
united-manufacturing-hub-timescaledb \
united-manufacturing-hub-redis-master
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete jobs \
united-manufacturing-hub-kafka-configuration
5 - Upgrade to v0.10.6
This page describes how to upgrade the United Manufacturing Hub to version 0.10.6. Before upgrading, remember to back up the database, Node-RED flows, and your cluster configuration.
All the following commands are to be run from the UMH instance’s shell.
Update Helm Repo
Fetch the latest Helm charts from the UMH repository:
sudo $(which helm) repo update --kubeconfig /etc/rancher/k3s/k3s.yaml
Upgrade Helm Chart
Upgrade the Helm chart to the 0.10.6 version:
sudo $(which helm) upgrade united-manufacturing-hub united-manufacturing-hub/united-manufacturing-hub -n united-manufacturing-hub --version 0.10.6 --reuse-values --kubeconfig /etc/rancher/k3s/k3s.yaml \
--set _000_commonConfig.infrastructure.mqtt.tls.factoryinput=null \
--set _000_commonConfig.datainput=null \
--set _000_commonConfig.mqttBridge=null \
--set _000_commonConfig.mqttBridge=null \
--set mqttbridge=null \
--set factoryinput=null \
--set grafanaproxy=null \
--set kafkastatedetector.image.repository=management.umh.app/oci/united-manufacturing-hub/kafkastatedetector \
--set barcodereader.image.repository=management.umh.app/oci/united-manufacturing-hub/barcodereader \
--set sensorconnect.image=management.umh.app/oci/united-manufacturing-hub/sensorconnect \
--set iotsensorsmqtt.image=management.umh.app/oci/amineamaach/sensors-mqtt \
--set opcuasimulator.image=management.umh.app/oci/united-manufacturing-hub/opcuasimulator \
--set kafkabridge.image.repository=management.umh.app/oci/united-manufacturing-hub/kafka-bridge \
--set kafkabridge.initContainer.repository=management.umh.app/oci/united-manufacturing-hub/kafka-init \
--set factoryinsight.image.repository=management.umh.app/oci/united-manufacturing-hub/factoryinsight \
--set kafkatopostgresql.image.repository=management.umh.app/oci/united-manufacturing-hub/kafka-to-postgresql \
--set kafkatopostgresql.initContainer.repository=management.umh.app/oci/united-manufacturing-hub/kafka-init \
--set timescaledb-single.image.repository=management.umh.app/oci/timescale/timescaledb-ha \
--set timescaledb-single.prometheus.image.repository=management.umh.app/oci/prometheuscommunity/postgres-exporter \
--set grafana.image.repository=management.umh.app/oci/grafana/grafana \
--set grafana.downloadDashboardsImage.repository=management.umh.app/oci/curlimages/curl \
--set grafana.testFramework.image=management.umh.app/oci/bats/bats \
--set grafana.initChownData.image.repository=management.umh.app/oci/library/busybox \
--set grafana.sidecar.image.repository=management.umh.app/oci/kiwigrid/k8s-sidecar \
--set grafana.imageRenderer.image.repository=management.umh.app/oci/grafana/grafana-image-renderer \
--set packmlmqttsimulator.image.repository=management.umh.app/oci/spruiktec/packml-simulator \
--set tulipconnector.image.repository=management.umh.app/oci/united-manufacturing-hub/tulip-connector \
--set mqttkafkabridge.image.repository=management.umh.app/oci/united-manufacturing-hub/mqtt-kafka-bridge \
--set mqttkafkabridge.initContainer.repository=management.umh.app/oci/united-manufacturing-hub/kafka-init \
--set kafkatoblob.image.repository=management.umh.app/oci/united-manufacturing-hub/kafka-to-blob \
--set redpanda.image.repository=management.umh.app/oci/redpandadata/redpanda \
--set redpanda.statefulset.initContainerImage.repository=management.umh.app/oci/library/busybox \
--set redpanda.console.image.registry=management.umh.app/oci \
--set redis.image.registry=management.umh.app/oci \
--set redis.metrics.image.registry=management.umh.app/oci \
--set redis.sentinel.image.registry=management.umh.app/oci \
--set redis.volumePermissions.image.registry=management.umh.app/oci \
--set redis.sysctl.image.registry=management.umh.app/oci \
--set mqtt_broker.image.repository=management.umh.app/oci/hivemq/hivemq-ce \
--set mqtt_broker.initContainer.hivemqextensioninit.image.repository=management.umh.app/oci/united-manufacturing-hub/hivemq-init \
--set metrics.image.repository=management.umh.app/oci/united-manufacturing-hub/metrics \
--set databridge.image.repository=management.umh.app/oci/united-manufacturing-hub/databridge \
--set kafkatopostgresqlv2.image.repository=management.umh.app/oci/united-manufacturing-hub/kafka-to-postgresql-v2
Manual steps (optional)
Due to a limitation of Helm, we cannot automatically set grafana.env.GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=umh-datasource,umh-v2-datasource
.
You could either ignore this (if your network is not restricuted to a single domain) or set it manually in the Grafana deployment.
We are also not able to manually overwrite grafana.extraInitContainers[0].image=management.umh.app/oci/united-manufacturing-hub/grafana-umh
.
You could either ignore this (if your network is not restricuted to a single domain) or set it manually in the Grafana deployment.
Host system
Open the /var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl
using vi
as root and add the following lines:
version = 2
[plugins."io.containerd.internal.v1.opt"]
path = "/var/lib/rancher/k3s/agent/containerd"
[plugins."io.containerd.grpc.v1.cri"]
stream_server_address = "127.0.0.1"
stream_server_port = "10010"
enable_selinux = false
enable_unprivileged_ports = true
enable_unprivileged_icmp = true
sandbox_image = "management.umh.app/v2/rancher/mirrored-pause:3.6"
[plugins."io.containerd.grpc.v1.cri".containerd]
snapshotter = "overlayfs"
disable_snapshot_annotations = true
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/var/lib/rancher/k3s/data/ab2055bc72380bad965b219e8688ac02b2e1b665cad6bdde1f8f087637aa81df/bin"
conf_dir = "/var/lib/rancher/k3s/agent/etc/cni/net.d"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
# Mirror configuration for Docker Hub with fallback
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://management.umh.app/oci", "https://registry-1.docker.io"]
# Mirror configuration for GitHub Container Registry with fallback
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
endpoint = ["https://management.umh.app/oci", "https://ghcr.io"]
# Mirror configuration for Quay with fallback
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
endpoint = ["https://management.umh.app/oci", "https://quay.io"]
# Catch-all configuration for any other registries
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."*"]
endpoint = ["https://management.umh.app/oci"]
Open /etc/flatcar/update.conf
using vi
as root and add the following lines:
GROUP=stable
SERVER=https://management.umh.app/nebraska/
Restart k3s or reboot the host system:
sudo systemctl restart k3s
Troubleshooting
If for some reason the upgrade fails, you can delete the deployment and statefulsets and try again: This will not delete your data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment \
united-manufacturing-hub-factoryinsight-deployment \
united-manufacturing-hub-iotsensorsmqtt \
united-manufacturing-hub-opcuasimulator-deployment \
united-manufacturing-hub-packmlmqttsimulator \
united-manufacturing-hub-mqttkafkabridge \
united-manufacturing-hub-kafkatopostgresqlv2 \
united-manufacturing-hub-kafkatopostgresql \
united-manufacturing-hub-grafana \
united-manufacturing-hub-databridge-0 \
united-manufacturing-hub-console
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset \
united-manufacturing-hub-hivemqce \
united-manufacturing-hub-kafka \
united-manufacturing-hub-nodered \
united-manufacturing-hub-sensorconnect \
united-manufacturing-hub-mqttbridge \
united-manufacturing-hub-timescaledb \
united-manufacturing-hub-redis-master
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete jobs \
united-manufacturing-hub-kafka-configuration
6 - Management Console Upgrades
Easily upgrade your UMH instance with the Management Console. This page offers clear, step-by-step instructions for a smooth upgrade process.
Before you begin
Before proceeding with the upgrade of the Companion, ensure that you have the following:
- A functioning UMH instance, verified as “online” and in good health.
- A reliable internet connection.
- Familiarity with the changelog of the new version you are upgrading to, especially to identify any breaking changes or required manual interventions.
Management Companion
Upgrade your UMH instance seamlessly using the Management Console. Follow these steps:
Identify Outdated Instance
From the Overview tab, check for an upgrade icon next to your instance’s name, signaling an outdated Companion version. Additionally, locate the Upgrade Companion button at the bottom of the tab.
Start the Upgrade
When you’re prepared to upgrade your UMH instance, start by pressing the Upgrade Companion button. This will open a modal, initially displaying a changelog with a quick overview of the latest changes. You can expand the changelog for a detailed view from your current version up to the latest one. Additionally, it may highlight any warnings requiring manual intervention.
Navigate through the changelog, and when comfortable, proceed by clicking the Next button. This step grants you access to crucial information about recommended actions and precautions during the upgrade process.
With the necessary insights, take the next step by clicking the Upgrade button. The system will guide you through the upgrade process, displaying real-time progress updates, including a progress bar and logs.
Upon successful completion, a confirmation message will appear. Simply click the Let’s Go button to return to the dashboard, where you can seamlessly continue using your UMH instance with the latest enhancements.
United Manufacturing Hub
As of now, the upgrade of the UMH is not yet included in the Management Console, meaning that it has to be performed manually. However, it is planned to be included in the future. Until then, you can follow the instructions in the What’s New page.
Troubleshooting
I encountered an issue during the upgrade process. What should I do?
If you encounter issues during the upgrade process, consider the following steps:
Retry the Process: Sometimes, a transient issue may cause a hiccup. Retry the upgrade process to ensure it’s not a temporary glitch.
Check Logs: Review the logs displayed during the upgrade process for any error messages or indications of what might be causing the problem. This information can offer insights into potential issues.
If the problem persists after retrying and checking the logs, and you’ve confirmed that all prerequisites are met, please reach out to our support team for assistance.
I installed the Management Companion before the 0.1.0 release. How do I upgrade it?
If you installed the Management Companion before the 0.1.0 release, you will need to reinstall it. This is because we made some changes that are not compatible with the previous version.
Before reinstalling the Management Companion, you have to backup your configuration, so that you can restore your connections after the upgrade. To do so, follow these steps:
Access your UMH instance via SSH.
Run the following command to backup your configuration:
sudo $(which kubectl) get configmap/mgmtcompanion-config --kubeconfig /etc/rancher/k3s/k3s.yaml -n mgmtcompanion -o=jsonpath='{.data}' | sed -e 's/^/{"data":/' | sed -e 's/$/}/'> mgmtcompanion-config.bak.json
This will create a file called
mgmtcompanion-config.bak.json
in your current directory.For good measure, copy the file to your local machine:
scp <user>@<ip>:/home/<user>/mgmtcompanion-config.bak.json .
Replace
<user>
with your username, and<ip>
with the IP address of your UMH instance. You will be prompted for your password.Now you can reinstall the Management Companion. Follow the instructions in the Installation guide. Your data will be preserved, and you will be able to restore your connections.
After the installation is complete, you can restore your connections by running the following command:
sudo $(which kubectl) patch configmap/mgmtcompanion-config --kubeconfig /etc/rancher/k3s/k3s.yaml -n mgmtcompanion --patch-file mgmtcompanion-config.bak.json
7 - Migrate to Data Model V1
In this guide, you will learn how to migrate your existing instances from the old Data Model to the new Data Model V1.
The old Data Model will continue to work, and all the data will be still available.
Before you begin
You need to have a UMH cluster. If you do not already have a cluster, you can create one by following the Getting Started guide.
You also need to access the system where the cluster is running, either by logging into it or by using a remote shell.
Upgrade Your Companion to the Latest Version
If you haven’t already, upgrade your Companion to the latest version. You can easily do this from the Management Console by selecting your Instance and clicking on the “Upgrade” button.
Upgrade the Helm Chart
The new Data Model was introduced in the 0.10 release of the Helm Chart. To upgrade to the latest 0.10 release, you first need to update the Helm Chart to the latest 0.9 release and then upgrade to the latest 0.10 release.
There is no automatic way (yet!) to upgrade the Helm Chart, so you need to follow the manual steps below.
First, after accessing your instance, find the Helm Chart version you are currently using by running the following command:
sudo $(which helm) get metadata united-manufacturing-hub -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml | grep -e ^VERSION
Then, head to the upgrading archive and follow the instructions to upgrade from your current version to the latest version, one version at a time.
8 - Archive
The United Manufacturing Hub is a continuously evolving product. This means that new features and bug fixes are added to the product on a regular basis. This section contains the upgrading guides for the different versions the United Manufacturing Hub.
The upgrading process is done by upgrading the Helm chart.
8.1 - Upgrade to v0.9.34
This page describes how to upgrade the United Manufacturing Hub to version 0.9.34. Before upgrading, remember to backup the database, Node-RED flows, and your cluster configuration.
All the following commands are to be run from the UMH instance’s shell.
Update Helm Repo
Fetch the latest Helm charts from the UMH repository:
sudo $(which helm) repo update --kubeconfig /etc/rancher/k3s/k3s.yaml
Clear Workloads
Some workloads need to be deleted before upgrading. This process does not delete any data, but it will cause downtime.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete deployment united-manufacturing-hub-factoryinsight-deployment united-manufacturing-hub-iotsensorsmqtt united-manufacturing-hub-opcuasimulator-deployment
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml delete statefulset united-manufacturing-hub-hivemqce united-manufacturing-hub-kafka united-manufacturing-hub-nodered united-manufacturing-hub-sensorconnect united-manufacturing-hub-mqttbridge
Upgrade Helm Chart
Upgrade the Helm chart to the 0.9.34 version:
sudo helm upgrade united-manufacturing-hub united-manufacturing-hub/united-manufacturing-hub -n united-manufacturing-hub --version 0.9.34 --reuse-values --kubeconfig /etc/rancher/k3s/k3s.yaml \
--set kafkatopostgresqlv2.enabled=false \
--set kafkatopostgresqlv2.image.repository=ghcr.io/united-manufacturing-hub/kafka-to-postgresql-v2 \
--set kafkatopostgresqlv2.image.pullPolicy=IfNotPresent \
--set kafkatopostgresqlv2.replicas=1 \
--set kafkatopostgresqlv2.resources.limits.cpu=1000m \
--set kafkatopostgresqlv2.resources.limits.memory=300Mi \
--set kafkatopostgresqlv2.resources.requests.cpu=100m \
--set kafkatopostgresqlv2.resources.requests.memory=150Mi \
--set kafkatopostgresqlv2.probes.startup.failureThreshold=30 \
--set kafkatopostgresqlv2.probes.startup.initialDelaySeconds=10 \
--set kafkatopostgresqlv2.probes.startup.periodSeconds=10 \
--set kafkatopostgresqlv2.probes.liveness.periodSeconds=5 \
--set kafkatopostgresqlv2.probes.readiness.periodSeconds=5 \
--set kafkatopostgresqlv2.logging.level=PRODUCTION \
--set kafkatopostgresqlv2.asset.cache.lru.size=1000 \
--set kafkatopostgresqlv2.workers.channel.size=10000 \
--set kafkatopostgresqlv2.workers.goroutines.multiplier=16 \
--set kafkatopostgresqlv2.database.user=kafkatopostgresqlv2 \
--set kafkatopostgresqlv2.database.password=changemetoo \
--set _000_commonConfig.datamodel_v2.enabled=true \
--set _000_commonConfig.datamodel_v2.bridges[0].mode=mqtt-kafka \
--set _000_commonConfig.datamodel_v2.bridges[0].brokerA=united-manufacturing-hub-mqtt:1883 \
--set _000_commonConfig.datamodel_v2.bridges[0].brokerB=united-manufacturing-hub-kafka:9092 \
--set _000_commonConfig.datamodel_v2.bridges[0].topic=umh.v1..* \
--set _000_commonConfig.datamodel_v2.bridges[0].topicMergePoint=5 \
--set _000_commonConfig.datamodel_v2.bridges[0].partitions=6 \
--set _000_commonConfig.datamodel_v2.bridges[0].replicationFactor=1 \
--set _000_commonConfig.datamodel_v2.database.name=umh_v2 \
--set _000_commonConfig.datamodel_v2.database.host=united-manufacturing-hub \
--set _000_commonConfig.datamodel_v2.grafana.dbreader=grafanareader \
--set _000_commonConfig.datamodel_v2.grafana.dbpassword=changeme
Update Database
There has been some changes to the database, which need to be applied. This process does not delete any data.
sudo $(which kubectl) -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml exec -it united-manufacturing-hub-timescaledb-0 -c timescaledb -- sh -c ". /etc/timescaledb/post_init.d/0_create_dbs.sh; . /etc/timescaledb/post_init.d/1_set_passwords.sh"
Restart kafka-to-postgresql-v2
sudo $(which kubectl) rollout restart deployment united-manufacturing-hub-kafkatopostgresqlv2 -n united-manufacturing-hub --kubeconfig /etc/rancher/k3s/k3s.yaml
8.2 - Upgrade to v0.9.15
This page describes how to upgrade the United Manufacturing Hub to version 0.9.15. 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.
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-factoryinsight-deployment
- united-manufacturing-hub-opcuasimulator-deployment
- united-manufacturing-hub-iotsensorsmqtt
- united-manufacturing-hub-grafanaproxy
- From the StatefulSet section, delete the following statefulsets:
- united-manufacturing-hub-hivemqce
- united-manufacturing-hub-kafka
- united-manufacturing-hub-nodered
- united-manufacturing-hub-sensorconnect
- united-manufacturing-hub-mqttbridge
- Open the Network tab.
- From the Services section, delete the following services:
- united-manufacturing-hub-kafka
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. If you want to activate the new databridge you need to add & edit the following section
_000_commonConfig: ... datamodel_v2: enabled: true bridges: - mode: mqtt-kafka brokerA: united-manufacturing-hub-mqtt:1883 # The flow is always from A->B, for omni-directional flow, setup a 2nd bridge with reversed broker setup brokerB: united-manufacturing-hub-kafka:9092 topic: umh.v1..* # accept mqtt or kafka topic format. after the topic seprator, you can use # for mqtt wildcard, or .* for kafka wildcard topicMergePoint: 5 # This is a new feature of our datamodel_old, which splits topics in topic and key (only in Kafka), preventing having lots of topics partitions: 6 # optional: number of partitions for the new kafka topic. default: 6 replicationFactor: 1 # optional: replication factor for the new kafka topic. default: 1 ...
You can also enable the new container registry by changing the values in the
image
orimage.repository
fields from unitedmanufacturinghub/<image-name> to ghcr.io/united-manufacturing-hub/<image-name>.Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.3 - Upgrade to v0.9.14
This page describes how to upgrade the United Manufacturing Hub to version 0.9.14. 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.
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-factoryinsight-deployment
- united-manufacturing-hub-opcuasimulator-deployment
- united-manufacturing-hub-iotsensorsmqtt
- united-manufacturing-hub-grafanaproxy
- From the StatefulSet section, delete the following statefulsets:
- united-manufacturing-hub-hivemqce
- united-manufacturing-hub-kafka
- united-manufacturing-hub-nodered
- united-manufacturing-hub-sensorconnect
- united-manufacturing-hub-mqttbridge
- Open the Network tab.
- From the Services section, delete the following services:
- united-manufacturing-hub-kafka
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. For example, if you want to apply the new tweaks to the resources in order to avoid the Out Of Memory crash of the MQTT Broker, you can change the following values:
iotsensorsmqtt: resources: requests: cpu: 10m memory: 20Mi limits: cpu: 30m memory: 50Mi grafanaproxy: resources: requests: cpu: 100m limits: cpu: 300m kafkatopostgresql: resources: requests: memory: 150Mi limits: memory: 300Mi opcuasimulator: resources: requests: cpu: 10m memory: 20Mi limits: cpu: 30m memory: 50Mi packmlmqttsimulator: resources: requests: cpu: 10m memory: 20Mi limits: cpu: 30m memory: 50Mi tulipconnector: resources: limits: cpu: 30m memory: 50Mi requests: cpu: 10m memory: 20Mi redis: master: resources: limits: cpu: 100m memory: 100Mi requests: cpu: 50m memory: 50Mi mqtt_broker: resources: limits: cpu: 700m memory: 1700Mi requests: cpu: 300m memory: 1000Mi
You can also enable the new container registry by changing the values in the
image
orimage.repository
fields from unitedmanufacturinghub/<image-name> to ghcr.io/united-manufacturing-hub/<image-name>.Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.4 - Upgrade to v0.9.13
This page describes how to upgrade the United Manufacturing Hub to version 0.9.13. 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.
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-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.
- Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.5 - Upgrade to v0.9.12
This page describes how to upgrade the United Manufacturing Hub to version 0.9.12. 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.
Backup RBAC configuration for MQTT Broker
This step is only needed if you enabled RBAC for the MQTT Broker and changed the default password. If you did not change the default password, you can skip this step.
- Navigate to Config > ConfigMaps.
- Select the united-manufacturing-hub-hivemqce-extension ConfigMap.
- Copy the content of
credentials.xml
and save it in a safe place.
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-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
Remove MQTT Broker extension PVC
In this version we reduced the size of the MQTT Broker extension PVC. To do so, we need to delete the old PVC and create a new one. This process will set the credentials of the MQTT Broker to the default ones. If you changed the default password, you can restore them after the upgrade.
- Navigate to Storage > Persistent Volume Claims.
- Select the united-manufacturing-hub-hivemqce-claim-extensions PVC and click Delete.
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.There are some incompatible changes in this version. To avoid errors, you need to change the following values:
Remove property
console.console.config.kafka.tls.passphrase
:console: console: config: kafka: tls: passphrase: "" # <- remove this line
console.extraContainers
: remove the property and its content.console: extraContainers: {} # <- remove this line
console.extraEnv
: remove the property and its content.console: extraEnv: "" # <- remove this line
console.extraEnvFrom
: remove the property and its content.console: extraEnvFrom: "" # <- remove this line
console.extraVolumeMounts
: remove the|-
characters right after the property name. It should look like this:console: extraVolumeMounts: # <- remove the `|-` characters in this line - name: united-manufacturing-hub-kowl-certificates mountPath: /SSL_certs/kafka readOnly: true
console.extraVolumes
: remove the|-
characters right after the property name. It should look like this:console: extraVolumes: # <- remove the `|-` characters in this line - name: united-manufacturing-hub-kowl-certificates secret: secretName: united-manufacturing-hub-kowl-secrets
Change the
console.service
property to the following:console: service: type: LoadBalancer port: 8090 targetPort: 8080
Change the Redis URI in
factoryinsight.redis
:factoryinsight: redis: URI: united-manufacturing-hub-redis-headless:6379
Set the following values in the
kafka
section totrue
, or add them if they are missing:kafka: externalAccess: autoDiscovery: enabled: true enabled: true rbac: create: true
Change
redis.architecture
to standalone:redis: architecture: standalone
redis.sentinel
: remove the property and its content.redis: sentinel: {} # <- remove all the content of this section
Remove the property
redis.master.command
:redis: master: command: /run.sh # <- remove this line
timescaledb-single.fullWalPrevention
: remove the property and its content.timescaledb-single: fullWalPrevention: # <- remove this line checkFrequency: 30 # <- remove this line enabled: false # <- remove this line thresholds: # <- remove this line readOnlyFreeMB: 64 # <- remove this line readOnlyFreePercent: 5 # <- remove this line readWriteFreeMB: 128 # <- remove this line readWriteFreePercent: 8 # <- remove this line
timescaledb-single.loadBalancer
: remove the property and its content.timescaledb-single: loadBalancer: # <- remove this line annotations: # <- remove this line service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" # <- remove this line enabled: true # <- remove this line port: 5432 # <- remove this line
timescaledb-single.replicaLoadBalancer
: remove the property and its content.timescaledb-single: replicaLoadBalancer: annotations: # <- remove this line service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "4000" # <- remove this line enabled: false # <- remove this line port: 5432 # <- remove this line
timescaledb-single.secretNames
: remove the property and its content.timescaledb-single: secretNames: {} # <- remove this line
timescaledb-single.unsafe
: remove the property and its content.timescaledb-single: unsafe: false # <- remove this line
Change the value of the
timescaledb-single.service.primary.type
property to LoadBalancer:timescaledb-single: service: primary: type: LoadBalancer
Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.6 - Upgrade to v0.9.11
This page describes how to upgrade the United Manufacturing Hub to version 0.9.11. 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.
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-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.
- Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.7 - Upgrade to v0.9.10
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"
8.8 - Upgrade to v0.9.9
This page describes how to upgrade the United Manufacturing Hub to version 0.9.9. 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.
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-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 the value of theimage
field tounitedmanufacturinghub/grafana-plugin-extractor:0.1.4
. - Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.9 - Upgrade to v0.9.8
This page describes how to upgrade the United Manufacturing Hub to version 0.9.8. 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.
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-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.
- Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.10 - Upgrade to v0.9.7
This page describes how to upgrade the United Manufacturing Hub to version 0.9.7. 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.
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-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.
Make these changes in the
grafana
section:Replace the content of
datasources
with the following:datasources.yaml: apiVersion: 1 datasources: - access: proxy editable: false isDefault: true jsonData: apiKey: $FACTORYINSIGHT_PASSWORD apiKeyConfigured: true customerId: $FACTORYINSIGHT_CUSTOMERID serverURL: http://united-manufacturing-hub-factoryinsight-service/ name: umh-datasource orgId: 1 type: umh-datasource url: http://united-manufacturing-hub-factoryinsight-service/ version: 1 - access: proxy editable: false isDefault: false jsonData: apiKey: $FACTORYINSIGHT_PASSWORD apiKeyConfigured: true baseURL: http://united-manufacturing-hub-factoryinsight-service/ customerID: $FACTORYINSIGHT_CUSTOMERID name: umh-v2-datasource orgId: 1 type: umh-v2-datasource url: http://united-manufacturing-hub-factoryinsight-service/ version: 1
Replace the content of
env
with the following:GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: umh-datasource,umh-factoryinput-panel,umh-v2-datasource
Replace the content of
extraInitContainers
with the following:- name: init-umh-datasource image: unitedmanufacturinghub/grafana-plugin-extractor:0.1.3 volumeMounts: - name: storage mountPath: /var/lib/grafana imagePullPolicy: IfNotPresent
In the
timescaledb-single
section, make sure that theimage.tag
field is set to pg13.8-ts2.8.0-p1.
- Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
Change Factoryinsight API version
The Factoryinsight API version has changed from v1 to v2. To make sure that
you are using the new version, click on any Factoryinsight Pod and check that the
VERSION
environment variable is set to 2.
If it’s not, follow these steps:
8.11 - Upgrade to v0.9.6
This page describes how to upgrade the United Manufacturing Hub to version 0.9.6. 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.
Add new index to the database
In this version, a new index has been added to the processValueTabe
table,
allowing to speed up the queries.
Open a shell in the database
sudo $(which kubectl) exec -it $(sudo $(which kubectl) get pods --kubeconfig /etc/rancher/k3s/k3s.yaml -n united-manufacturing-hub -l app.kubernetes.io/component=timescaledb -o jsonpath="{.items[0].metadata.name}") --kubeconfig /etc/rancher/k3s/k3s.yaml -n united-manufacturing-hub -- psql -U postgres
This command will open a psql
shell connected to the default postgres database.
Create the index
Execute the following query:
CREATE INDEX ON processvaluetable(valuename, asset_id) WITH (timescaledb.transaction_per_chunk);
REINDEX TABLE processvaluetable;
This command could take a while to complete, especially on larger tables.
Type exit
to close the shell.
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-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.
- Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
8.12 - Upgrade to v0.9.5
This page describes how to upgrade the United Manufacturing Hub to version 0.9.5. 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.
Alter ordertable constraint
In this version, one of the constraints of the ordertable
table has been
modified.
Make sure to backup the database before exectuing the following steps.
Open a shell in the database
sudo $(which kubectl) exec -it $(sudo $(which kubectl) get pods --kubeconfig /etc/rancher/k3s/k3s.yaml -n united-manufacturing-hub -l app.kubernetes.io/component=timescaledb -o jsonpath="{.items[0].metadata.name}") --kubeconfig /etc/rancher/k3s/k3s.yaml -n united-manufacturing-hub -- psql -U postgres
This command will open a psql
shell connected to the default postgres database.
Alter the table
Check for possible conflicts in the
ordertable
table:SELECT order_name, asset_id, count(*) FROM ordertable GROUP BY order_name, asset_id HAVING count(*) > 1;
If the result is empty, you can skip the next step.
Delete the duplicates:
DELETE FROM ordertable ox USING ( SELECT MIN(CTID) as ctid, order_name, asset_id FROM ordertable GROUP BY order_name, asset_id HAVING count(*) > 1 ) b WHERE ox.order_name = b.order_name AND ox.asset_id = b.asset_id AND ox.CTID <> b.ctid;
If the data cannot be deleted, you have to manually update each duplicate
order_names
to a unique value.Get the name of the constraint:
SELECT conname FROM pg_constraint WHERE conrelid = 'ordertable'::regclass AND contype = 'u';
Drop the constraint:
ALTER TABLE ordertable DROP CONSTRAINT ordertable_asset_id_order_id_key;
Add the new constraint:
ALTER TABLE ordertable ADD CONSTRAINT ordertable_asset_id_order_name_key UNIQUE (asset_id, order_name);
Now you can close the shell by typing exit
and continue with the upgrade process.
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-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.
Enable the startup probe for the Kafka Broker by adding the following into the
kafka
section:startupProbe: enabled: true failureThreshold: 600 periodSeconds: 10 timeoutSeconds: 10
Click Upgrade.
The upgrade process can take a few minutes. The upgrade is complete when the Status field of the release is Deployed.
Changes to the messages
Some messages have been modified in this version. You need to update some payolads in your Node-RED flows.
- modifyState:
start_time_stamp
has been renamed totimestamp_ms
end_time_stamp
has been renamed totimestamp_ms_end
- modifyProducedPieces:
start_time_stamp
has been renamed totimestamp_ms
end_time_stamp
has been renamed totimestamp_ms_end
deleteShiftByAssetIdAndBeginTimestamp
anddeleteShiftById
have been removed. Use the deleteShift message instead.
8.13 - Upgrade to v0.9.4
This page describes how to upgrade the United Manufacturing Hub to version 0.9.4. 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.
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-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.
If you have enabled the Kafka Bridge, find the section
_000_commonConfig.kafkaBridge.topicmap
and set the value to the following:- bidirectional: false name: HighIntegrity send_direction: to_remote topic: ^ia\.(([^r.](\d|-|\w)*)|(r[b-z](\d|-|\w)*)|(ra[^w]))\.(\d|-|\w|_)+\.(\d|-|\w|_)+\.((addMaintenanceActivity)|(addOrder)|(addParentToChild)|(addProduct)|(addShift)|(count)|(deleteShiftByAssetIdAndBeginTimestamp)|(deleteShiftById)|(endOrder)|(modifyProducedPieces)|(modifyState)|(productTag)|(productTagString)|(recommendation)|(scrapCount)|(startOrder)|(state)|(uniqueProduct)|(scrapUniqueProduct))$ - bidirectional: false name: HighThroughput send_direction: to_remote topic: ^ia\.(([^r.](\d|-|\w)*)|(r[b-z](\d|-|\w)*)|(ra[^w]))\.(\d|-|\w|_)+\.(\d|-|\w|_)+\.(process[V|v]alue).*$
For more information, see the Kafka Bridge configuration
If you have enabled Barcodereader, find the
barcodereader
section and set the following values, adding the missing ones and updating the already existing ones:enabled: false image: pullPolicy: IfNotPresent resources: requests: cpu: "2m" memory: "30Mi" limits: cpu: "10m" memory: "60Mi" scanOnly: false # Debug mode, will not send data to kafka
Click Upgrade.
The upgrade process can take a few minutes. The process is complete when the Status field of the release is Deployed.