HiveMQ Platform Operator for Kubernetes 1.2.0 Release

HiveMQ Platform Operator for Kubernetes 1.2.0 Release

author HiveMQ Team

Written by HiveMQ Team

Category: HiveMQ Platform Operator for Kubernetes

Published: March 1, 2024

The HiveMQ Team is excited to announce the release of Kubernetes Operator 1.2.0. This release introduces a host of new features and enhancements to streamline your Kubernetes operations. Along with the public availability of the HiveMQ Helm chart repository, this update is packed with improvements to simplify customization, enhance functionality, and provide even more versatility for managing your HiveMQ deployments.

Highlights

Public availability of HiveMQ Platform Operator Helm charts

HiveMQ has just published the Helm charts of the HiveMQ Platform Operator and the HiveMQ Platform on GitHub. Now, you can access all HiveMQ Helm charts in one repository. Along with our convenient Helm charts, we have also published manifest files with default values that can be used as the basis for advanced installation without using Helm.

How it works

The HiveMQ Helm charts provide an efficient way to install the HiveMQ Platform Operator and the HiveMQ Platform.

Simply load the HiveMQ Helm charts into your local Helm installation:

1
helm repo add hivemq https://hivemq.github.io/helm-charts

Or, refresh your local Helm installation:

1
helm repo update

Next, you can easily install the HiveMQ Platform Operator and the HiveMQ Platform:

1
2
helm install <your-operator> hivemq/hivemq-platform-operator --wait && \
helm install <your-platform> hivemq/hivemq-platform

How it helps

The HiveMQ public Helm chart repository and HiveMQ documentation contain useful examples and resources to help you fully utilize the HiveMQ Platform Operator for your deployments on Kubernetes.

Added configuration options in the HiveMQ Helm charts

HiveMQ Platform Operator for Kubernetes 1.2.0 is packed full of new configuration options to expand the usability of the Helm charts. Here are a few examples of the increased capabilities:

Support for environment variables

The HiveMQ Helm charts now give you the ability to configure environment variables from a secret, ConfigMap, or directly in your Helm charts values.yaml. The environment variables are then available in the HiveMQ container.

Example environment variable configuration in the Helm chart values.yaml file:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
env:
  - name: <ENV_VAR_NAME_1>
    value: <value>
  - name: <ENV_VAR_NAME_2>
    valueFrom:
      secretKeyRef:
        name: my-secret
        key: my-secret-key
  - name: <ENV_VAR_NAME_3>
    valueFrom:
      configMapKeyRef:
        name: my-config-map
        key: my-configmap-key
  

Added configuration options for HiveMQ

We are thrilled to introduce a brand-new HiveMQ Platform Helm chart that makes it even easier to configure and scale your HiveMQ platforms on Kubernetes in a standardized and customizable way. Now, you can configure most standard HiveMQ options directly with the HiveMQ Platform Helm chart.

Example added configuration options for HiveMQ:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
hivemqRestrictions:
    maxConnections: <value>
    maxClientIdLength: <value>
hivemqMqtt:
    sessionExpiryMaxInterval: <value>
    maxPacketSize: <value>
    wildcardSubscriptions: <value>
    maxQualityOfService: <value>
    retainedMessages: true
hivemqMqttSecurity:
    allowEmptyClientId: <value>

Add Init containers for advanced use cases

You can now easily add Kubernetes Init containers to your configuration. Init containers help execute custom code that prepares your installation. In the following example, we download a custom JDBC driver to be used for the HiveMQ Enterprise Security Extension.

Create an init-container-jdbc.yaml file:

1
2
3
4
5
6
- name: download-mysql-driver
  image: busybox
  command: [ 'sh', '-c', 'wget -P /jdbc-driver https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar' ]
  volumeMounts:
    - name: jdbc-driver-volume
      mountPath: /jdbc-driver

Add the following section to your custom platform-values.yaml file:

1
2
3
4
5
additionalVolumes:
- type: emptyDir
  mountName: jdbc-driver-volume
  path: /opt/hivemq/extensions/hivemq-enterprise-security-extension/drivers/jdbc
  

Install or upgrade your HiveMQ Platform Helm release:

1
helm upgrade -i <release-name> hivemq/hivemq-platform -f platform-values.yaml --set-file config.overrideInitContainers=init-container-jdbc.yaml

TIP: Starting with HiveMQ 4.25.1, the Enterprise Security Extension ships with default JDBC drivers which reduces the need to download custom JDBC drivers.

For detailed information and configuration options, check the HiveMQ Platform Operator for Kubernetes documentation.

Additional Features and Improvements

HiveMQ Platform Operator for Kubernetes Helm charts:

  • Session affinity is now enabled and set by default to ClientIP for the Control Center service.
  • Added support to configure Secure WebSockets.
  • Added the ability to add custom annotations to HiveMQ pods.
  • Fixed an issue to remove a WebSocket listener from the HiveMQ Broker configuration that is not configured.
  • Added the ability to configure environment variables with the HiveMQ Platform Helm chart.
  • Added support to configure a custom service account with the HiveMQ Platform Helm chart.
  • Added the ability to configure Init Containers in the HiveMQ Platform Operator Helm charts.
  • Adjusted the default log level from DEBUG to INFO for the HiveMQ Platform Helm chart.
  • Added the ability to configure the REST API authentication for the HiveMQ Platform Helm chart.

HiveMQ Platform Operator for Kubernetes:

  • Fixed an issue where configuration changes that do not require a rolling restart generated unnecessary monitoring alerts such as KubeStatefulSetUpdateNotRolledOut.
  • Improved the way configuration changes for HiveMQ extensions that support configuration hot-reload are handled to provide smoother operation.
  • Fixed the incorrect setting for user IDs (UID) in the HiveMQ Platform Operator Helm chart when configuring the podSecurityContext.
  • Added the ability to update the HiveMQ Platform Operator Init App during runtime without a rolling restart.
  • Fixed duplicate volume mount paths when sharing the same requestHeaderSecretName value in custom extensions.
  • Added the ability to define custom ServiceAccounts in the StatefulSet specification of HiveMQ Platform custom resources to facilitate pod permission management.
  • Fixed an issue when Kubernetes clusters use a custom domain name. The cluster service IP is automatically discovered. Configuration of custom DNS suffixes is not required.
  • Fix incorrect deletion of preloaded DNS Discovery extension in the HiveMQ Platform Operator Init App for legacy Kubernetes images.

Get Started Today

To get started with the new 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 What is new in HiveMQ Edge 2024.3
What’s New in HiveMQ 4.26? older posts