ArgoCD WebHook 配置
Argo CD 每三分钟会轮询一次 Git 存储库,以检测清单的更改。为了消除这种轮询延迟,可以将 API 服务器配置为接收 webhook 事件的方式,这样就能实时获取到 Git 存储库中的变化了。 Argo CD 支持来自 GitHub、GitLab、Bitbucket、Bitbucket Server 和 Gogs 的 Git webhook 通知。下面以 GitLab 为例配置 webhook。
在 GitLab 中创建 WebHook
进入到 GitLab 项目仓库(这里为Helm Chart 仓库)中配置 WebHook:
在 GitLab 中配置的 URL 应该使用您的 Argo CD 实例的 /api/webhook
接口(例如 https://argocd.xxx.com/api/webhook)。下面的 Secret Token 是可选的,建议添加上,可输入任意值。在下一步配置 webhook 时将使用此值。
注意:如果 Argo CD 使用的是自签名的 https 证书,则需要在下方去掉
启用SSL验证
。
使用 WebHook Secret 配置 Argo CD
在 kubernetes secret argocd-secret
中添加上面配置的 Secret Token:
$ kubectl edit secret argocd-secret -n argocd |
TIP:为了方便输入secret,kubernetes支持在stringData字段中输入secret,这样就省去了base64编码后复制到data字段的麻烦。只需将步骤 1 中创建的共享 webhook 秘密复制到 stringData 字段下相应的 GitLab 键:
apiVersion: v1 |
保存后,更改会自动生效。
我们可以在 GitLab 这边测试配置的 WebHook,查看 Argo CD 的 API 服务 Pod 日志,正常就可以收到 Push 事件了:
$ kubectl logs -f argocd-server-86d75f9788-dxhwh -nargocd |
参考链接:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DevOps Technology Stack!
评论