# Overview

The EMQX Operator provides Kubernetes (opens new window) native deployment and management of EMQX (opens new window), including EMQX Broker and EMQX Enterprise. The purpose of this project is to simplify and automate the configuration of the EMQX cluster.

The EMQX Operator includes, but is not limited to, the following features:

  • Simplified Deployment EMQX: Declare EMQX clusters with EMQX custom resources and deploy them quickly. For more details, please check Quick Start.

  • Manage EMQX Cluster: Automate operations and maintenance for EMQX, including cluster upgrades, runtime data persistence, updating Kubernetes resources based on the status of EMQX, etc. For more details, please check Manage EMQX.

# EMQX and EMQX Operator compatibility

# EMQX Enterprise

EMQX Enterprise VersionEMQX Operator VersionAPIVersionKind
4.3.x (included) ~ 4.41.2.1, 1.2.2, 1.2.3apps.emqx.io/v1beta3EmqxEnterprise
4.4.6 (included) ~ 4.4.81.2.5apps.emqx.io/v1beta3EmqxEnterprise
4.4.8 (included) ~ 4.4.141.2.6, 1.2.7, 1.2.8, 2.0.0, 2.0.1, 2.0.2, 2.0.3apps.emqx.io/v1beta3EmqxEnterprise
4.4.14 or higher 4.4.x2.1.0, 2.1.1apps.emqx.io/v1beta4EmqxEnterprise
5.0.0 or higher2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.1.1apps.emqx.io/v2alpha1EMQX

# EMQX Open Source

EMQX Open Source VersionEMQX Operator VersionAPIVersionKind
4.3.x (included) ~ 4.41.2.1, 1.2.2, 1.2.3apps.emqx.io/v1beta3EmqxBroker
4.4.6 (included) ~ 4.4.81.2.5apps.emqx.io/v1beta3EmqxBroker
4.4.8 (included) ~ 4.4.141.2.6, 1.2.7, 1.2.8, 2.0.0, 2.0.1, 2.0.2, 2.0.3apps.emqx.io/v1beta3EmqxBroker
4.4.14 or higher 4.4.x2.1.0, 2.1.1apps.emqx.io/v1beta4EmqxBroker
5.0.6 (included) ~ 5.0.82.0.0, 2.0.1, 2.0.3apps.emqx.io/v2alpha1EMQX
5.0.8 (included) ~ 5.0.142.0.2apps.emqx.io/v2alpha1EMQX
5.0.14 or higher2.1.0, 2.1.1apps.emqx.io/v2alpha1EMQX

# How to selector Kubernetes version

The EMQX Operator requires a Kubernetes cluster of version >=1.24.

Kubernetes VersionsEMQX Operator CompatibilityNotes
1.24 or higherAll functions supported
1.21 (included) ~ 1.23Supported, except MixedProtocolLBService (opens new window)EMQX cluster can only use one protocol in LoadBalancer type of Service, for example TCP or UDP.
1.20 (included) ~ 1.21Supported, manual .spec.ports[].nodePort assignment required if using NodePort type of ServiceFor more details, please refer to Kubernetes changelog (opens new window).
1.16 (included) ~ 1.20Supported, not recommended due to lack of testing
Lower than 1.16Not supportedapiextensions/v1 APIVersion is not supported.