emqx/emqx-operator-controller

By emqx

Updated about 1 year ago

EMQX Operator creates and manages EMQX clusters running in Kubernetes.

Image
0

5M+

emqx/emqx-operator-controller repository overview

EMQX Operator

Visit emqx.io for the full documentation, examples and guides.

GitHub Release Docker Pulls codecov

Overview

The EMQX Operator provides Kubernetes native deployment and management of EMQX, 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 Getting Started.

  • 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
5.6.0 (included) ~ latest2.2.24 ~ latestapps.emqx.io/v2beta1EMQX
5.1.1 (included) ~ latest2.2.0 ~ latestapps.emqx.io/v2beta1EMQX
5.0.0 (included) ~ 5.0.232.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.1.1apps.emqx.io/v2alpha1EMQX
4.4.14 (included) or higher 4.4.x2.1.0, 2.1.1apps.emqx.io/v1beta4EmqxEnterprise
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.6 (included) ~ 4.4.81.2.5apps.emqx.io/v1beta3EmqxEnterprise
4.3.x (included) ~ 4.41.2.1, 1.2.2, 1.2.3apps.emqx.io/v1beta3EmqxEnterprise
EMQX Open Source
EMQX Open Source VersionEMQX Operator VersionAPIVersionKind
5.6.0 (included) ~ latest2.2.24 ~ latestapps.emqx.io/v2beta1EMQX
5.1.1 (included) ~ latest2.2.0 ~ latestapps.emqx.io/v2beta1EMQX
5.0.14 (included) ~ 5.0.232.1.0, 2.1.1apps.emqx.io/v2alpha1EMQX
5.0.8 (included) ~ 5.0.142.0.2apps.emqx.io/v2alpha1EMQX
5.0.6 (included) ~ 5.0.82.0.0, 2.0.1, 2.0.3apps.emqx.io/v2alpha1EMQX
4.4.14 or higher 4.4.x2.1.0, 2.1.1apps.emqx.io/v1beta4EmqxBroker
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.3.x (included) ~ 4.41.2.1, 1.2.2, 1.2.3apps.emqx.io/v1beta3EmqxBroker

How to selector Kubernetes version

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

Kubernetes VersionsEMQX Operator CompatibilityNotes
1.24 (included) ~ latestAll functions supported
1.22 (included) ~ 1.23Supported, except MixedProtocolLBServiceEMQX cluster can only use one protocol in LoadBalancer type of Service, for example TCP or UDP.
Lower than 1.22Not supportedunknown field "x-kubernetes-validations" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps]

CustomResourceDefinitions

A core feature of the EMQX Operator is to monitor the Kubernetes API server for changes to specific objects and ensure that the running EMQX deployments match these objects. The Operator acts on the following custom resource definitions (CRDs).

For more details on EMQX, please check the reference document.

The EMQX Operator automatically detects changes on any of the above custom resource objects and ensures that running deployments are kept in sync with the changes.

Getting Start

For more information on getting started, see the getting started.

Public Cloud Platform Deployment Guide

Development

Prerequisites
  • Golang environment
  • docker (used for creating container images, etc.)
  • Kubernetes cluster
  • teleperence
Install Teleperence for once
make telepresence
Connect to cluster
./bin/telepresence connect

Contributing

Many files (API, config, controller, hack,...) in this repository are auto-generated. Before proposing a pull request:

  1. Commit your changes.
  2. make and make manifests
  3. Commit the generated changes.

Troubleshooting

Check the troubleshooting documentation for common issues and frequently asked questions (FAQ).

Tag summary

Content type

Image

Digest

sha256:b74d07b12

Size

26.9 MB

Last updated

about 1 year ago

docker pull emqx/emqx-operator-controller