配置 S2I 和 B2I Webhooks
KubeSphere 提供 Source-to-Image (S2I) 和 Binary-to-Image (B2I) 功能,以自动化构建、推送镜像和部署应用程序。您可以配置 S2I 和 B2I Webhook,当代码仓库发生特定事件时,自动触发镜像构建器。
本教程演示如何配置 S2I 和 B2I webhooks。
准备工作
已创建一个 S2I 镜像构建器和 B2I 镜像构建器。有关更多信息,请参阅使用源代码创建镜像构建器和使用制品创建镜像构建器。
配置 S2I Webhook
步骤 1: 暴露 S2I trigger 服务
-
以具有应用负载管理权限的用户登录 KubeSphere 企业版 Web 控制台并进入您的集群。
-
前往应用负载下的服务,搜索 s2ioperator-trigger-service。
-
点击
,选择编辑外部访问。
-
在弹出的对话框中,从访问模式的下拉菜单中选择 NodePort,然后点击确定。
提示 根据需要,您也可以选择 LoadBalancer。
-
在列表中可以查看该服务的 NodePort。S2I webhook URL 中将包含此 NodePort。
说明 访问服务前,您可能需要配置端口转发规则并在安全组中放行该端口。
步骤 2:配置 S2I webhook
-
进入您的企业空间。
-
在镜像构建器中,点击 S2I 镜像构建器,进入详情页面。
-
复制远程触发器中的链接,S2I webhook URL 中将包含这个链接。示例:
http://s2ioperator-trigger-service.extension-s2ibuilder.svc/s2itrigger/v1alpha1/general/namespaces/project1/s2ibuilders/felixnoo-s2i-sample-latest-zhd/
-
登录您的 GitHub 帐户,进入用于 S2I 镜像构建器的源代码仓库。点击 Settings > Webhooks,然后点击 Add webhook。
-
在 Payload URL,参照如下链接,修改 IP 地址、Service NodePort 和远程触发器链接,然后输入实际链接。示例:
http://<IP>:<Service NodePort>/s2ioperator-trigger-service.extension-s2ibuilder.svc/s2itrigger/v1alpha1/general/namespaces/project1/s2ibuilders/felixnoo-s2i-sample-latest-zhd/
注意 您需要在远程触发器的链接中添加
<IP>:<Service NodePort>/
。其中<IP>
是您自己的 IP 地址,<Service NodePort>
是您在步骤 1 中获得的 NodePort。 -
按需选择触发事件,比如选择 Just the push event,然后点击 Add webhook。
-
添加 webhook 后,点击 webhook 查看 Recent Deliveries 中的交付详细信息。如果 Payload URL 有效,您会看到绿色的勾号。
-
完成上述所有操作后,如果源代码仓库中存在 push 事件,则会自动触发 S2I 镜像构建器。
配置 B2I Webhook
按照相同的步骤,配置 B2I webhook。
-
暴露 s2ioperator-trigger-service 服务。
-
在 B2I 镜像构建器的详细信息页面中查看远程触发器。
-
在源代码仓库中添加 webhook。B2I 的 Payload URL 格式与 S2I 的 Payload URL 格式相同。
-
如果源代码仓库发生指定事件,B2I 镜像构建器将自动触发。