DevOps 工具链
一个 ChatOps 工具 Lighthouse, 主要内容来自官方文档 。Kubernetes 社区使用 Prow 驱动其在 GitHub 上的协作, 但是不适用于其他仓库。Lighthouse 普适于更多类型的 Git 仓库。 1. 什么是 Lighthouse Lighthouse 是一个基于 webhooks 的轻量级 ChatOps 工具 , 通过 Git 仓库的 webhooks 可以触发 Jenkins X 流水线 、Tekton 流水线 、Jenkins 任务, 支持 GitHub、GitHub Enterprise、BitBucket Server 和 GitLab。 2. Lighthouse 与 Prow 的关系 Lighthouse 最初是由 Prow 衍生而来, 并拷贝了一些基础代码。目前, Lighthouse 支持标准的 Prow 插件, 能够处理分支推送的 webhooks 用来触发指定的流水线执行。Lighthouse 和 Prow 一样, 使用 config.yaml 和 plugins.yaml 进行配置。 不同之处在于, Lighthouse 使用的是 jenkins-x/go-scm , 可以支持更多类型的 Git 仓库, 而不限于 GitHub。Lighthouse 没有使用 ProwJob CRD , 而是使用自己的 LighthouseJob CRD。 3. 安装方式果有你想要使用, 但是没有移植到 Lighthouse 的插件, 可以按照下面的步骤移植: Lighthouse 重用了 Prow 的插件代码和配置文件。因此, 主要的工作是将 k8s.io/test-infra/prow 的内容导入到 github.com/jenkins-x/lighthouse/pkg/prow, 然后修改 GitHub Client 的结构, 例如, 将 github.PullRequest 修改为 scm.PullRequest 。
GitHub Client 中的大部分结构都可以和 jenkins-x/go-scm 中的一一对应。但是, go-scm 默认返回指向资源指针的切片。API 部分也会有一些命名上的差异。比如, 在实现 lgtm 时, Prow 和 Lighthouse 的 githubClient API 就有差异。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |