Tekton trigger 组件是用来接收 webhook,做一些 校验,过滤,参数绑定等前处理,然后帮你自动创建 PipelineRun 等资源执行流水线 。
kc apply -f ./manifests/triggers复制代码
config webhook in github repo接收 webhook 需要一个拥有公网 ip 的服务器,首先在 github repo 中配置 webhook 。
webhook 地址为 http://<your-remote-host>:9080/tekton-el,勾选 Pull requests,Pushs events,token 为 ./manifests/triggers/webhook-token.yaml中的值 。
webhook 配置参考文档: docs.github.com/en/free-pro…
webhook playload 数据结构: docs.github.com/en/free-pro…
利用 ssh 将 webhook 转发到本地将 kind 中 eventLister 端口暴露出来:
kc port-forward svc/el-demo-listener 9080:8080复制代码
服务端监听 0.0.0.0 需要 sshd 配置中包含 GatewayPorts clientspecified,详见: serverfault.com/questions/8…
将服务器 9080 端口转发到本地 9080 端口:
ssh -N -R 0.0.0.0:9080:localhost:9080 <user>@<your-remote-host> -p 22复制代码
check port connected:
nc -v <your-remote-host> 9080复制代码
debug webhook部署成功后参考 测试 CICD 中步骤进行测试 。
可通过查看 eventLister 日志进行 debug:
kc logs -l eventlistener=demo-listener复制代码
./manifests/triggers/print.yaml print task 将 webhook head 及 body 打印出来 。
[Option 2: pull 模式] 配置 CronJobTekton 官方并没有提供类似 Jenkins 那种轮询 pull 检测 git repo,有新的 commit 则触发构建 。理由是 pull 模式会对 git 造成较大压力 。
但借助 k8s CronJob,自己实现 pull 模式 。./src/pull 我实现了一个简单的 pull 程序,定期检查对应仓库和分支有没有新的 commit,自动创建 PipelineRun 。
./src/pull/deploy/configmap.yaml 为 PipelineRun 模板,修改 params 部分目标 IMAGE,NAME 等参数 。
./src/pull/deploy/cronJob.yaml 为 Pull 脚本定时任务,修改 args 部分需监听的 repo,branch 等参数 。
应用:
kc apply -f ./src/pull/deploy复制代码
部署成功后参考 测试 CICD 中步骤进行测试 。
测试 CICD提交 commit 进行测试:
git commit -a -m "build commit" --allow-empty && git push复制代码
后记问题排查build-image 卡主build-image 使用 kaniko,不依赖 docker daemon,所以 Dockerfile 中如果使用 golang:1.14 等体积很大的 dockerhub 镜像,因网络问题下载很慢甚至失败,会导致 build 超时,最好将镜像同步至内网 。
git clone auth err检查 secret git-auth 是否配置正确 。
push image auth err检查 secret docker-auth 是否配置正确 。pipeline 中推送镜像地址是否改为你个人镜像仓库地址 。
run on openshift部分任务配置了 securityContext.runAsUser: 0,在 openshift 运行需要配置 scc=anyuid 。参考: docs.openshift.com/container-p…
TODO
- pipeline 中途失败无法发送机器人通知
作者:win5do
链接:https://juejin.im/post/6893701305173442567
来源:掘金
著作权归作者所有 。商业转载请联系作者获得授权,非商业转载请注明出处 。
推荐阅读
- 眼袋怎么去?教你去眼袋八大招
- 14年新茶将上市,倒春寒导致襄阳本地新茶晚点,新茶
- Win10将强制删除Flash?教你屏蔽Flash删除补丁
- 手把手教你做app自动化测试
- 教你如何改善孩子的固执性格
- 如何防晒 教你冬季防晒的有效方法
- 春季皮肤过敏6步教你调理敏感肌肤
- 春季高发过敏性呼吸疾病 专家教你如何饮食调养
- 高分学长教你如何学好高一生物
- 睡眠不好怎么办 教你八大解决睡眠的食疗方法