- Notifications
You must be signed in to change notification settings - Fork20
The Open source Resource as Code framework for Apache Kafka. Jikkou helps you implement GitOps for Kafka at scale!
License
streamthoughts/jikkou
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Please consider giving us a star ⭐ on GitHub. Your stars motivate us to persistently improve and help other developers discover our project.
Jikkou (jikkō / 実行) is an open-source tool built to provide an efficientand easy way to manage, automate, and provision resources on your event-stream platform.
Developed by Kafka ❤️, Jikkou aims to streamline daily operations onApache Kafka, ensuring that platform governance is no longer a boring and tedious task for bothDevelopers andAdministrators.
Jikkou enables a declarative management approach ofTopics,ACLs,Quotas,Schemas,Connectors and even more with the use of YAML files calledResource Definitions.
Taking inspiration fromkubectl
and Kubernetes resource definition files, Jikkou offers an intuitive and user-friendly approach to configuration management.
Jikkou can be used withApache Kafka,Aiven,MSK,Confluent Cloud,Redpanda, etc.
The latest stable release of jikkou (x86) for Linux, and macOS can be retrieved viahttps://sdkman.io/[SDKMan]:
sdk install jikkou
Alternatively, the latest stable release of jikkou (x86) for Linux, and macOS can be downloaded fromhttps://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) |
macOS | ⬇️download (jikkou-0.35.0-osx-x86_64.zip) |
Download the jikkou binary from thereleases page, uncompress and copy to the desired location.
# Download the latest stable releasewget https://github.com/streamthoughts/jikkou/releases/download/v0.35.0/jikkou-0.35.0-linux-x86_64.zip# Uncompressunzip jikkou-0.35.0-linux-x86_64.zip# Copy to the desired locationcp jikkou-0.35.0-linux-x86_64/bin/jikkou$HOME/.local/bin
Finally, Jikkou is can also be retrieved :
- As afatJar fromMaven Central
- As aDocker Image fromDocker Hub.
Note, it is recommended to install the bash/zsh completion scriptjikkou_completion
:
wget https://raw.githubusercontent.com/streamthoughts/jikkou/main/jikkou_completion. jikkou_completion
or alternatively, run the following command for generation the completion script.
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/
Here is an example of how to create and manage aKafka topic using Jikkou:
- Create a resource filekafka-topics.yaml:kafka-topics.yaml:::
# file:./kafka-topics.yamlapiVersion:'kafka.jikkou.io/v1beta2'kind:'KafkaTopic'metadata:name:'my-first-topic-with-jikkou'labels:{}annotations:{}spec:partitions:12replicas:3configs:min.insync.replicas:2
- Then run the following command:
$ 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 **********************
{"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
Check the officialdocumentation for furtherinstallation anduse cases.
You need to haveJava andDocker installed.
Jikkou CLI is built withMicronaut andPicocli
To build the project you will need:
- Java 21
- GraalVM 22.1.0 or newer to create native executable
- TestContainer to run integration tests
This project includesMaven Wrapper.
Below are the commands commonly used to build the project:
# Build and run all tests./mvnw clean verify# Build and skip integration tests./mvnw clean verify -DskipTests
$ make
# Build and run all tests./mvnw clean verify -Pnative
You can then execute the native executable with:./jikkou-cli/target/jikkou-$PROJECT_VERSION-runner
# 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
This project uses the Maven pluginSpotlessto format all Java classes and to apply some code quality checks.
This project uses the Maven pluginSpotBugs andFindSecBugsto run some static analysis to look for bugs in Java code.
Reported bugs can be analysed using SpotBugs GUI:
$ ./mvnw spotbugs:gui
Any feedback, bug reports and PRs are greatly appreciated!
- Source Code:https://github.com/streamthoughts/jikkou
- Issue Tracker:https://github.com/streamthoughts/jikkou/issues
This code base is available under the Apache License, version 2.
About
The Open source Resource as Code framework for Apache Kafka. Jikkou helps you implement GitOps for Kafka at scale!