这个问题可以通过在ArgoCD中配置webhook来解决。具体步骤如下:
安装ArgoCD
安装argocd-notifications插件
argocd repo add https://github.com/argoproj/argo-cd.git
argocd plugin list
argocd plugin add argocd-notifications
配置ArgoCD Notification以自定义通知协议和目标,例如Slack或邮件。
运行以下命令来为您的ArgoCD服务器配置Webhook:
kubectl patch deployment argocd-server -n argocd -p '{"spec": {"template": {"spec": {"containers": [{"name": "argocd-server", "ports": [{"containerPort": 8080}, {"containerPort": 8084}], "volumeMounts": [{"name": "argocd-webhook-certs", "mountPath": "/app/config/auth/tls.crt", "subPath": "tls.crt"}, {"name": "argocd-webhook-certs", "mountPath": "/app/config/auth/tls.key", "subPath": "tls.key"}]}], "volumes": [{"name": "argocd-webhook-certs", "secret": {"secretName": "argocd-webhook-certs"}}]}}}}'
您可以使用下面的YAML模板来定义endpoints。
apiVersion: v1
kind: Service
metadata:
name: argocd-webhook
namespace: argocd
spec:
selector:
app.kubernetes.io/name: argocd-server
app.kubernetes.io/part-of: argocd
ports:
- name: http
port: 443
targetPort: 8084
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: argocd-webhook
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: