HCP是B站内部针对多云场景下的进行资源管理、自动化交付、运维以及资源运营的CMP平台的开源版本,支持了主流的云厂商和云产品,包括IaaS和PaaS类的云产品。旨在和社区的同学一起共建多云场景下的统一CMP能力,帮助内部业务高效使用云资源,尽可能屏蔽底层不同厂商的差异,降低使用成本。
HCP支持如下能力:
- 国内外主流厂商以及账号的接入和管理
- 主要云产品的资源管理和自动化操作,比如:新购、改配、清退等
- 用户管理
- 项目管理
语言:推荐使用Go 1.22.5或更高版本
框架:推荐使用Kratos 1.1.36或更高版本
容器: Docker
数据库: Mysql
Web服务器: Nginx
1.配置包代理镜像
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
2.检查和更新项目的依赖项
go mod tidy
3.构建go编译包
进入 app/interface/v1/cmd
运行 go build -o hcp命令
运行 ./hcp即可启动项目
Docker、MySQL
MySQL:根目录会有database/hcp.sql文件请安装好MySQL并创建好数据库后,导入hcp.sql文件
1.将下载的项目部署到主机中
2.根目录下会有dockerfile_fronten文件,运行以下命令来构建Nginx镜像:
docker build -t hcp_forentend:v1.0 -f ./dockerfile_frontend .
3.运行构建的Nginx镜像
docker run -p 80:80 -d hcp_forentend:v1.0
1.根目录下会有dockerfile_base文件,运行以下命令来构建基础镜像
docker build -t hcp-bash:v1.0 -f ./dockerfile_base .
2.根目录下会有dockerfile文件,运行以下命令来构建HCP镜像
docker build ./ -t hcp:v1.0
3.运行构建的hcp镜像
docker run -p 8001:8001 -d hpc:v1.0
使用说明参考tutorial.md
HCP仓欢迎广大开发者体验并参与贡献,在参与社区贡献前
针对HCP仓,开发者准备本地代码与提交PR时需要重点关注如下几点:
- 提交PR时,请按照PR模板仔细填写本次PR的业务背景、目的、方案等信息。
- 若您的修改不是简单的bug修复,而是涉及到新增特性、新增接口、新增配置参数或者修改代码流程等,请务必先通过Issue进行方案讨论,以避免您的代码被拒绝合入。若您不确定本次修改是否可被归为“简单的bug修复”,亦可通过提交Issue进行方案讨论。
代码下载与贡献流程
- 进行代码开发前,请先将需要参与开发的仓库fork到个人仓,然后将个人仓下载到本地。并在本地分支进行代码修改。
- 参考每个开放项目的说明文档,进行本地构建与验证。
- 代码验证满足贡献要求后,提交Pull-Request,将代码贡献到相应的开放项目。
- 请注意查看门禁测试结果,若未通过,请根据问题提示进行本地代码修改;若通过,此PR会被分配给commiter检视,请关注commiter的检视意见。
- 当您的PR检视通过后,代码会合入相应的开放项目
任何问题可以发送邮件给我们:[email protected]
本项目遵循Apache License, Version 2.0开源协议。