1 Star 2 Fork 0

yue-open / yue-open-devops-deploy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 7.11 KB
一键复制 编辑 原始数据 按行查看 历史
yl-yue 提交于 2023-02-25 20:29 . 完善文档,优化代码

提供Rancher持续部署能力

yue-library官网 GitHub Docker Pulls gitee star GitHub Repo stars GitHub issues

-- 主页:https://ylyue.cn/ --

-- QQ群:883630899 --


yue-open-devops-deploy

提供Rancher持续部署能力,通知Rancher进行工作负载重新部署(用于docker镜像版本更新后,在Pod配置不变的情况下,更新拉取最新(或指定版本)的镜像)。

yue-open-devops-deploy基于yue-library开发,所有配置项皆可通过docker -e 环境变量注入

docker启动

MySQL8数据库初始化脚本位于docs/mysql8/yue_open_devops_deploy.sql
yue-open-devops-deploy 2.x开始提供admin后台,因此需要依赖MySQL数据库。

  • 暂不提供基于SQLite的方式,考虑一般开发环境都有业务数据库,如果你也恰好是MySQL8,那正好,你只需要在你的MySQL8实例中新建一个名为yue_open_devops_deploy的数据库utf8mb4/utf8mb4_0900_ai_ci字符集,然后再导入yue_open_devops_deploy.sql

配置项说明

配置项
必填
配置项说明
示例配置
server.port 容器内部端口号 默认:9999
spring.datasource.druid.url mysql url jdbc:mysql://localhost:3306/yue_open_devops_deploy?characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
spring.datasource.druid.username mysql username root
spring.datasource.druid.password mysql password b9a24bc279994963a7789ea802367e17

yml配置示例:

server:
  port: 9999
spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/yue_open_devops_deploy?characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
      username: root
      password: b9a24bc279994963a7789ea802367e17

docker启动命令示例

  • 👉dockerhub
  • 国内镜像加速地址:registry.cn-hangzhou.aliyuncs.com/yl-yue/yue-open-devops-deploy
  • 国外镜像加速地址:registry.cn-hongkong.aliyuncs.com/yl-yue/yue-open-devops-deploy

docker启动命令示例(注意替换-e环境变量中的值):

docker run -d -e key=value -p9999:9999 --name=yue-open-devops-deploy ylyue/yue-open-devops-deploy:2.0.0

如何使用

  1. 确保yue-open-devops-deploy已部署在可访问Rancher Service API的环境中(推荐直接部署在Rancher管理的k8s集群中)
  2. 访问http://localhost:9999进入admin界面配置`BearerToken`、`Docker镜像`、`工作负载`
  • BearerToken:在Rancher UI中可创建,用于调用Rancher API(也用于多Rancher环境区分)
  • Docker镜像:Docker镜像信息
  • 工作负载:工作负载信息,需要注意的是工作负载API地址需要在Rancher中获取
  1. 触发yue-open-devops-deploy通知

HTTP接口地址:PUT /devops/cd

参数名
必填
参数作用说明
参数值示例
workloadName 工作负载名:用于接收请求时匹配的唯一标识,推荐用命名空间+工作服务名进行命名 dev_service-user
imageTag docker镜像版本 2.0.1

完整请求示例:

curl -X PUT http://192.168.0.11:9999/devops/cd -d 'workloadName=dev_service-user&imageTag=2.0.1'

环境变量请求示例(如:云效等场景):

curl -X PUT ${yueOpenRedeployUrl} -d '&workloadName='${workloadName}'&imageTag='${DATETIME}

工作负载API地址如何获取

2.x开始的yue-open-devops-deploy最低兼容Rancher 2.6.x,历史兼容请使用历史版本,见历史文档。

方式一:URL替换模式

工作负载API地址示例:https://192.168.3.50/k8s/clusters/c-m-t8djxmjs/v1/apps.deployments/yue-open:yue-open-devops-deploy

替换规则:https://${rancherUrl}/k8s/clusters/${clusterId}/v1/apps.deployments/${namespaceName}:${deploymentName}

替换规则变量详解:

变量 说明 示例
rancherUrl Rancher UI地址(不是默认端口时需要带端口) https://192.168.3.52
clusterId 集群ID,在点击对应集群后的地址栏可获得 c-m-t8djxmjs
namespaceName 命名空间名称 yue-open
deploymentName 工作负载名称 yue-open-devops-deploy

方式二:F12浏览器控制台查看

  1. F12打开浏览器控制台
  2. 点击重新部署对应服务的工作负载后,在网络请求中获取请求地址

版本历史

2.0.0

  • 提供UI界面管理,更方便的实现CD、回滚、发版到其他环境等
  • 数据存储在数据库中,更方便查看版本与相关信息
  • cd接口参数更加精简,因为数据已存在数据库中

1.2.0

  • 增强bearerToken的兼容性,可识别未带Bearer 前缀的bearerToken
  • 优化钉钉通知,使得无论是成功或错误通知,都更加直观具体
  • 完善workloadApiUrl请求参数详解文档

1.1.1

  • 钉钉通知加入imageTag,方便docker镜像版本追溯

1.1.0

yodd加入yue-open项目集后,正式推出的第一个规范化版本:

  • 优化API接口传参
  • 优化环境变量参数命名
  • 重构文档与示例

历史推荐版本

1.2.0

1
https://gitee.com/yue-open/yue-open-devops-deploy.git
git@gitee.com:yue-open/yue-open-devops-deploy.git
yue-open
yue-open-devops-deploy
yue-open-devops-deploy
master

搜索帮助