Upgrade to v0.9.12
4 minute read
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.