转载请联系公众号。本文介绍一款ChatOps工具Lighthouse,主要内容来源于官方文档。Kubernetes社区使用Prow来推动其在GitHub上的协作,但不用于其他存储库。Lighthouse普遍适用于更多类型的Git仓库。一、什么是LighthouseLighthouse是一个基于webhooks的轻量级ChatOps工具,可以在Git仓库中通过webhooks触发JenkinsXpipelines、Tektonpipelines、Jenkinstasks,支持GitHub、GitHubEnterprise、BitBucketServer、GitLab。2.Lighthouse和Prow的关系Lighthouse最初是从Prow衍生出来的,复制了一些基础代码。目前,Lighthouse支持标准的Prow插件,可以处理分支推送webhooks来触发指定的管道执行。Lighthouse和Prow一样,使用config.yaml和plugins.yaml进行配置。不同的是Lighthouse使用的是jenkins-x/go-scm,可以支持更多类型的Git仓库,不局限于GitHub。Lighthouse没有使用ProwJobCRD,而是使用自己的LighthouseJobCRD。3.安装方式Lighthouse以HelmChart包的形式发布。下面是安装命令:添加仓库helmrepoaddjenkins-xhttp://chartmuseum.jenkins-x.iohelmrepoupdate安装或升级#Helmv2helmupgrade--installmy-lighthouse--namespacelighthousejenkins-x/lighthouse#Helmv3helmupgrade--installmy-lighthouse--namespacelighthousejenkins-x/lighthouseuninstall#Helmv2helmdelete--purgemy-lighthouse#Helmv3helmuninstallmy-lighthouse--namespacelighthouseLighthouse还为Jenkins和Tekton提供了专门的安装和配置文档。4.如何迁移Prow插件如果有你想使用但还没有移植到Lighthouse的插件,可以按照以下步骤进行迁移:Lighthouse复用了Prow插件代码和配置文件。因此,主要工作是将k8s.io/test-infra/prow的内容导入github.com/jenkins-x/lighthouse/pkg/prow,然后修改GitHubClient的结构,比如修改github。PullRequest到scm.PullRequest。GitHubClient中的大部分结构都可以对应jenkins-x/go-scm中的结构。然而,go-scm默认返回一片资源指针。API部分也会有一些命名差异。比如在实现lgtm的时候,Prow和Lighthouse的githubClientAPI是有区别的。原文:https://github.com/jenkins-x/lighthouse
