docs: clarify GitOps version sync and Go CI defaults
This commit is contained in:
parent
1e9886e706
commit
79dac732db
@ -25,14 +25,14 @@
|
||||
- 百智云用户鉴权是平台必填接入项,需要逐项补齐 `app_id` 与证书材料
|
||||
- 平台 shared 之外的私有依赖必须明确来源,不能只写不存在的连接参数
|
||||
- 应用自带私有依赖的内部口令优先自动生成;外部集成凭据再向用户逐项索取
|
||||
- 只允许应用仓库 CI 向 GitOps 仓库同步当前应用自己的 release 结果
|
||||
- 只允许应用仓库 CI 向 GitOps 仓库同步当前应用自己的 release 结果与版本引用;如果当前应用的 chart 版本由 GitOps 仓库中的 `Application` 维护,则只同步更新 `apps/<app-name>/application.yaml` 里的 `targetRevision`
|
||||
|
||||
不适合处理:
|
||||
|
||||
- 通用 GitLab CI 改造
|
||||
- 通用 Helm Chart 编写
|
||||
- 未指向当前平台常量的通用 GitOps / Argo CD 任务
|
||||
- 修改 GitOps 仓库中的 `Application`、`AppProject` 或其他发布侧清单
|
||||
- 修改其他应用的 `Application`、任意 `AppProject` 或其他与当前应用版本引用无关的发布侧清单
|
||||
- 改成 Ingress 驱动的对外暴露方式
|
||||
|
||||
## 安装
|
||||
|
||||
@ -74,8 +74,10 @@ description: 面向当前 Baizhi GitOps 平台的项目接入工作流,只适
|
||||
边界约束:
|
||||
|
||||
- 本 skill 只处理应用仓库侧接入
|
||||
- 不读取、不判断、不修改 GitOps 仓库中的 `Application`、`AppProject` 或其他发布侧清单
|
||||
- 对 GitOps 的唯一动作,是在应用仓库 CI 中推送当前应用自己的 release 结果或版本引用
|
||||
- 不读取、不判断、不修改与当前应用无关的 GitOps 发布侧清单
|
||||
- 对 GitOps 的唯一动作,是在应用仓库 CI 中同步当前应用自己的 release 结果与版本引用
|
||||
- 如果当前应用的 Argo CD `Application` 已存在且 chart 版本引用由 GitOps 仓库维护,只允许同步更新 `apps/<app-name>/application.yaml` 中当前应用 chart source 的 `targetRevision`
|
||||
- 不要修改 `AppProject`、bootstrap、其他应用的 `Application`,也不要改动当前应用 `Application` 中除 chart `targetRevision` 以外的字段
|
||||
|
||||
## 交付模型
|
||||
|
||||
@ -89,7 +91,7 @@ description: 面向当前 Baizhi GitOps 平台的项目接入工作流,只适
|
||||
1. 分支或 MR 只跑测试
|
||||
2. 打 `vX.Y.Z` tag 后构建并推送镜像
|
||||
3. 打 `vX.Y.Z` tag 后打包并推送 Helm Chart
|
||||
4. 打 `vX.Y.Z` tag 后更新当前 GitOps 仓库中该应用的版本引用
|
||||
4. 打 `vX.Y.Z` tag 后更新当前 GitOps 仓库中该应用的版本引用,包括当前应用 `Application` 中 chart source 的 `targetRevision`
|
||||
5. 推送当前 GitOps 仓库提交
|
||||
6. Argo CD 感知当前 GitOps 仓库变更后自动同步
|
||||
|
||||
@ -140,6 +142,13 @@ test job 应运行在分支和 MR 上,并执行目标项目自己的标准测
|
||||
- 如果依赖私有代码仓库,补齐认证
|
||||
- 使用项目本身的标准测试入口,不要擅自发明新的测试命令
|
||||
|
||||
Go 项目额外要求:
|
||||
|
||||
- 如果项目使用 Go,并且依赖公共模块下载,默认在 GitLab CI variables 中加入:`GOPROXY=https://goproxy.cn,direct`、`GOSUMDB=sum.golang.google.cn`
|
||||
- 如果项目使用 `git.in.chaitin.net` 私有 Go 模块,默认同时加入:`GOPRIVATE=git.in.chaitin.net`、`GONOSUMDB=git.in.chaitin.net`、`GONOPROXY=git.in.chaitin.net`、`GOINSECURE=git.in.chaitin.net`
|
||||
- 如果项目通过 GitLab 私有仓库拉取依赖且当前平台环境需要跳过证书校验,默认加入:`GIT_SSL_NO_VERIFY="true"`
|
||||
- 这类 Go 代理与私有仓库变量应放在 `.gitlab-ci.yml` 的 `variables:` 中,而不是分散写进单个命令
|
||||
|
||||
示例:
|
||||
|
||||
- Go:`go mod download`、`go test ./...`
|
||||
@ -164,7 +173,7 @@ test job 应运行在分支和 MR 上,并执行目标项目自己的标准测
|
||||
- 用 CI 凭据生成 `.netrc`
|
||||
- 通过 Docker build secret 传入
|
||||
- 如需额外 CA 证书,也通过 build secret 传入
|
||||
- 不要通过全局关闭 TLS 校验规避问题
|
||||
- 如果私有 GitLab 仓库位于 `git.in.chaitin.net` 且当前平台环境需要跳过证书校验,可配合 `GOINSECURE=git.in.chaitin.net` 与 `GIT_SSL_NO_VERIFY="true"`
|
||||
|
||||
不要使用:
|
||||
|
||||
@ -194,6 +203,7 @@ test job 应运行在分支和 MR 上,并执行目标项目自己的标准测
|
||||
- `releases/<app-name>/values.yaml`
|
||||
- `releases/<app-name>/metadata.yaml`
|
||||
- `releases/<app-name>/manifests/` 下由当前应用导出的发布结果
|
||||
- `apps/<app-name>/application.yaml` 中当前应用 chart source 的 `targetRevision`
|
||||
|
||||
不要在这个 job 中加入集群部署逻辑。
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user