本文介绍 GitHub 仓库管理的项目如何在 Zadig 上快速搭建,下面以 Voting 项目为例,该项目包含 Python, Redis, Postgres, Node.js, and .Net 等相对典型的微服务应用程序组合。以下步骤包含从 Code 到 Ship 的整个过程的演示。

本案例所用代码及配置 fork 自 项目案例源码,主要包含:
案例中使用的 Ingress 对 K8s 集群版本有要求(1.19 及以上),请确保 K8s 集群版本在 1.19 及以上,并根据自己的域名及解析情况按需修改 result 服务和 vote 服务的规则。
Settings -> Developer settings -> OAuth Apps 来新建应用程序。Organization Settings -> Developer settings -> OAuth Apps 来新建应用程序。下面以 GitHub Organization 为例,如下所示。
Organization Settings。
Developer settings -> OAuth Apps,点击 New OAuth App 新建应用程序。

在新建应用程序页面,你需要进行如下步骤:
http://[koderover.yours.com]/api/directory/codehosts/callback应用创建成功后,GitHub 会返回应用的基本信息,点击 Generate a new client secret 生成 Client Secret。

此时页面包括完整的 Client ID 、Client Secret。

切换到 Zadig 系统,管理员依次点击系统设置 -> 集成管理 -> 代码源 -> 点击添加按钮。

依次填入如下已知信息:
代码源:此处选择 GitHub代码源标识:自定义Client ID:应用的 Client IDClient Secret:应用生成的 Client Secret信息确认无误后点击 前往授权,耐心等待,此时会系统会跳转到 GitHub 进行授权。

点击授权按钮,同意授权后,GitHub 会跳转到 Zadig 系统,至此 GitHub 集成完毕。
进入 Zadig 系统,点击新建项目 -> 填写项目名称 voting -> 选择 K8s YAML 项目 -> 点击立即创建。


这里我们需要为以下 5 个服务添加服务配置:
并为以下三个业务服务添加构建以支持持续交付:
Zadig 提供三种方式管理服务配置:
这里,我们使用从代码库同步的方式。点击从代码库同步按钮 -> 选择仓库信息 -> 选择文件目录 examples->voting-app->freestyle-k8s-specifications -> 点击同步按钮即可。


接下来为服务配置构建,以便于后续对服务进行持续交付,具体操作步骤:选择具体的服务 -> 点击添加构建 -> 填写代码信息和构建脚本。


以 vote 服务为例,在构建脚本中填写以下代码:
cd $WORKSPACE/zadig/examples/voting-app/<service-directory>
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
重复以上配置服务构建过程,完成 vote、worker 和 result 的构建配置,注意根据不同的服务修改脚本中的 <service-directory>参数。

使用工作流对环境中的服务进行部署更新,以 dev 环境为例操作步骤如下。
voting-workflow-dev 工作流 -> 选择需要更新的服务(比如 vote 和 result),点击「执行」运行工作流。

dev 环境,可看到 vote 服务和 result 服务被部署更新成功,镜像信息均被更新。
result 和 vote 暴露出来的 URL 可以查看网站。
vote 页面:

result 页面:

添加触发器,使得代码 Push commit、Pull Request、Push tag 都能自动触发 result、vote 服务的重新构建和部署。



vote 服务中 CATS 和 DOGS 的背景颜色。
Details 链接快速跳转到触发的工作流

项目->voting->集成环境,点击 dev 环境中 vote 服务的服务入口,查看网站结果,可以看见 CATS 和 DOGS 背景栏颜色已被更改。



