Gitlab webhook 可以用来触发 Tekton Pipelines 吗?
Posted
技术标签:
【中文标题】Gitlab webhook 可以用来触发 Tekton Pipelines 吗?【英文标题】:Can Gitlab webhooks be used to trigger Tekton Pipelines? 【发布时间】:2021-02-02 21:40:53 【问题描述】:我有一个由 GitHub webhook 成功触发的工作 Tekton Pipeline,但它不适用于 Gitlab webhook。我可以看到 Gitlab webhook 被触发并且它到达了 OpenShift 中的 EventListener 容器,但是 Pipeline 本身没有运行。那么,它是否适用于 Gitlab webhook?如果是这样,我是否需要设置或更改一些东西才能真正触发管道?
谢谢! 塞萨尔
【问题讨论】:
查看EventListener
pod 日志。在某些情况下,json
有效负载发送格式错误或无法解析。我的TriggerTemplate
中的PipelineRun
定义也不正确。能否提供代码示例和EventListener
pod 日志?
我也写过a fully working example of GitLab Tekton Integration using Tekton Triggers, GitLab Webhook and the gitlab-set-status Task in this so Q&A。如果您有兴趣,这里是完全可以理解的示例项目:github.com/jonashackt/aws-eks-tekton-gitlab
【参考方案1】:
Tekton Trigger 可以由任何 http 请求发起,所以如果你使用 GitHub-webhook,GitLab webhook 或 curl
命令应该无关紧要.
但是,这些 webhook 请求以稍微不同的 json 格式提供数据,因此要将 参数 传递给管道,您需要正确配置与您收到的请求匹配的 TriggerBinding。 GitLab 和 GitHub 可能需要不同的 TriggerBinding
。
但管道本身不运行
如果没有更多信息,很难回答这部分。有错误信息吗?
【讨论】:
谢谢乔纳斯!我在任何容器日志(tekton-triggers-webhook、tekton-triggers-controller、tekton-pipelines-controller、tekton-pipelines-webhook)中都看不到错误。还有其他地方我应该寻找吗? 是的,您应该查看EventListener
pod 的日志。通过kubectl get pods
获取名称(它源自EventListener
的metadata: name:
字段的内容,前缀为el-
)。假设这给出了el-gitlab-listener-db6bb5858-dc8ks 1/1 Running 0 17m
,那么您可以通过k logs po el-gitlab-listener-db6bb5858-dc8ks
获取日志。以上是关于Gitlab webhook 可以用来触发 Tekton Pipelines 吗?的主要内容,如果未能解决你的问题,请参考以下文章
利用GitLab webhook来实现触发Jenkins自动操作
在gitlab通过webhook触发Jenkins的job中用script获取当前分支
gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结
jenkins+gitlab webhooks 实现自动触发打包