Webhooks

如何对 webhooks 问题进行诊断以及修复

当你做如下操作时,Webhooks 可以触发 lighthouse

  • 合并提交记录到你的默认分支
  • 创建 Pull Request
  • 推送代码到 Pull Request 对应的分支
  • 在 Pull Request 上添加评论来触发 ChatOps

如果你的集群中的 webhooks 无效时,ChatOps 或者流水线将不会被触发。

前置条件

Ingresshook 关于 lighthouse 配置正确是 webhooks 有效的前提。

Ingress 默认会采用文件 jx-requirements.ymlingress.domain 指定的域名。

问题诊断

你可以根据健康性指南来检查你系统以及 webhooks 是否健康。

首先,请确保 ingress 正常

kubectl get ing

你会看到 hook 的合法域名地址。然后,使用 curl 命令做一下测试:

curl -v http://hook-jx.1.2.3.4.nip.io/hook

检查你的机器是否可以访问那个地址。另外,检查是否有一个运行中的 Pod lighthouse-webhook-*

kubectl get pod -l app=lighthouse-webhooks

你也可以通过 jx ui 查看他们的状态、事件、日志等。

如果看起来都正常的话,然后打开你集群的 git 仓库

kubectl get environments

然后,点击链接 GIT URL

打开你的 git 提供商的 Webbooks 页面, 查看发送到 hook 地址的请求是否成功。对于 GitHub,你可以在 Settings -> Webhooks 这里找到。

如果你的 git 无法访问 ingress 地址的话,你可以设置一个转发通道。请查看借助 ngrok 使用 webhooks

AWS 相关的问题

如果你在使用 AWS,你可以查看 AWS 关于使用 ELB 的文档。


Last modified June 18, 2021: docs: Fix usage of "on-premises" (91a1e4b3eb)