https://github.com/peter-evans/kdef
Declarative resource management for Kafka
https://github.com/peter-evans/kdef
declarative kafka kdef resource-management
Last synced: 9 months ago
JSON representation
Declarative resource management for Kafka
- Host: GitHub
- URL: https://github.com/peter-evans/kdef
- Owner: peter-evans
- License: mit
- Created: 2021-08-12T08:12:58.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T18:08:45.000Z (9 months ago)
- Last Synced: 2025-04-14T19:26:01.102Z (9 months ago)
- Topics: declarative, kafka, kdef, resource-management
- Language: Go
- Homepage: https://peter-evans.github.io/kdef
- Size: 2.92 MB
- Stars: 32
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# kdef
[](https://github.com/peter-evans/kdef/actions/workflows/ci.yml)
[](https://goreportcard.com/report/github.com/peter-evans/kdef)
[](https://godoc.org/github.com/peter-evans/kdef)
kdef aims to provide an easy way to manage resources in a Kafka cluster by having them defined explicitly in a human-readable format.
Changes to resource definitions can be reviewed like code and applied to a cluster.
kdef was designed to support being run in a CI-CD environment, allowing teams to manage Kafka resource definitions in source control with pull requests (GitOps).

## Features
- Definition support for:
- Topics
- ACLs
- Per-broker configs
- Cluster-wide broker configs
- YAML and JSON definition formats
- TLS and SASL mechanisms (PLAIN, SCRAM, AWS_MSK_IAM)
- CLI scripting support (input via stdin, JSON output, etc.)
## Compatibility
kdef uses Kafka broker APIs.
These are the minimum Kafka versions required to apply each definition kind.
- `acl` (Kafka 0.11.0+)
- `broker` (Kafka 0.11.0+)
- `brokers` (Kafka 0.11.0+)
- `topic` (Kafka 2.4.0+)
## Documentation
See the [manual](https://peter-evans.github.io/kdef) for installation, configuration and usage instructions.
## Installation
For the complete list of installation options see the [manual](https://peter-evans.github.io/kdef).
**homebrew tap**
```sh
brew install peter-evans/kdef/kdef
```
**go install**
```sh
go install github.com/peter-evans/kdef@latest
```
## License
[MIT](LICENSE)