利用jenkins+harbor+k8s搭建起一套实时更新测试环境
带有图片原版博客地址:https://blog.zhenglin.work/other/devops_practices_k8s.html
场景描述
有这么一场景,Java被测应用和Java探针一起制作成镜像后部署到k8s环境,当有新版探针发布时,要基于新版探针制作一个新的镜像,并在k8s集群中更换镜像。
- 分析需求后,决定用两个jenkins project来完成这个任务。
- 第一个project,把原来编译打包探针project中增加触发下游项目和传递探针版本参数功能。
- 第二个project,由第一个project触发;1,copy第一个脚本编译出来的探针文件,然后利用docker插件把最新探针文件连同被测应用镜像合成出 我们需要的镜像;2,推送到harbor仓库;3,最后在k8s集群更新镜像。
实现步骤
project1的实现
- 插件准备:"Environment Injector " “Copy Artifact” "Parameterized Trigger " 一些基础的插件这里不再说了;
- 原有project功能说明
我们探针源码有多个分支,有开发用的dev、测试用的test,以及正式版本uat-x.x.x(x为数字);关于正式版呢,在测试通过后,会基于test分支创建出一个uat-x.x.x的正式版。这个时候人为构建project时,输入正式分支版本号,即可下拉这个版本源码,进行编译、和打包存档操作。
project 部分截图
拉取指定分支源码
[外链图片转存失败(img-sucnjy2b-1563714386265)(images/1563352085287.png)]
编译和存档,编译在execute shell模块实现编译&#