argocd webhook 触发

Argo CD每三分钟轮询一次Git存储库,以检测清单的变化。为了消除轮询带来的延迟,可以将API服务器配置为接收Webhook事件。Argo CD支持来自GitHub,GitLab,Bitbucket,Bitbucket Server和Gogs的Git Webhook通知,更多点击官网。

这里使用Gitlab作为仓库地址。

在argocd中配置webhook token

使用kubectl edit secret argocd-secret -n argocd命令进行配置:

kubectl edit secret argocd-secret
# 
apiVersion: v1
kind: Secret
metadata:
  name: argocd-secret
  namespace: argocd
type: Opaque
data:
...
# 添加如下内容
stringData:
  # gitlab webhook secret
  webhook.gitlab.secret: coolops

配置完点击保存会自动生成一个secret,如下:

# kubectl describe secret argocd-secret -n argocd
Name:         argocd-secret
Namespace:    argocd
Labels:       app.kubernetes.io/name=argocd-secret
              app.kubernetes.io/part-of=argocd
Annotations:  
Type:         Opaque

Data
====
admin.passwordMtime:    20 bytes
server.secretkey:       44 bytes
tls.crt:                1237 bytes
tls.key:                1679 bytes
webhook.gitlab.secret:  7 bytes
admin.password:         60 bytes

在gitlab的代码仓库配置webhook,

如下:

img

如果argo和git都在一个集群,由于集群内部证书是无效证书,所有要把Enabled SSL去掉,如下:

img

然后点击保存,点击测试,看是否链接成功。如果有如下提示则表示webhook配置没问题了。

img

现在可以进行修改gitlab仓库,观察是否一提交,argocd那边就可以响应了。