企业微信机器人webhook

deployment

apiVersion: apps/v1kind: Deploymentmetadata:  labels:    name: kube-eventer  name: kube-eventer  namespace: kube-systemspec:  replicas: 1  selector:    matchLabels:      app: kube-eventer  template:    metadata:      labels:        app: kube-eventer      annotations:          scheduler.alpha.kubernetes.io/critical-pod: ''    spec:      dnsPolicy: ClusterFirstWithHostNet      serviceAccount: nginx-ingress-controller      containers:        - image: registry.aliyuncs.com/acs/kube-eventer-amd64:v1.2.0-484d9cd-aliyun          name: kube-eventer          command:            - "/kube-eventer"            - "--source=kubernetes:https://kubernetes.default"            ## .e.g,dingtalk sink demo            - --sink=webhook:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*******************&level=Normal&kinds=Pod&header=Content-Type=application/json&custom_body_configmap=custom-body&custom_body_configmap_namespace=kube-system&method=POST          env:          # If TZ is assigned, set the TZ value as the time zone          - name: TZ            value: Asia/Shanghai          volumeMounts:            - name: localtime              mountPath: /etc/localtime              readOnly: true            - name: zoneinfo              mountPath: /usr/share/zoneinfo              readOnly: true          resources:            requests:              cpu: 100m              memory: 100Mi            limits:              cpu: 500m              memory: 250Mi      volumes:        - name: localtime          hostPath:            path: /etc/localtime        - name: zoneinfo          hostPath:            path: /usr/share/zoneinfo---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: kube-eventerrules:  - apiGroups:      - ""    resources:      - events      - configmaps    verbs:      - get      - list      - watch  - apiGroups: [""]    resources: ["pods"]    verbs: ["get", "watch", "list","create"]---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  annotations:  name: kube-eventerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: kube-eventersubjects:  - kind: ServiceAccount    name: kube-eventer    namespace: kube-system---apiVersion: v1kind: ServiceAccountmetadata:  name: kube-eventer  namespace: kube-system

configmap

apiVersion: v1data:  content: >-    {"msgtype": "text","text": {"content": "[PROD集群事件警报]\n命名空间:{{ .Namespace }}\n事件级别:{{ .Type }}\n事件对象:{{ .InvolvedObject.Kind }}\n对象名称:{{ .Name }}\n产生起因:{{ .Reason }}\n事件工夫:{{ .EventTime }}\n事件信息:{{ .Message }}"}}kind: ConfigMapmetadata:   name: custom-body   namespace: kube-system


参考文献
https://github.com/AliyunContainerService/kube-eventer/blob/master/docs/en/webhook-sink.md