# OCDP Frontend OCDP (Open Cloud Development Platform) Frontend - **Helm Chart 管理平台** > 🎯 **专注于 Helm Charts**: 基于后端 OpenAPI 的前端应用,用于浏览、部署和管理 Helm Charts --- ## 🚀 快速开始 ### 1. 安装依赖 ```bash npm install ``` ### 2. 选择开发模式 本项目支持三种运行模式,通过 `Makefile` 命令启动: #### **Mode 0** - Mock API,热重载(推荐快速开发) ```bash make run-0 ``` - ✅ 前端:`localhost:5173`(Vite 热重载) - ✅ 后端:Mock/Stub 数据(不需要真实后端) - ✅ 适用:快速 UI 开发和调试 #### **Mode 1** - Real API,热重载(集成测试) ```bash make run-1 ``` - ✅ 前端:`localhost:5173`(Vite 热重载) - ✅ 后端:真实 API(`http://localhost:8080`) - ⚠️ 需要后端服务运行 #### **Mode 2** - Docker Compose 部署(生产测试) ```bash make run-2 ``` - ✅ 前端:`localhost:3000`(Nginx + Docker 容器) - ✅ 后端:容器化部署 - ✅ 适用:生产环境测试 ### 3. 清理(Mode 2) ```bash make clean-2 ``` --- ## 📋 命令列表 | 命令 | 说明 | |------|------| | `make run-0` | Mode 0 - Mock API,热重载前端 | | `make run-1` | Mode 1 - Real API,热重载前端 | | `make run-2` | Mode 2 - Docker Compose 部署 | | `make clean-2` | 清理 Mode 2 容器 | --- ## 🔌 Backend OpenAPI 集成 ### 架构 ``` backend/docs/openapi.yaml ↓ OpenAPI Generator ↓ src/api/generated/ (自动生成的 API 客户端) ↓ src/api/client.ts (封装层,支持 Mode 切换) ↓ React Components ``` ### API 客户端使用 项目使用 OpenAPI Generator 生成的 TypeScript 客户端,根据运行模式自动切换: - **Mode 0**: 使用 Mock 数据 - **Mode 1**: 调用真实后端 API(`localhost:8080`) - **Mode 2**: Docker 环境,通过 Nginx 反向代理 ### 使用示例 ```typescript import { api } from '@/api/client'; // 获取 Registries const registries = await api.registries.list(); // 获取 Helm Chart 列表(自动过滤,只返回 Charts) const charts = await api.artifacts.list('registry-id', 'repo-name'); // 获取 Chart 详情 const chart = await api.artifacts.get('registry-id', 'repo-name', 'version'); // 获取 Chart 的 values schema(用于部署配置) const schema = await api.artifacts.getValuesSchema('registry-id', 'repo-name', 'version'); // 部署 Helm Chart const instance = await api.instances.create({ name: 'my-app', namespace: 'default', registry_id: 'registry-id', artifact_id: 'repo-name', version: '1.0.0', cluster_id: 'cluster-id' }); ``` ### 重新生成 API Client 当后端 OpenAPI 规范更新时: ```bash cd .. make openapi-gen-frontend ``` --- ## 🛠 技术栈 - **React 19** + **TypeScript** - UI 框架 - **Vite 7** - 构建工具和开发服务器 - **Tailwind CSS** - 样式框架 - **OpenAPI Generator** - API 客户端生成 - **Axios** - HTTP 客户端 - **React Router v7** - 路由管理 --- ## 🎯 核心功能 - ✅ **Helm Chart 浏览**: 从 OCI Registry 浏览 Helm Charts(自动过滤) - ✅ **Chart 部署**: 部署 Helm Chart 到 Kubernetes 集群 - ✅ **实例管理**: 管理已部署的 Helm Chart 实例 - ✅ **集群管理**: 管理 Kubernetes 集群连接 - ✅ **Registry 管理**: 管理 OCI Registry 配置 - ❌ **不支持**: 容器镜像管理(仅 Helm Charts) --- ## 📁 项目结构 ``` frontend/ ├── src/ │ ├── api/ │ │ ├── generated/ # 🤖 OpenAPI 自动生成的客户端 │ │ └── client.ts # API 客户端封装(Mode 切换) │ ├── features/ # 功能模块 │ │ ├── auth/ # 认证 │ │ ├── artifact/ # Helm Charts │ │ ├── configuration/ # 配置管理 │ │ └── monitoring/ # 监控 │ ├── shared/ # 共享组件 │ ├── app/ # 应用配置 │ └── main.tsx # 入口文件 ├── Makefile # 开发命令(三种模式) ├── package.json # 依赖配置 ├── vite.config.ts # Vite 配置 ├── docker-compose.dev.yml # Docker Compose 配置 ├── Dockerfile # 生产构建 └── nginx.conf # Nginx 配置 ``` --- ## 💡 开发工作流 ### 日常开发(Mode 0) ```bash make run-0 # 修改代码 → 自动热重载 ``` ### 集成测试(Mode 1) ```bash # 1. 确保后端运行在 localhost:8080 cd ../backend make run # 2. 启动前端(Mode 1) cd ../frontend make run-1 ``` ### 生产测试(Mode 2) ```bash make run-2 # 测试生产构建 # 完成后清理: make clean-2 ``` --- ## 🐛 常见问题 ### Mode 0 - 端口占用 ```bash lsof -ti:5173 | xargs kill -9 ``` ### Mode 1 - 后端连接失败 确保后端服务运行: ```bash curl http://localhost:8080/health ``` ### Mode 2 - 容器问题 ```bash # 查看日志 docker compose -f docker-compose.dev.yml logs -f # 清理并重建 make clean-2 make run-2 ``` ### OpenAPI 客户端更新 ```bash # 在项目根目录执行 cd .. make openapi-gen-frontend ``` --- ## 📚 更多信息 - **后端项目**: `../backend` - **OpenAPI 规范**: `../backend/docs/openapi.yaml` - **查看所有命令**: `make help` --- ## 📄 License MIT