Quickstart¶
YAML-based workflow¶
Gafkalo manages Kafka resources through YAML definitions.
Define resources in YAML
Generate a plan
Apply changes
Basic workflow¶
Create a config file:
connections:
kafka:
bootstrapBrokers: ["localhost:9093"]
kafkalo:
input_dirs:
- "data/*.yaml"
Define a topic in data/topics.yaml:
topics:
- name: events.user.login
partitions: 6
replication_factor: 3
configs:
cleanup.policy: delete
min.insync.replicas: 2
retention.ms: 604800000
Generate plan:
gafkalo plan --config config.yaml
Apply changes:
gafkalo apply --config config.yaml
Features¶
Declarative YAML-based management
Plan and apply workflow (dry-run support)
Topics, schemas, RBAC, connectors
CLI producer/consumer with schema support
Topic linter for best practices
No external dependencies (pure Go)
GitOps ready
What it manages¶
- Topics
Create, update partitions, manage configs
- Schemas
Register Avro schemas, set compatibility levels
- RBAC
Manage Confluent RBAC rolebindings (producer, consumer, resourceowner)
- Connectors
Create and manage Kafka Connect connectors
Limitations¶
No topic/schema deletion (by design)
No ACL support (RBAC only)
Sarama-based (no librdkafka)