获取 PAC Webhook URL
在使用此页面之前,管理员必须按照 Configure Access 中的说明公开 PAC controller。
使用此页面获取 PAC 的 webhook URL。此 URL 可让 Git 提供商将仓库事件(例如 commits 和 merge requests)通知给 PAC,从而使 PAC 能够触发匹配的 PipelineRuns。
请选择与 PAC 暴露方式相匹配的部分:Gateway API、Ingress 或 NodePort。示例使用默认的 PAC namespace tekton-pipelines;如果你的 TektonConfig 使用了不同的 targetNamespace,请在命令中替换它。
使用 Gateway API
如果 PAC 是通过 Gateway API 暴露的,请使用此部分。
从 HTTPRoute 中读取 host 并打印 webhook URL:
预期结果:命令会打印基于 host 的 PAC webhook URL。
在配置 Git 提供商 webhook 或设置仓库集成时使用此 URL。若要自动注册 webhook,还需要按下文所述将此 URL 记录到 pipelines-as-code-info 中。
使用 Ingress
如果 PAC 是通过 Ingress 暴露的,请使用此部分。
从 Ingress 中读取 host 并打印 webhook URL:
如果 Ingress 已配置 TLS,则改用 https://${HOST}:
使用 NodePort
如果 PAC 是通过专用的 NodePort Service 暴露的,请使用此部分。从可访问的 node IP 和生成的 NodePort 打印 URL:
记录 Webhook URL
自动 webhook 注册会从 pipelines-as-code-info.data.controller-url 读取公开的 PAC webhook URL。选择并验证 WEBHOOK_URL 后,请更新 PAC component options,以便 Tekton Operator 管理该 ConfigMap。
在 TektonConfig 中,更新 platforms.kubernetes 下的 pipelinesAsCode options。operator 会在 platforms.openshift 下拒绝相同的 block,并返回 validation error:
不要把这个 block 放到派生的 OpenShiftPipelinesAsCode CR 上:operator 会在下一次 reconcile 时将 options 从 TektonConfig 复制回去,因此该 URL 会丢失。唯一的例外是 TektonConfig 根本不管理 PAC 的集群——即 spec.profile 为 basic 或 lite——在这种情况下,同样的 options block 应放在该 CR 的 spec.options 下。参见 How the Operator Manages PAC。
将 https://pac.example.com 替换为打印出的 WEBHOOK_URL 值。当该值变更时,webhook registration controller 会协调所有 PAC Repository 资源,使其 provider-side webhooks 使用新的 URL。
验证
Webhook URL 必须能够从你的 Git 提供商访问。对于公开的 Git 提供商,URL 必须可被公网访问。对于自建的 Git 提供商,只要 provider host 能够访问集群即可。
如果 DNS 尚未就绪,请在 Git 提供商网络中,将 host 解析为 Gateway 或 Ingress 的 external address 后再验证 route。除非 PAC 暴露配置不要求 host,否则不要注册原始 IP URL。
设置 WEBHOOK_URL 后,从可访问 PAC endpoint 的主机执行一次快速检查:
在当前 PAC 版本中,GET / 会返回带有简短 JSON status body 的 200 OK。如果出现 connection refused 或 timeout,则表示存在网络问题。