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

Gerrit

本案例所用代码及配置 fork 自 项目案例源码,请将源码放在自己的 Gerrit 代码库。源码主要包含:

案例中使用的 Ingress 对 K8s 集群版本有要求(1.19 及以上),请确保 K8s 集群版本符合并根据自己的域名及解析情况按需修改 result 服务和 vote 服务的规则:

步骤 1:获取 Gerrit 的用户名和密码

Gerrit 管理员可以通过点击 Gerrit 右上角的 Settings 按钮,进入设置页面。找到 HTTP 密码 HTTP Credentials 配置区域,点击 生成新密码 GENERATE NEW PASSWORD,并复制新生成的密码。

Gerrit

Gerrit

步骤 2:将配置填入 Zadig

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

Gerrit

依次填入如下已知信息:

信息确认无误后点击确定,至此 Gerrit 集成完毕。

进入 Zadig 系统,点击新建项目 -> 填写项目名称 voting -> 选择 K8s YAML 项目 -> 点击立即新建。

onboarding

onboarding

点击从代码库同步按钮 -> 选择仓库信息 -> 选择文件目录 freestyle-k8s-specifications -> 点击同步按钮即可。

onboarding

接下来为服务配置构建,具体操作步骤:选择具体的服务 -> 点击添加构建 -> 填写代码信息和构建脚本。

onboarding

vote 服务为例,在构建脚本中填写以下代码:

#!/bin/bash
set -e
cd $WORKSPACE/voting-app/<service-directory>
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE

重复以上配置服务构建过程,完成 voteworkerresult 的构建配置,注意根据不同的服务修改脚本中的 <service-directory> 参数。

onboarding

使用工作流对环境中的服务进行部署更新,以 dev 环境为例操作步骤如下。

workflow

workflow

workflow

需要注意此处的 URL 正常访问依赖于服务的 Ingress 配置,需要在准备工作中根据自己的域名及解析情况按需修改。

workflow

vote 页面:

workflow

result 页面:

workflow

添加触发器,使得代码 Change merged、Patchset created 都能自动触发 resultvote 服务的重新构建和部署。

trigger

triggertrigger

trigger

trigger

trigger

trigger

imim

im

im