https://github.com/streamthoughts/jikkou
The Open source Resource as Code framework for Apache Kafka. Jikkou helps you implement GitOps for Kafka at scale!
https://github.com/streamthoughts/jikkou
apache-kafka automation aws-glue cluster-manager datamesh devops gitops hacktoberfest infrastructure-as-code java kafka kafka-cluster kafka-manager kafka-topic yaml
Last synced: 1 day ago
JSON representation
The Open source Resource as Code framework for Apache Kafka. Jikkou helps you implement GitOps for Kafka at scale!
- Host: GitHub
- URL: https://github.com/streamthoughts/jikkou
- Owner: streamthoughts
- License: apache-2.0
- Created: 2018-07-16T19:53:53.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2025-12-22T22:02:10.000Z (28 days ago)
- Last Synced: 2026-01-14T04:45:12.130Z (6 days ago)
- Topics: apache-kafka, automation, aws-glue, cluster-manager, datamesh, devops, gitops, hacktoberfest, infrastructure-as-code, java, kafka, kafka-cluster, kafka-manager, kafka-topic, yaml
- Language: Java
- Homepage: https://www.jikkou.io/
- Size: 34.4 MB
- Stars: 259
- Watchers: 8
- Forks: 24
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-java - Jikkou
README
Jikkou: The Open Source Resource as Code framework for Apache Kafka®.
Developed by Kafka ❤️, for all Kafka users!









[](https://join.slack.com/t/jikkou-io/shared_invite/zt-27c0pt61j-F10NN7d7ZEppQeMMyvy3VA)
[](https://streamthoughts.github.io/jikkou/)
See: [official documentation](https://streamthoughts.github.io/jikkou/)

## Do You Like This Project? ⭐
Please consider giving us a star ⭐ on GitHub. Your stars motivate us to persistently improve and help other developers discover our project. 
## Introduction
**[Jikkou](https://github.com/streamthoughts/jikkou)** (jikkō / 実行) is an open-source tool built to provide an efficient
and easy way to manage, automate, and provision resources on your event-stream platform.
Developed by Kafka ❤️, Jikkou aims to streamline daily operations on [Apache Kafka](https://kafka.apache.org/documentation/), ensuring that platform governance is no longer a boring and tedious task for both **Developers** and **Administrators**.
Jikkou enables a declarative management approach of **Topics**, **ACLs**, **Quotas**, **Schemas**, **Connectors** and even more with the use of YAML files called **_Resource Definitions_**.
Taking inspiration from `kubectl` and Kubernetes resource definition files, Jikkou offers an intuitive and user-friendly approach to configuration management.
Jikkou can be used with [Apache Kafka](https://kafka.apache.org/), [Aiven](https://aiven.io/kafka), [MSK](https://aws.amazon.com/fr/msk/), [Confluent Cloud](https://www.confluent.io/confluent-cloud/), [Redpanda](https://redpanda.com/), etc.
## 🛠️ Installation
The latest stable release of jikkou (x86) for Linux, and macOS can be retrieved via https://sdkman.io/[SDKMan]:
```bash
sdk install jikkou
```
Alternatively, the latest stable release of jikkou (x86) for Linux, and macOS can be downloaded from https://github.com/streamthoughts/jikkou/releases/latest[GitHub Releases]
Below are the convenience links for the base downloads of Jikkou.
| Platform | Link |
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| Linux | ⬇️ [download (jikkou-0.35.0-linux-x86_64.zip)](https://github.com/streamthoughts/jikkou/releases/download/v0.35.0/jikkou-0.35.0-linux-x86_64.zip) |
| macOS | ⬇️ [download (jikkou-0.35.0-osx-x86_64.zip)](https://github.com/streamthoughts/jikkou/releases/download/v0.35.0/jikkou-0.35.0-osx-x86_64.zip) |
Download the jikkou binary from the [releases page](https://github.com/streamthoughts/jikkou/releases), uncompress and copy to the desired location.
```bash
# Download the latest stable release
wget https://github.com/streamthoughts/jikkou/releases/download/v0.35.0/jikkou-0.35.0-linux-x86_64.zip
# Uncompress
unzip jikkou-0.35.0-linux-x86_64.zip
# Copy to the desired location
cp jikkou-0.35.0-linux-x86_64/bin/jikkou $HOME/.local/bin
```
Finally, Jikkou is can also be retrieved :
* As a **fatJar** from [Maven Central](https://repo.maven.apache.org/maven2/io/streamthoughts/jikkou/0.35.0/)
* As a **Docker Image** from [Docker Hub](https://hub.docker.com/r/streamthoughts/jikkou).
Note, it is recommended to install the bash/zsh completion script `jikkou_completion`:
```bash
wget https://raw.githubusercontent.com/streamthoughts/jikkou/main/jikkou_completion . jikkou_completion
```
or alternatively, run the following command for generation the completion script.
```bash
source <(jikkou generate-completion)
```
**WARNING:** If you are using macOS you may need to remove the quarantine attribute from the bits before you can use them To do this, run the following: `sudo xattr -r -d com.apple.quarantine path/to/jikkou/folder/`
## Overview
Here is an example of how to create and manage a _Kafka topic_ using Jikkou:
* Create a resource file _kafka-topics.yaml_:
kafka-topics.yaml:::
```yaml
# file:./kafka-topics.yaml
apiVersion: 'kafka.jikkou.io/v1beta2'
kind: 'KafkaTopic'
metadata:
name: 'my-first-topic-with-jikkou'
labels: {}
annotations: {}
spec:
partitions: 12
replicas: 3
configs:
min.insync.replicas: 2
```
* Then run the following command:
```bash
$ jikkou apply --files ./kafka-topics.yaml
```
Jikkou will then take care of computing and applying the necessary changes directly to your cluster.
_(output)_:
```
TASK [CREATE] Create a new topic my-first-topic-with-jikkou (partitions=12, replicas=3) - CHANGED **********************
```
```json
{
"changed" : true,
"end" : 1634071489773,
"resource" : {
"name" : "my-first-topic-with-jikkou",
"operation" : "ADD",
"partitions" : {
"after" : 12,
"operation" : "ADD"
},
"replicas" : {
"after" : 3,
"operation" : "ADD"
},
"configs" : {
"min.insync.replicas" : {
"after" : "2",
"operation" : "ADD"
}
}
},
"failed" : false,
"status" : "CHANGED"
}
```
```
EXECUTION in 2s 661ms (DRY_RUN)
ok : 0, created : 1, altered : 0, deleted : 0 failed : 0
```
## Documentation
Check the official [documentation](https://jikkou.io) for further [installation](https://www.jikkou.io/docs/install/) and [use cases](https://www.jikkou.io/docs/tutorials/).
## 🏭 Developers
You need to have [Java](http://www.oracle.com/technetwork/java/javase/downloads/index.html) and [Docker](https://www.docker.com/) installed.
### Dependencies
Jikkou CLI is built with [Micronaut](https://micronaut.io/) and [Picocli](https://picocli.info/)
To build the project you will need:
* Java 21
* [GraalVM](https://www.graalvm.org/) 22.1.0 or newer to create native executable
* [TestContainer](https://testcontainers.com/) to run integration tests
### Build project
This project includes [Maven Wrapper](https://maven.apache.org/wrapper/).
Below are the commands commonly used to build the project:
```bash
# Build and run all tests
./mvnw clean verify
# Build and skip integration tests
./mvnw clean verify -DskipTests
```
### Build Docker Images (locally)
```bash
$ make
```
### Create Native Executable
```bash
# Build and run all tests
./mvnw clean verify -Pnative
```
You can then execute the native executable with: `./jikkou-cli/target/jikkou-$PROJECT_VERSION-runner`
### Create Debian Package (on Linux)
```bash
# Build and run all tests
./mvnw clean package -Pnative
./mvnw package -Pdeb
```
You can then install the package with: `sudo dpkg -i ./dist/jikkou-$PROJECT_VERSION-linux-x86_64.deb`
NOTE: Jikkou will install itself in the directory : `/opt/jikkou`
### Formats
This project uses the Maven plugin [Spotless](https://github.com/diffplug/spotless/tree/master/plugin-maven)
to format all Java classes and to apply some code quality checks.
### Bugs
This project uses the Maven plugin [SpotBugs](https://spotbugs.github.io/) and [FindSecBugs](https://find-sec-bugs.github.io/)
to run some static analysis to look for bugs in Java code.
Reported bugs can be analysed using SpotBugs GUI:
```bash
$ ./mvnw spotbugs:gui
```
## 💡 Contributions
Any feedback, bug reports and PRs are greatly appreciated!
- **Source Code**: https://github.com/streamthoughts/jikkou
- **Issue Tracker**: https://github.com/streamthoughts/jikkou/issues
## Licence
This code base is available under the Apache License, version 2.