mirror of
https://github.com/langgenius/dify-ee-helm-chart-values-generator.git
synced 2026-07-01 20:14:02 -04:00
d5ce3ac7ef195311e33800ce4c87f1ad2881b4cb
- Add interactive Python script for generating values-prd.yaml - Add comprehensive documentation in docs/ - Add pyproject.toml and requirements.txt - Add .gitignore to exclude sensitive files - Add README.md with project overview and usage instructions
Dify Helm Chart Values Generator
一个交互式工具,用于生成 Dify Enterprise Edition 的 Helm Chart 生产环境配置文件。
📋 项目简介
本项目提供了一个 Python 脚本 generate-values-prd.py,通过交互式引导帮助用户生成 values-prd.yaml 配置文件。脚本采用模块化设计,自动处理配置项之间的联动关系,确保配置的一致性和正确性。
✨ 功能特点
- ✅ 模块化配置: 将配置分为5个主要模块,逻辑清晰
- ✅ 自动处理联动: 自动处理互斥选择和依赖关系
- ✅ 密钥自动生成: 所有密钥按注释要求自动生成(使用 openssl)
appSecretKey: 42字节innerApiKey: 42字节enterprise.appSecretKey: 42字节enterprise.adminAPIsSecretKeySalt: 42字节enterprise.passwordEncryptionKey: 32字节(AES-256)
- ✅ TLS联动检查: TLS配置与Ingress联动,自动检查一致性避免CORS问题
- ✅ RAG联动: 自动处理RAG类型与unstructured模块的联动关系
- ✅ 交互式引导: 友好的命令行交互界面,详细配置每个数据库和Redis连接
- ✅ 进度保存: 支持中断后保存部分配置
🚀 快速开始
前置要求
- Python 3.6+
- PyYAML 库
- openssl(用于生成密钥,通常系统已自带)
- ruamel.yaml(推荐):用于保留 YAML 文件的格式、注释和引号
安装依赖
使用 uv(推荐,更快):
# 1. 安装 uv(如果未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 创建虚拟环境
uv venv
# 3. 激活虚拟环境(可选,uv 会自动检测)
source .venv/bin/activate
# 4. 安装依赖
uv pip install -r requirements.txt
或使用 pip:
pip install -r requirements.txt
使用方法
python generate-values-prd.py
脚本会引导你完成以下配置模块:
- 全局配置模块 - 影响所有服务
- 基础设施模块 - 数据库、存储、缓存(互斥选择)
- 服务模块 - 应用服务配置
- 网络模块 - Ingress配置
- 邮件模块 - 邮件服务配置
生成的配置文件将保存为 values-prd.yaml。
📁 项目结构
.
├── generate-values-prd.py # 主脚本文件
├── values.yaml # 基础配置文件模板
├── values-prd.yaml # 生成的生产环境配置(gitignore)
├── pyproject.toml # Python 项目配置
├── requirements.txt # Python 依赖列表
├── .gitignore # Git 忽略文件配置
└── docs/ # 文档目录
├── README-GENERATOR.md # 详细使用说明
├── MODULES.md # 模块划分说明
├── FLOWCHART.md # 流程图
├── KIND-NETWORKING.md # Kind 网络配置说明
├── IMPROVEMENTS.md # 改进记录
└── CHANGELOG.md # 更新日志
📚 文档
详细的文档请参考 docs/ 目录:
- README-GENERATOR.md - 完整的使用说明和示例
- MODULES.md - 模块划分与联动关系说明
- FLOWCHART.md - 配置流程图
- KIND-NETWORKING.md - Kind 集群网络配置说明
🔧 配置说明
模块划分
-
全局配置模块 (global)
- 影响所有服务
- 包括密钥、域名、RAG配置等
-
基础设施模块
- 数据库选择(PostgreSQL/MySQL)
- 存储选择(MinIO/S3)
- 缓存选择(Redis)
-
服务模块
- 应用服务配置
- 资源限制
- 副本数量
-
网络模块
- Ingress配置
- TLS设置
-
邮件模块
- SMTP服务器配置
- 邮件服务设置
联动关系
脚本会自动处理以下联动关系:
- RAG联动:
rag.etlType = "dify"→unstructured.enabled = false - RAG联动:
rag.etlType = "Unstructured"→unstructured.enabled = true - TLS联动: TLS配置与Ingress自动同步,避免CORS问题
- 基础设施互斥: 数据库、存储、缓存的选择互斥
🔒 安全注意事项
- 生成的
values-prd.yaml包含敏感信息,已添加到.gitignore email-server.txt等敏感文件不会被提交到仓库- 所有密钥使用
openssl自动生成,确保安全性
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📝 许可证
请查看项目根目录的 LICENSE 文件(如有)。
🔗 相关链接
Languages
Python
99.3%
Shell
0.7%