Skip to content

Commit 96b3b65

Browse files
author
Vitalii Agapov
committed
Update README.md
1 parent 366861b commit 96b3b65

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

README.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,24 @@
44
[![Go Report Card](https://goreportcard.com/badge/github.com/cloudworkz/kafka-minion)](https://goreportcard.com/report/github.com/agapoff/kafka-ops)
55
![GitHub release](https://img.shields.io/github/release/agapoff/kafka-ops.svg)
66

7-
Yet another CLI utility to automate Kafka cluster management
7+
**Kafka-Ops** is a powerful CLI tool written in Go for automating Apache Kafka cluster management. It allows you to declaratively manage Kafka topics and ACLs using JSON or YAML spec files, applying changes idempotently through the Kafka AdminClient API.
88

9-
**Kafka-Ops** is a command-line utility written in Go and mostly inspired by [KafkaSpecs](https://github.com/streamthoughts/kafka-specs) java tool. It allows to automate Kafka management by describing resources (topics, ACLs) and their configs in spec-files and applying them to Kafka cluster. Kafka-Ops uses AdminClient Kafka API to align cluster resources with the spec idempotently. The spec can be manifested either in YAML or JSON format.
9+
Inspired by [KafkaSpecs](https://github.com/streamthoughts/kafka-specs), Kafka-Ops provides a clean and scriptable way to describe, version, and apply Kafka resource configurations.
1010

11+
## Features
12+
13+
- Manage Kafka topics and ACLs via spec files
14+
- Supports JSON and YAML formats
15+
- Idempotent apply logic via AdminClient API
16+
- Pattern matching and ACL operations
17+
- CLI templating using Go templates
18+
- Support for SASL, SCRAM, and TLS-secured clusters
1119

1220
## Requirements
1321

1422
* Kafka 2.0+
1523

16-
## Spec Files Examples
24+
## Example Spec Files
1725

1826
Both YAML and JSON formats of spec files have the same notation and can be converted from each other. This is the example for YAML format:
1927

@@ -171,7 +179,7 @@ export KAFKA_PASSWORD=admin-secret
171179
./kafka-ops --apply --protocol sasl_ssl --json --verbose --stop-on-error
172180
```
173181

174-
## How to Dump the Current Cluster Config
182+
## Dumping Kafka Resources
175183

176184
Kafka-Ops can also export the current topics and ACLs from the cluster. This can be useful for editing the spec and applyting back or for migrating the spec to another cluster.
177185

@@ -221,7 +229,7 @@ name: my-product.{{ if .Plant }}{{ .Plant }}{{ else }}default{{ end }}.{{ .Env }
221229
But Kafka-Ops fails if some unresolved template key is encountered. In order to override this behaviour use flag *--missingok*.
222230

223231

224-
## How to delete multiple topics and consumer groups by pattern
232+
## Pattern-Based Deletion
225233

226234
Kafka-Ops supports deleting the topics and consumer groups by patterns. Please refer to the Spec-file example showing how to achieve the goal:
227235

@@ -310,9 +318,9 @@ Usage: ./kafka-ops <action> [<options>] [<broker connection options>]
310318
Can be also set by Env variable KAFKA_PASSWORD
311319
```
312320

313-
## How to build the binary
321+
## Building
314322

315-
You need golang and GNU make to be installed.
323+
Make sure you have `Go` and `make`:
316324

317325
```bash
318326
make test && make build
@@ -326,4 +334,4 @@ make rpm
326334

327335
## Contributing
328336

329-
This is an open source project so feel free to contribute.
337+
Contributions are welcome! Feel free to open issues or submit PRs.

0 commit comments

Comments
 (0)