Gafkalo is to manage a Confluent platform by managing, in YAML: - Topics - Subjects (Schema registry schemas) - RBAC (using Confluent RBAC plugin. No ACL support) - Connectors.
This allows the implementation of a GitOps pipeline to manage a cluster.
It does not support deleting topics or schemas, primarily out of an abundance of caution, though this feature may be added in later versions if needed.
Additionally, it is meant as a CLI/debugging tool that needs no dependencies.
It uses Sarama with a goal of producing a Go binary with no external dependencies. Sarama does not use the client properties of Confluent libraries.
The documentation is available at https://gafkalo.readthedocs.io/
- Create and update topics
- Create and update Schema registry subjects and configs
- Manage client permissions using Confluent's RBAC module.
- Produce detailed plan of what it will do or a report of what it did.
- Can be used as a console Producer. - Can use Schema registry and Avro schemas for both key and value
- Can be used as a console Consumer - Can deserialize key and value from the schema registry (AVRO for now) - Can pretty print records - Allows user defined Golang template to do custom formatting of Kafka records - Can read from multiple topics - Can set multiple partition:offset explicitly to reset the consumer group to these offsets.
- Can check if a given schema is already registered in the schema registry under a given subject
- Connect CLI - Create connectors - Status check - Restart (heal) connectors and their failed tasks
- Pure Go. Now dependencies, and no librdkafka!
- Supports inreasing partition count
GPL3. Full license text in LICENSE file