本次沒有使用Pipeline梯皿,通過頁面配置實(shí)現(xiàn)仇箱,可根據(jù)頁面配置轉(zhuǎn)換為Pipeline;
最終實(shí)現(xiàn)效果:
1东羹、配置gitlab webhook監(jiān)聽merge請(qǐng)求剂桥,觸發(fā)jenkins job,同時(shí)jenkins job僅對(duì)master分支做響應(yīng)(其他分支的merge請(qǐng)求自動(dòng)忽略)百姓;
2渊额、編譯代碼并生成Docker images;
3、推送images到阿里云容器倉(cāng)庫(kù)
4旬迹、觸發(fā)阿里云k8s集群中的pod更新
所用插件及版本
Kubernetes Continuous Deploy Plugin 2.3.0
Jackson 2 API Plugin 2.11.2(非官方版,有bug,見文章最后解Bug部分)
docker-build-step 2.5
Webhook的配置
Jenkins部分
配置Build when a change is pushed to GitLab 部分
Gitlab部分
項(xiàng)目-> 設(shè)置 -> webhook
編譯代碼并生成Docker images
給k8s yaml文件配置環(huán)境變量
這里定義的環(huán)境變量可以傳送到y(tǒng)aml文件中引用火惊;
編譯代碼
這部分按照自己的需求結(jié)合Dockerfile做即可
生成鏡像
推送Image到阿里云容器倉(cāng)庫(kù)
觸發(fā)阿里云k8s集群更新
添加集群憑據(jù)
可以使用Enter directly直接將config內(nèi)容放進(jìn)去
配置k8s的更新
==========================
頁面配置結(jié)束,下面解插件bug
Kubernetes Continuous Deploy Plugin
任務(wù)臺(tái)輸出:
exception=Class not found: io.kubernetes.client.openapi.models.V1Service
解決方案:
拉取github代碼:
git clone https://github.com/jenkinsci/jackson2-api-plugin
git checkout jackson2-api-2.11.2
刪除
https://github.com/jenkinsci/jackson2-api-plugin/commit/cbbdf36843505efd5d2d7cd4769018e4cc09f450
這次提交的內(nèi)容
在maven 的setting.xml里面添加:
<mirror>
<mirrorOf>m.g.o-public</mirrorOf>
<url>http://repo.jenkins-ci.org/public</url>
<id>jenkins-ci.org</id>
<name>Jenkins CI Public</name>
</mirror>
執(zhí)行mvn clean verify 打包
將編譯好的hpi文件上傳更新即可