GitOps CLI for managing Kafka Connect connectors from JSON manifests
Project description
BKKT
BKKT is a portable GitOps CLI for Kafka Connect.
Manage connector manifests as code: render, validate, compare, plan, apply, and operate Connect / Kafka Admin / Schema Registry from one workflow-friendly tool.
Alpha software (
0.1.0a1). The CLI command surface is the supported contract. The internal Python package (connectctl) is not a stable public API.
Install
pip install --pre bkkt==0.1.0a1
# or
uv pip install --pre bkkt==0.1.0a1
Requirements: Python 3.11 or 3.12.
10-minute local demo
bkkt demo init --output-dir ./bkkt-demo
cd ./bkkt-demo
bkkt demo up # starts Redpanda + Kafka Connect via Docker Compose
bkkt demo smoke # render/validate/apply dry-run against the demo stack
bkkt demo down
The demo assets ship inside the package (connectctl/assets/demo) and use only
localhost / synthetic acme / orders fixtures.
Safe live workflow
BKKT keeps mutation safety gates on by default:
- Prefer
--dry-runfirst. - Scope work with explicit
--env,--cluster, path, or selector flags. - Confirm broad fan-out interactively, or pass
--yesin automation.
# Render + validate from manifests
bkkt render --env dev --cluster local
bkkt validate --env dev --cluster local
# Inspect drift without changing the cluster
bkkt compare --env dev --cluster local --dry-run
bkkt drift --env dev --cluster local
# Apply only after review
bkkt plan --env dev --cluster local
bkkt apply --env dev --cluster local --dry-run
bkkt apply --env dev --cluster local --yes
Portable CLI scope (alpha)
| Family | Purpose |
|---|---|
config / repo |
Local workspace and cluster config |
render / validate / validate-connect / inspect |
Manifest quality gates |
search / find / lineage |
Discovery across repo and live clusters |
compare / diff / drift / plan / apply |
Desired vs live workflows |
export / sync / reconcile |
Capture and converge state |
connect / kafka / schema |
Runtime Connect / Admin / SR operations |
functions / vars |
Placeholder helpers |
demo / oss / docs / completion |
Self-service DX |
Enterprise-only families (GitLab MR automation, fleet/assurance/reliability centers, UI/service API, heal/rollout/incident/monitor) are not part of the public alpha.
Search examples (neutral fixtures)
bkkt search --source repo --env prod \
--table 'prod__dbt__acme__orders__raw.exchange_rates__events'
bkkt find --source repo --env prod \
--database 'prod__cdc__users__acme_common__ods' \
--table 'acme__ma_users'
bkkt search --source live --env stage --cluster all \
--topic 'stage__cdc__users__acme_common__ods.acme_3__ma_users' \
--yes
OSS hygiene gates
Before publishing or contributing large changes:
bkkt oss hygiene --scope public
bkkt oss hygiene --scope repository
bkkt oss readiness
Repository scope hard-denies credential filenames, cloud/API token shapes, private keys, and private infrastructure hosts.
Documentation
| Doc | Audience |
|---|---|
| docs/ARCHITECTURE.md | How BKKT layers manifests and runtime clients |
| docs/CLI.md | Full alpha command contract |
| docs/MANIFESTS.md | Manifest layout and layering |
| docs/CONNECT.md | Kafka Connect operations |
| docs/KAFKA.md | Kafka Admin helpers |
| docs/SCHEMA_REGISTRY.md | Schema Registry helpers |
| docs/TROUBLESHOOTING.md | Common failures |
| docs/RELEASE.md | Tagging and PyPI Trusted Publishing |
| docs/MIGRATION.md | Moving from internal forks to public BKKT |
| CHANGELOG.md | Alpha notes and limitations |
| CONTRIBUTING.md | Dev setup and PR expectations |
| SECURITY.md | Vulnerability reporting |
License
Apache License 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bkkt-0.1.0a1.tar.gz.
File metadata
- Download URL: bkkt-0.1.0a1.tar.gz
- Upload date:
- Size: 493.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
070b03b26ff9c76501ccca5900462a91bcbb3cbab63ec2854effec34e10d4400
|
|
| MD5 |
74019c1c10dd0245b17e6271ba4d05d2
|
|
| BLAKE2b-256 |
81131bd70a0632456dce55c2a114fb3ad69ab146159380d8f6d19dc729c073d6
|
File details
Details for the file bkkt-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: bkkt-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 792.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8161e9af8085991bfa9ee26a703cec8997c1354c7fb35bec64711c3feb104d90
|
|
| MD5 |
14da437e5d81c29f4a70bb03bfaf3edb
|
|
| BLAKE2b-256 |
16c979c4c6bee106b041249260e0248ae0526059559936514193a4357cc9cf48
|