Aliyun Kafka Management Tool - Manage Kafka resources using YAML
Project description
AliKafka CLI Tool
基于 alibabacloud-alikafka20190916 API 版本构建的阿里云 Kafka 管理工具,通过 YAML 配置文件管理 Kafka 资源。
功能特性
- ✅ Topic 管理:创建、更新、删除 Topic
- ✅ Consumer Group 管理:管理消费者组
- ✅ SASL 用户管理:管理 SASL 用户及 ACL 权限
- ✅ 白名单管理:管理实例 IP 白名单
- ✅ 配置即代码:所有配置存储在 YAML 文件中,支持 Git 版本控制
- ✅ Dry-run 模式:预览变更而不实际执行
- ✅ Git 集成:自动生成 commit 建议
安装
从 PyPI 安装(推荐)
pip install alikafka-management-tool
从源码安装(开发模式)
git clone https://github.com/your-org/alikafka-cli.git
cd alikafka-cli
pip install -e .
快速开始
1. 设置配置目录
默认情况下,工具会在当前目录的 config/ 子目录中查找配置文件。您也可以通过环境变量指定自定义配置路径:
# 使用默认配置路径(当前目录/config)
cd /path/to/your/config/repo
# 或使用自定义配置路径
export ALIKAFKA_CONFIG_DIR=/path/to/config
2. 配置访问凭证
创建 .env 文件:
# Aliyun 访问密钥
ALIKAFKA_ACCESS_KEY_ID=your_access_key_id
ALIKAFKA_ACCESS_KEY_SECRET=your_access_key_secret
ALIKAFKA_REGION_ID=cn-shanghai
# 可选:指定配置目录(默认为 ./config)
# ALIKAFKA_CONFIG_DIR=./config
3. 基本使用
# 列出所有实例
alikafka list-instances
# 初始化配置(从现有实例导出)
alikafka init --instance alikafka_xxx --region cn-shanghai
# 应用配置(dry-run)
alikafka apply --instance-name xxx --dry-run
# 应用配置
alikafka apply --instance-name xxx
# 导出配置
alikafka export --instance-name xxx
# 查看差异
alikafka diff --instance-name xxx
命令参考
init
从现有 Kafka 实例初始化配置文件:
alikafka init --instance INSTANCE_ID --region REGION_ID
apply
应用 YAML 配置到 Kafka:
# 应用所有配置
alikafka apply --instance INSTANCE_ID
# 使用实例名称
alikafka apply --instance-name INSTANCE_NAME
# 只应用特定类型
alikafka apply --instance-name xxx --topics-only
alikafka apply --instance-name xxx --groups-only
alikafka apply --instance-name xxx --users-only
# Dry-run 模式
alikafka apply --instance-name xxx --dry-run
export
导出 Kafka 当前状态到 YAML:
alikafka export --instance INSTANCE_ID
alikafka export --instance-name INSTANCE_NAME
diff
显示 YAML 配置与 Kafka 实际状态的差异:
alikafka diff --instance INSTANCE_ID
alikafka diff --instance-name INSTANCE_NAME
list-instances
列出账户中的所有 Kafka 实例:
alikafka list-instances
配置仓库
本工具需要配合配置仓库使用。配置仓库包含 Kafka 资源的 YAML 配置文件:
- alikafka-configs-preprod - 预生产环境配置
- alikafka-configs-prod - 生产环境配置
配置仓库结构
alikafka-configs-xxx/
├── config/
│ ├── global.yaml.template
│ ├── index.yaml
│ └── instances/
│ └── INSTANCE_NAME/
│ ├── metadata.yaml
│ ├── topics.yaml
│ ├── consumer_groups.yaml
│ ├── sasl_users.yaml
│ └── allowlist.yaml
└── .env
开发
本地开发
# 克隆仓库
git clone https://github.com/your-org/alikafka-cli.git
cd alikafka-cli
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 以开发模式安装
pip install -e .
# 运行命令
alikafka --help
代码格式化
# 安装开发依赖
pip install -e ".[dev]"
# 格式化代码
black src/
# 检查代码风格
flake8 src/
路线图
- 支持更多资源类型
- 配置验证模式
- 配置文件加密
- Web UI(可选)
贡献
欢迎提交 Issue 和 Pull Request!
许可证
MIT License
相关链接
Project details
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 alikafka_management_tool-0.2.0.tar.gz.
File metadata
- Download URL: alikafka_management_tool-0.2.0.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23fddeb2294d769975842f6b91ef59e89d61d48dd26efff771671e2c741f6a4d
|
|
| MD5 |
8ee7331538366f68c3ea91f7c13b9bcd
|
|
| BLAKE2b-256 |
c1bb393485bac58bb27b57a3dc85a04d78c79bed65a9b65d7906ff3a34e910a8
|
File details
Details for the file alikafka_management_tool-0.2.0-py3-none-any.whl.
File metadata
- Download URL: alikafka_management_tool-0.2.0-py3-none-any.whl
- Upload date:
- Size: 36.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad7b739f91f94b13bc1d9e5d394bc46e270efdb89b1f22d08be596ff77052d27
|
|
| MD5 |
5204a17bd57ce87618a93b4fd0b7a453
|
|
| BLAKE2b-256 |
21c71e39b313d650fc0dcd1c8bd52ba35e57dbbcf6d790cf4c31015465e15a77
|