8b15541a1526cb752df551e2a87196c24f6bce2f
CI / Prepare CI context (push) Has been cancelled
CI / Prepare Go module cache (push) Has been cancelled
CI / Backend unit tests (push) Has been cancelled
CI / Frontend typecheck and build (push) Has been cancelled
CI / Backend integration smoke test (push) Has been cancelled
feat: MySQL 交付支持一主多从(primary_replica)拓扑 (#108)
✨ 核心能力
📦 资源纳管
- 多集群管理 — 统一接入和管理多个 K8s 集群,集群状态实时可见
- 资源全景 — 纳管集群内的 Namespace、工作负载、配置等核心资源,提供统一视图
- 租户管理 — 基于业务线的多租户资源隔离与配额管理
🚀 基础服务部署
- 服务目录 — 标准化的服务目录管理,定义和维护可部署的服务清单
- 服务发布 — 基于 Wayne 平台的 K8s 服务部署与发布,支持多环境发布
- 运维驾驶舱 — 服务状态总览,实时掌握部署进度与运行状况
🎯 业务交付
- 业务线管理 — 按业务线组织资源与权限,清晰的组织架构映射
- 子系统授权 — 基于业务线的细粒度子系统访问控制与角色绑定
- 任务调度 — 统一的任务中心,编排和执行运维操作流程
🔐 统一认证与审计
- 多协议认证 — LDAP + SAML + OAuth 2.0,对接企业统一身份认证
- SSO 单点登录 — 一次登录,无缝跳转各子系统
- 全链路审计 — 登录审计 + 操作审计,完整记录每一次运维操作
🛠️ 技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 前端 | Vue 3 + TypeScript + Vite | Composition API + Element Plus UI |
| 后端 | Go + Gin + GORM | RESTful API + Swagger 文档 |
| 数据库 | MySQL 8.0 | GORM AutoMigrate 迁移管理 |
| 认证 | JWT + LDAP/SAML/OAuth 2.0 | 多协议统一认证网关 |
| 部署 | Docker + Kubernetes + Wayne | Nginx 反向代理 + K8s 编排 |
📁 项目结构
xinfra/
├── frontend/ # 前端 Vue 3 项目
│ └── src/
│ ├── api/ # API 请求封装
│ ├── components/ # 可复用组件
│ ├── composables/ # 组合式函数
│ ├── layouts/ # 页面布局
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia 状态管理
│ ├── views/ # 页面视图
│ │ ├── dashboard/ # 运维驾驶舱
│ │ ├── cluster/ # 集群管理
│ │ ├── resource/ # 资源纳管(Namespace/租户/状态看板)
│ │ ├── service/ # 服务部署(目录/发布管理)
│ │ ├── task/ # 任务调度中心
│ │ ├── businessLine/ # 业务线管理
│ │ ├── subsystem/ # 子系统管理与授权
│ │ ├── config/ # 配置管理
│ │ ├── monitor/ # 监控告警
│ │ ├── audit/ # 审计日志
│ │ └── auth/ # 登录认证
│ └── utils/ # 工具函数
├── server/ # 后端 Go 项目
│ ├── cmd/server/ # 程序入口
│ ├── internal/ # 内部包(分层架构)
│ │ ├── auth/ # 认证模块
│ │ ├── config/ # 配置管理
│ │ ├── database/ # 数据库连接
│ │ ├── handler/ # HTTP 处理器
│ │ ├── model/ # 数据模型
│ │ ├── router/ # 路由注册
│ │ ├── service/ # 业务逻辑
│ │ ├── sso/ # SSO 单点登录
│ │ └── wayne/ # Wayne 子系统集成
│ └── migrations/ # 数据库迁移
├── deploy/ # 部署配置
│ ├── docker/ # Docker 构建配置
│ └── k8s/ # Kubernetes 配置
├── Makefile # 构建脚本
└── LICENSE # Apache 2.0 License
🚀 快速开始
环境要求
| 依赖 | 版本 |
|---|---|
| Go | >= 1.21 |
| Node.js | >= 18 |
| MySQL | >= 8.0 |
| Redis | >= 7.0 |
安装与运行
# 1. 克隆项目
git clone https://github.com/2311719626/xinfra.git
cd xinfra
# 2. 启动本地开发环境(MySQL + Redis)
make dev-up
# 3. 启动前后端开发服务器
make run
💡 也可以分别启动前后端:
make run-frontend # 启动前端 dev server make run-server # 启动后端 server
构建与部署
# 构建前后端
make build
# 构建 Docker 镜像
make docker
# 部署到 Kubernetes
kubectl apply -f deploy/k8s/
📖 API 文档
Swagger 文档通过 swaggo 自动生成:
make swagger
生成后访问:http://localhost:8080/swagger/index.html
🔧 开发指南
可用命令
| 命令 | 说明 |
|---|---|
make help |
显示帮助信息 |
make build |
构建前后端项目 |
make run |
启动开发服务器 |
make test |
运行测试 |
make docker |
构建 Docker 镜像 |
make swagger |
生成 API 文档 |
make migrate-up |
执行数据库迁移 |
make migrate-down |
回滚数据库迁移 |
make clean |
清理构建产物 |
Git 提交规范
本项目遵循 Conventional Commits 规范:
| 前缀 | 说明 |
|---|---|
feat: |
✨ 新功能 |
fix: |
🐛 修复 Bug |
docs: |
📝 文档更新 |
style: |
💄 代码格式(不影响逻辑) |
refactor: |
♻️ 重构 |
perf: |
⚡ 性能优化 |
test: |
✅ 测试相关 |
chore: |
🔧 构建/工具链 |
ci: |
🎡 CI/CD 配置 |
代码规范
- Go — 遵循
gofmt格式,提交前运行go vet ./... - Vue/TypeScript — 遵循 ESLint 规范,提交前运行
npm run lint - 提交前请确保代码通过所有测试:
make test
🤝 参与贡献
欢迎参与贡献!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支:
git checkout -b feat/amazing-feature - 提交更改:
git commit -m 'feat: add amazing feature' - 推送分支:
git push origin feat/amazing-feature - 提交 Pull Request
📋 路线图
- 完善 Ansible Playbook 调度与实时日志推送
- 补充完整 API 接口文档
- 添加单元测试与集成测试
- 多集群跨集群操作支持
- 操作回放与审计录像
📜 许可证
本项目采用 Apache License 2.0 开源协议。
如果觉得有用,请点个 ⭐ Star 支持一下!
Description
Languages
Go
56.4%
Vue
31.9%
TypeScript
6.3%
Shell
2.6%
CSS
1.5%
Other
1.2%