Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机/物理机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流 (workflow)。Zadig 不改变现有习惯和流程,几乎兼容所有软件架构,无缝集成 GitHub/GitLab、Jenkins、多家云厂商等,运维成本极低。

项目特色

  • 高并发的工作流

基于云原生设计,经过简单配置,系统自动生成工作流,实现多服务高并发执行构建部署测试任务,以解决微服务架构下带来的多服务构建部署效率低下问题。

  • 以服务为核心的集成环境

一套服务配置,分钟级创建多套数据隔离的测试环境。为开发者进行日常调试、为测试人员做集成测试、为产品经理对外 Demo 提供强力支撑。

对于现有的环境无需担心迁移成本,一键托管,轻松浏览、调试环境中的所有服务。

  • 无侵入的自动化测试

便捷且无侵入的对接已有自动化测试框架,通过 GitHub/GitLab Webhook 自动构建、部署及测试。

通过办公通讯机器人为开发者提供第一时间质量反馈,精准高效。有效落地“测试左移”工程实践,让测试价值得到体现。

  • 开发本地联调 CLI

开发本地编辑完代码,一键进行本地代码构建,部署到联调环境,无需再陷入复杂且繁琐的工作流程,让本地联调不再成为难事。解放工程师双手,去创造更多产品价值。

第一种模式:All in One 一键安装

以 root 用户登录 Linux 主机执行以下命令:

GitHub 源:

# 下载安装脚本并添加可执行权限
curl -LO https://github.com/koderover/zadig/releases/download/v1.11.0/all_in_one_install_quickstart.sh
chmod +x ./all_in_one_install_quickstart.sh

官方下载源:

# 下载安装脚本并添加可执行权限
curl -L https://download.koderover.com/install?type=all-in-one -o all_in_one_install_quickstart.sh
chmod +x ./all_in_one_install_quickstart.sh

# 服务器 IP 地址,用于访问 Zadig 系统
# 如果您有自己的域名,可以配置您可用的域名 export DOMAIN = <DOMAIN>
# 如果出现端口占用情况,换一个端口再尝试
# all_in_one_install_quickstart.sh 替换成实际下载的脚本

export IP=<IP>
export PORT=< 30000 - 32767 任一端口>
./all_in_one_install_quickstart.sh

第二种模式:基于现有的 Kubernetes 集群安装

以集群管理员身份,执行以下命令:

# 快速体验:
curl -LO https://github.com/koderover/zadig/releases/download/v1.11.0/install_quickstart.sh
chmod +x ./install_quickstart.sh

# 生产使用:
curl -LO https://github.com/koderover/zadig/releases/download/v1.11.0/install.sh
chmod +x ./install.sh

# 例如:配置 IP 访问地址
export IP=<node external ip>
export PORT=< 30000 - 32767 任一端口>
# 如果出现端口占用情况,换一个端口再尝试

 export IP=<IP>
# Kubernetes 集群任一节点的外网 IP 地址,用于访问 Zadig 系统
# 如果您有自己的域名,可以配置您可用的域名 export DOMAIN = <DOMAIN>
export PORT=<30000~32767 任一端口>
# 如果出现端口占用情况,换一个端口再尝试
./install_quickstart.sh

第三种模式:基于 Helm 命令安装

步骤 1:创建 Namespace

添加 Zadig 官方 Chart 仓库。

helm repo add koderover-chart https://koderover.tencentcloudcr.com/chartrepo/chart

创建 namespace。

kubectl create ns zadig

 

Zadig 支持两种访问方式,一种是提供访问域名,另一种是直接使用 IP + PORT 的方式访问。不同的访问方式需要设置不同的变量,可用参数请参考可选参数列表

域名访问

请确保您有已备案的域名

export NAMESPACE=<Zadig 安装的 NAMESPACE>
export DOMAIN=<DOMAIN>

helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.11.0 --set endpoint.FQDN=${DOMAIN} \
    --set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
    --set "dex.config.staticClients[0].redirectURIs[0]=http://${DOMAIN}/api/v1/callback,dex.config.staticClients[0].id=zadig,dex.config.staticClients[0].name=zadig,dex.config.staticClients[0].secret=ZXhhbXBsZS1hcHAtc2VjcmV0"

IP + PORT 访问

IP 为 Kubernetes 任一节点的外网可访问 IP。

export NAMESPACE=<Zadig 安装的 NAMESPACE>
export IP=<IP>
export PORT=<PORT>

helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.11.0 --set endpoint.type=IP \
    --set endpoint.IP=${IP} \
    --set gloo.gatewayProxies.gatewayProxy.service.httpNodePort=${PORT} \
    --set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
    --set gloo.gatewayProxies.gatewayProxy.service.type=NodePort \
    --set "dex.config.staticClients[0].redirectURIs[0]=http://${IP}:${PORT}/api/v1/callback,dex.config.staticClients[0].id=zadig,dex.config.staticClients[0].name=zadig,dex.config.staticClients[0].secret=ZXhhbXBsZS1hcHAtc2VjcmV0"

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐