This repository contains the Console API server to interact with Strimzi Kafka instances running in a Kubernetes cluster.
The API provides a way to manage Apache Kafka® topics and consumer groups, as well as endpoints to publish and browse messages.
There are a few things you need to have installed to run this project:
- Maven
- JDK 17+
- Kubernetes environment (minikube recommended) with Strimzi Cluster Operator installed and a Kafka cluster deployed
- Docker or Podman
To run this project locally, first clone it with Git and execute a Maven build
git clone git@github.com:streamshub/console.git
cd console
mvn -am -pl api install -DskipTests
To run unit and integration tests
mvn -am -pl api verify
Follow the steps in the install README to install the Strimzi and Prometheus operators and to create instances of both Prometheus and Kafka.
Start the API in development mode from the repository root directory. Ensure that the config-path given points to a
valid console-config.yaml
. See console-config-example.yaml for an example.
mvn -am -pl api quarkus:dev -Dconsole.config-path=$(pwd)/console-config.yaml
Once all steps above have been completed, you can interact with the Kafka Instance API. The server will start the following interfaces:
- REST API on http://localhost:8080
- Metrics at http://localhost:8080/metrics
- Health status at http://localhost:8080/health
- OpenAPI at http://localhost:8080/openapi
- Swagger UI at http://localhost:8080/swagger-ui
The container image built from this repository includes support for providing an additional logging configuration at run time (without requiring a restart).
Configuration property logging.config.override
(or environment variable LOGGING_CONFIG_OVERRIDE
) must be provided to the server at startup with a path to
the logging configuration override file that may exist during run time. When created, the file may contain any valid Quarkus log category level configurations.