Skip to content

Repository files navigation

MessageQueue

MessageQueue is a standalone control plane for running message brokers on Kubernetes. The first supported engine is Apache Kafka, orchestrated by Strimzi. RabbitMQ is a planned engine, not part of the first release.

Note

The first Kafka vertical slice is implemented and has been smoke-tested on cluster 62. Metrics storage integration and the optional user console remain follow-up work.

Scope

MessageQueue will provide:

  • A first-party management UI for provisioning and operating Kafka instances.
  • A backend API for authenticated Kubernetes, metrics, and log access.
  • A Kubernetes controller that translates MessageQueue resources into Strimzi resources.
  • Instance lifecycle, credentials, logs, metrics, and safe failure handling.
  • An optional user-facing Kafka console based on Kafbat UI.

MessageQueue does not use KubeBlocks and does not live in the Sealos monorepo. Sealos integration is limited to public application, authentication, Kubernetes, quota, and billing contracts.

Architecture

Management UI -> Backend API -> MessageQueue CR -> Controller -> Strimzi -> Kafka
                       |                                  |
                       +-> metrics and logs               +-> optional Kafbat UI

See docs/architecture.md for resource ownership and namespace boundaries.

Repository Layout

frontend/      First-party management interface
backend/       Authentication, Kubernetes, log, and metric APIs
controller/    MessageQueue reconciliation and Strimzi translation
deploy/        Helm charts and installation assets
docs/          Architecture, information architecture, references, and runbook

Project Documentation

Development Status

Release 0.1.9 provides a deployable Kafka control plane: Strimzi 0.46.0 reconciles Kafka 3.9.0/4.0.0 KRaft resources, the backend exposes namespaced status/log/monitoring contracts plus create/delete and secret-free client-configuration contracts. The first-party UI uses a dedicated instance list page plus per-instance detail pages for connections, logs, and monitoring; delete and future lifecycle actions live in row/header action areas. The cluster-62 smoke path creates ns-admin/kafka-dev, verifies SCRAM produce/consume, and registers an HTTPS MessageQueue iframe entry on Sealos Desktop.

The management UI now uses a DevBox-style list-first shell: a compact top header, dense table rows, and a dedicated per-instance detail page. It follows the Sealos Desktop language setting through the Desktop SDK protocol, with Chinese as the standalone fallback. Kafka creation defaults to the development profile from deploy/examples/messagequeue-dev.yaml: 1 broker, 500m CPU, 1Gi memory, 10Gi storage, and Retain deletion policy; standard and custom profiles make larger resource requests explicit before submission.

Known limits are deliberate: metrics currently return a bounded degraded state until the platform VictoriaMetrics adapter is connected, historical logs are not implemented, the current cluster-62 deployment uses a single server-owned workspace identity for ns-admin, and Kafbat is not deployed by this chart.

Checks

Run the repository foundation checks before committing changes:

make check

About

Standalone Kubernetes message queue control plane

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages