ArgoCD基於web hook實現的企業微信通知

apiVersion: v1 kind: ServiceAccount metadata: name: argocd-notifications-controller --- kind: Role metadata: name: argocd-notifications-controller rules: - apiGroups: - argoproj.io resources: - applications - appprojects verbs: - get - list - watch - update - patch - apiGroups: - "" resourceNames: - argocd-notifications-cm resources: - configmaps verbs: - get - list - watch - apiGroups: - "" resourceNames: - argocd-notifications-secret resources: - secrets verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: argocd-notifications-controller roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: argocd-notifications-controller subjects: - kind: ServiceAccount name: argocd-notifications-controller --- apiVersion: v1 kind: ConfigMap metadata: creationTimestamp: null name: argocd-notifications-cm data: service.webhook.dingtalk: | url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=自己機器人的key值 headers: - name: Content-Type value: application/json context: | argocdUrl: http://argocd.k8s.local template.app-sync-change: | webhook: dingtalk: method: POST body: | { "msgtype": "markdown", "markdown": { "content": "### CD同步狀態測試\n> - app名稱: {{.app.metadata.name}}\n> - app同步狀態: {{ .app.status.operationState.phase}}\n> - 時間:{{.app.status.operationState.startedAt}} \n" } } trigger.on-deployed: | - description: Application is synced and healthy. Triggered once per commit. oncePer: app.status.sync.revision send: [app-sync-change] # template names when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy' trigger.on-health-degraded: | ...skipping... when: app.status.sync.status == 'Unknown' trigger.on-sync-succeeded: | - description: Application syncing has succeeded send: [app-sync-change] # template names when: app.status.operationState.phase in ['Succeeded'] subscriptions: | - recipients: [dingtalk] triggers: [on-sync-running, on-deployed, on-sync-failed, on-sync-succeeded] --- apiVersion: v1 kind: Secret metadata: name: argocd-notifications-secret type: Opaque --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: argocd-notifications-controller-metrics name: argocd-notifications-controller-metrics spec: ports: - name: metrics port: 9001 protocol: TCP targetPort: 9001 selector: app.kubernetes.io/name: argocd-notifications-controller --- apiVersion: apps/v1 kind: Deployment metadata: name: argocd-notifications-controller spec: selector: matchLabels: app.kubernetes.io/name: argocd-notifications-controller strategy: type: Recreate template: metadata: labels: app.kubernetes.io/name: argocd-notifications-controller spec: containers: - command: - /app/argocd-notifications-backend - controller image: argoprojlabs/argocd-notifications:v1.1.0 imagePullPolicy: Always name: argocd-notifications-controller volumeMounts: - mountPath: /app/config/tls name: tls-certs workingDir: /app securityContext: runAsNonRoot: true serviceAccountName: argocd-notifications-controller volumes: - configMap: name: argocd-tls-certs-cm name: tls-certs
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章