使用 GitOps 实现应用持续部署
GitOps 是一种通过 Git 仓库作为应用配置和部署的唯一真实来源的持续交付方法。本文将详细介绍如何在 Rainbond 平台上实现 GitOps 持续部署流程,包括代码仓库对接、自动构建配置及完整部署流程。
Rainbond 支持两种 GitOps 持续部署方式:
- 通过 OAuth 对接 Git 仓库,基于源码创建组件是通过打开自动构建按钮,Rainbond 会自动在对应的仓库中配置 WebHook。
- 手动配置 WebHook,在代码仓库中配置 WebHook 地址,并设置触发条件。
前提条件
- 已安装并配置 Rainbond 平台
- 拥有 GitHub、GitLab、Gitee、Gitea 等代码仓库的管理员权限
- 拥有 Rainbond 平台的团队管理员或平台管理员权限
- 确保网络连接畅通,代码仓库和 Rainbond 平台可以相互访问
一、对接代码仓库并配置自动构建
Rainbond 支持对接多种 Git 代码仓库,通过 OAuth 协议实现授权认证,目前支持 GitHub、GitLab、Gitee、Gitea 四种代码仓库。
对接 GitHub
创建 GitHub OAuth Apps
- 登录 GitHub 账号,进入 Settings → Developer settings → OAuth Apps → New OAuth App
- 填写以下信息:
- Application name:自定义应用名称,例如 "Rainbond GitOps"
- Homepage URL:Rainbond 访问地址,例如
https://rainbond.com - Authorization callback URL:回调地址,格式为
{Rainbond地址}/console/oauth/redirect,例如https://rainbond.com/console/oauth/redirect
- 点击 Register application 完成创建
- 创建完成后,记录生成的 Client ID 和 Client Secret
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 → 设置 → 基础设置 → OAuth 第三方服务集成 → 添加
- 个人配置:进入 个人中心 → Git私有仓库 → 添加
- 填写以下信息:
- OAuth 类型:选择 github
- 名称:自定义名称,例如 "GitHub"
- 客户端 ID:填写 GitHub OAuth Apps 中的 Client ID
- 客户端密钥:填写 GitHub OAuth Apps 中的 Client Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
对接 GitLab
创建 GitLab Applications
- 登录 GitLab 账号,进入 User Settings → Applications
- 填写以下信息:
- Name:自定义名称,例如 "Rainbond GitOps"
- Redirect URL:回调地址,格式为
{Rainbond地 址}/console/oauth/redirect,例如https://rainbond.com/console/oauth/redirect - Scopes:勾选
apiread_userread_repository
- 点击 Save application 完成创建
- 记录生成的 Application ID 和 Secret
注意:如果使用的是 GitLab 10.6 及以上版本,需要允许向本地网络发送 Webhook 请求。进入 Admin area → settings → OutBound Request,勾选
Allow requests to the local network from hooks and services。
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 → 设置 → 基础设置 → OAuth 第三方服务集成 → 添加
- 个人配置:进入 个人中心 → Git私有仓库 → 添加
- 填写以下信息:
- OAuth 类型:选择 gitlab
- 名称:自定义名称,例如 "GitLab"
- 服务地址:GitLab 访问地址,例如
https://gitlab.example.com - 客户端 ID:填写 GitLab Applications 中的 Application ID
- 客户端密钥:填写 GitLab Applications 中的 Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
对接 Gitee
创建 Gitee 第三方应用
- 登录 Gitee 账号,进入 设置 → 第三方应用 → 创建应用
- 填写以下信息:
- 应用名称:自定义名称,例如 "Rainbond GitOps"
- 应用主页:Rainbond 访问地址,例如
https://rainbond.com - 应用回调地址:回调地址,格式为
{Rainbond地址}/console/oauth/redirect,例如https://rainbond.com/console/oauth/redirect - 权限:勾选
user_infoprojectshook
- 点击 创建应用 完成创建
- 记录生成的 Client ID 和 Client Secret
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 → 设置 → 基础设置 → OAuth 第三方服务集成 → 添加
- 个人配置:进入 个人中心 → Git私有仓库 → 添加
- 填写以下信息:
- OAuth 类型:选择 gitee
- 名称:自定义名称,例如 "Gitee"
- 服务地址:填写
https://gitee.com - 客户端 ID:填写 Gitee 第三方应用中的 Client ID
- 客户端密钥:填写 Gitee 第三方应用中的 Client Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
对接 Gitea
创建 Gitea 应用
- 登录 Gitea 账号,进入 设置 → 应用 → 创建应用
- 填写以下信息:
- 应用名称:自定义名称,例如 "Rainbond GitOps"
- 应用回调地址:回调地址,格式为
{Rainbond地址}/console/oauth/redirect,例如https://rainbond.com/console/oauth/redirect
- 点击 创建应用 完成创建
- 记录生成的 Client ID 和 Client Secret
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 → 设置 → 基础设置 → OAuth 第三方服务集成 → 添加
- 个人配置:进入 个人中心 → Git私有仓库 → 添加
- 填写以下信息:
- OAuth 类型:选择 gitea
- 名称:自定义名称,例如 "Gitea"
- 服务地址:填写
https://gitea.com - 客户端 ID:填写 Gitea 第三方应用中的 Client ID
- 客户端密钥:填写 Gitea 第三方应用中的 Client Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
OAuth 账号认证
在完成 OAuth 配置后,需要进行账号认证与第三方平台互联:
- 点击 Rainbond 页面右上角的用户头像
- 选择 个人中心 → OAuth 账号绑定
- 在对应的代码仓库平台(GitHub/GitLab/Gitee)点击 去认证
- 按照页面引导完成授权认证过程