feat(docs): 添加完整的项目文档集

- 新增开发指南文档,包含环境设置、构建流程和最佳实践
- 添加项目概览文档,提供项目全面介绍和架构说明
- 创建技术栈分析文档,详细说明使用的技术和依赖
- 添加源树分析文档,解释项目目录结构和关键文件
- 创建文档索引页面,统一管理所有项目文档
- 生成项目扫描报告,记录文档生成过程
- 更新工作流状态配置,指定文档化前提条件
- 添加.gitignore规则,忽略NFS相关文件
This commit is contained in:
D8D Developer
2025-11-06 07:38:58 +00:00
parent ceb5f90b45
commit e776084312
8 changed files with 825 additions and 1 deletions

198
docs/development-guide.md Normal file
View File

@@ -0,0 +1,198 @@
# 开发指南
## 环境要求
### 必备工具
- **Go 1.13+** - 主要开发语言
- **Git** - 版本控制
- **Make** - 构建工具
### 可选工具
- **Docker** - 容器化构建和测试
- **golangci-lint** - 代码质量检查
## 开发环境设置
### 1. 克隆项目
```bash
git clone https://github.com/virtual-kubelet/alibabacloud-eci.git
cd alibabacloud-eci
```
### 2. 安装依赖
```bash
# 使用Go Modules自动管理依赖
go mod download
```
### 3. 验证环境
```bash
# 检查Go版本
go version
# 验证构建
make build
```
## 构建和测试
### 构建命令
```bash
# 构建二进制文件
make build
# 清理构建产物
make clean
# 运行测试
make test
# 代码静态分析
make vet
# 代码质量检查
make lint
# 依赖管理
make mod
```
### 构建产物
- `bin/virtual-kubelet` - 主程序二进制文件
- 包含版本信息和构建时间戳
## 开发流程
### 1. 代码结构理解
- **main.go** - 程序入口Cobra命令行框架
- **eci.go** - Virtual Kubelet Provider主要实现
- **eci/** - 阿里云ECI API客户端
- **cmd/** - 命令行子命令定义
### 2. 添加新功能
#### 添加新的Provider方法
```go
// 在eci.go中添加新的Provider接口实现
func (p *ECIProvider) NewMethod(ctx context.Context, pod *v1.Pod) error {
// 实现逻辑
return nil
}
```
#### 添加新的ECI API调用
```go
// 在eci/目录下创建新的API文件
func (c *Client) NewECIOperation(params map[string]interface{}) (*Response, error) {
// 实现ECI API调用
}
```
#### 添加命令行参数
```go
// 在cmd/virtual-kubelet/commands/root/中添加
rootCmd.PersistentFlags().StringVar(&newFlag, "new-flag", "default", "description")
```
### 3. 测试新功能
```bash
# 运行单元测试
make test
# 构建并测试
make build && ./bin/virtual-kubelet --help
```
## 配置管理
### 配置文件格式
项目使用TOML格式配置文件
```toml
Region = "cn-hangzhou"
OperatingSystem = "Linux"
CPU = "20"
Memory = "100Gi"
Pods = "20"
VSwitch = "vsw-xxx"
SecureGroup = "sg-xxx"
ClusterName = "default"
```
### 环境变量支持
所有配置项都支持环境变量覆盖:
```bash
export ECI_REGION=cn-shanghai
export ECI_SECURITY_GROUP=sg-123
export ECI_VSWITCH=vsw-123
export ECI_ACCESS_KEY=your-access-key
export ECI_SECRET_KEY=your-secret-key
```
## 调试和故障排除
### 日志级别设置
```bash
# 运行时设置日志级别
./bin/virtual-kubelet --log-level=debug
```
### 常见问题
#### 构建失败
- 检查Go版本要求1.13+
- 验证依赖完整性:`go mod tidy`
- 清理构建缓存:`make clean`
#### 运行时错误
- 检查配置文件路径和权限
- 验证阿里云凭证有效性
- 查看详细日志:`--log-level=debug`
#### ECI API调用失败
- 检查网络连接
- 验证区域配置
- 确认ECI服务已开通
## 代码规范
### Go代码规范
- 遵循Go官方代码规范
- 使用gofmt自动格式化
- 运行`make vet``make lint`检查
### 提交规范
- 提交前运行完整测试套件
- 确保代码通过静态分析
- 更新相关文档
## 性能优化
### 构建优化
- 使用静态编译减少运行时依赖
- 优化Docker镜像大小
- 启用编译优化标志
### 运行时优化
- 合理配置资源限制
- 优化API调用频率
- 实现连接池和缓存
## 贡献指南
### 提交Pull Request
1. Fork项目仓库
2. 创建功能分支
3. 实现功能并添加测试
4. 运行完整测试套件
5. 提交Pull Request
### 代码审查
- 确保代码符合项目规范
- 添加适当的测试用例
- 更新相关文档
- 性能影响评估
---
*此开发指南提供了完整的开发环境设置、构建流程和最佳实践,帮助开发者快速上手项目开发。*