HiveMQ Platform Operator for Kubernetes 1.3.0 Release

HiveMQ Platform Operator for Kubernetes 1.3.0 Release

author HiveMQ Team

Written by HiveMQ Team

Category: HiveMQ Platform Operator for Kubernetes

Published: April 30, 2024

The HiveMQ Team is excited to announce the release of Kubernetes Operator 1.3.0. This release updates the HiveMQ Platform Operator process to Java 21, removes the need for a rolling restart to update the HiveMQ Platform Init App, and provides numerous useful bug fixes.

Highlights

  • Simplified updates for the HiveMQ Platform Init App
  • HiveMQ Platform Operator support for Java 21

Simplified runtime updates for the HiveMQ Platform Init App

Starting with HiveMQ Platform Operator 1.3.0, the HiveMQ Platform Init App handles updates during runtime without a rolling restart.

How it works

The HiveMQ Platform Operator periodically checks the version of the HiveMQ Platform Operator Init App on running HiveMQ Platform pods. If the operator detects an outdated init app, the operator enters the new UPDATE_INIT_APP state and sends update requests to the pods.

The pods then download the HiveMQ Platform Operator Init App JAR file via the operator service from the operator pod. After a successful download, the HiveMQ Platform Operator Init App automatically updates itself, without restarting the pod or the HiveMQ Platform process.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
INFO  - [HiveMQ Platform Operator Init App] Downloading HiveMQ Platform Operator Init App into '/opt/hivemq/operator/bin/hivemq-platform-operator-init-app-1.3.0.jar'
INFO  - [HiveMQ Platform Operator Init App] Updating the HiveMQ Platform Operator Init App from URL 'http://hivemq-platform-operator-test-operator.default.svc:8080/initAppUpdate/hivemq-platform-operator-init-app-1.3.0.jar'
INFO  - [HiveMQ Platform Operator Init App] Stopping version 1.2.1 of the HiveMQ Platform Operator Init App
INFO  - [HiveMQ Platform Operator Init App] Shutting down for update
INFO  - [HiveMQ Platform Operator Init App] Stopping the REST API
INFO  - [HiveMQ Platform Operator Init App] Starting updated version of the HiveMQ Platform Operator Init App
INFO  - [HiveMQ Platform Operator Init App 1.3.0] HiveMQ Platform Operator Init App 1.3.0 (commit: abcdef on branch: master) built on Thu Apr 30 00:00:00 UTC 2024
INFO  - [HiveMQ Platform Operator Init App 1.3.0] PodInfo ConfigMap directory: /etc/podinfo
INFO  - [HiveMQ Platform Operator Init App 1.3.0] HiveMQ home directory: /opt/hivemq
INFO  - [HiveMQ Platform Operator Init App 1.3.0] HiveMQ Logback folder: /opt/hivemq/conf
INFO  - [HiveMQ Platform Operator Init App 1.3.0] HiveMQ Config folder: /opt/hivemq/conf-k8s
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Waiting for update of HiveMQ Platform Operator Init App version in Pod annotations
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Updating Pod HiveMQ Platform Operator Init App version annotation (version: 1.3.0)
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Successfully updated Pod HiveMQ Platform Operator Init App version annotation (version: 1.3.0)
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Starting the REST API on port 7979
INFO  - [HiveMQ Platform Operator Init App 1.3.0] HiveMQ Platform Operator Init App update is done (0 errors) (version 1.3.0)
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Starting HiveMQ Platform version 4.28.0
INFO  - [HiveMQ Platform Operator Init App 1.3.0] Configuring the HiveMQ Platform
INFO  - [HiveMQ Platform Operator Init App 1.3.0] The HiveMQ Platform is already running
INFO  - [HiveMQ Platform Operator Init App] Closing ClassLoader 'hivemq-platform-operator-init-app-classloader'
INFO  - [HiveMQ Platform Operator Init App] Successfully updated the HiveMQ Platform Operator Init App

Once the HiveMQ Platform Operator has verified the new version of the init app, the operator switches back to the RUNNING state.

IMPORTANT: Check to make sure your Kubernetes network policy allows network traffic between your HiveMQ Platform and HiveMQ Platform Operator pods.

How it helps

A core focus of the HiveMQ Platform Operator design is to minimize the need for rolling restarts. This is especially pertinent during updates to the operator itself. Through the runtime init app update, we ensure that the init app remains current whenever the operator is updated. The improved process guarantees that new features, improvements, and bug fixes are seamlessly integrated without causing any disruption to the ongoing operation of the HiveMQ Platform.

HiveMQ Platform Operator Updates to Java 21

The HiveMQ Platform Operator utilizes the Quarkus Java framework. In a recent development, Quarkus has transitioned to Java 17 as its minimum JDK requirement. Starting with HiveMQ Platform Operator 1.3.0, we use Java 21 for the main operator application. Java 21 delivers significant performance, stability, and security updates, various bug fixes, and an array of new features and enhancements. However, to support legacy platform releases, compatibility with Java 11 will be maintained for the HiveMQ Platform Operator Init App that runs within HiveMQ Platform pods.

How it helps

Oracle has announced long-term support for Java 21 at least until January 2032 and OpenJDK 21 will be a long-term support (LTS) release from most vendors. These extended support periods give organizations greater flexibility to keep applications in production longer, with minimal maintenance, and less migration pressure.

Additional Features and Improvements

HiveMQ Platform Operator for Kubernetes Helm charts:

  • Added the ability to configure the private key password for Java KeyStores (JKS) when securing MQTT, WebSocket, and Control Center listeners.
  • Fixed an issue when configuring a Pod Security Context with runAsUser=0 that continued to apply the default user 185 (for the HiveMQ Platform Operator) and 10000 (for the HiveMQ Platform).

HiveMQ Platform Operator for Kubernetes:

  • Updated the HiveMQ Platform Operator to Java 21.
  • Added the ability to update the HiveMQ Platform Operator Init App during runtime without initiating a rolling restart of the HiveMQ Platform.
  • Added a new HTTP endpoint to the operator that provides the Platform Operator Init App JAR archive for downloads.
  • Fixed an issue with the Privilege Step-Down when using the official HiveMQ Platform 4.28.0 container images.
  • Fixed an issue that could cause the HiveMQ Platform Operator Init App to keep a pod running after the operating system has terminated the HiveMQ Platform.
  • Added verification that prevents the start of the HiveMQ Enterprise Extension for Kafka if the current configuration is invalid or does not define any Kafka clusters, mappings, or transformers.
  • Fixed an issue when custom extensions are configured with a URI that is redirected with HTTP status code 301 or 302.

Get Started Today

To get started with the operator, see our HiveMQ Platform Operator Quick Start Guide.

To update from a previous version of the Platform Operator for Kubernetes, you need to update your HiveMQ Platform custom resource definition. For simple step-by-step instructions, see our Upgrade Guide.

To learn more about our new operator, see HiveMQ Platform Operator for Kubernetes.

author HiveMQ Team

About HiveMQ Team

We love writing about MQTT, IoT protocols and architecture in general. Our experts are here to help, so reach out to us if we can help!

mail icon Contact HiveMQ
newer posts HiveMQ 4.28.1 Maintenance Release
What’s New in HiveMQ 4.28? older posts