manifests/backups/daemonset+cronjob/daemonset.yaml
songtianlun 1203a57641 feat: add Feishu webhook notification for backups
- Include a webhook URL to send notifications after backups.
- Capture and log the duration and size of the backups.
- Create a new Kubernetes secret for storing the Feishu webhook URL.
- Enhance the backup script to notify users of backup success with details.

This change improves monitoring and user notification of backup events,
allowing for better awareness and response times in case of failure or
success of the backup processes.
2025-04-22 15:11:04 +08:00

115 lines
3.0 KiB
YAML

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-backup-daemon
namespace: backup-system
spec:
selector:
matchLabels:
app: node-backup
template:
metadata:
labels:
app: node-backup
spec:
#nodeSelector:
# kubernetes.io/hostname: "vkvm-us1"
#affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# #- key: region
# # operator: NotIn
# # values:
# # - cn
# - key: kubernetes.io/hostname
# operator: In
# values:
# - zgocloud-us1
containers:
- name: backup-container
image: alpine:latest
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- |
# 安装依赖工具
apk add --no-cache bash s3cmd tar rsync curl
# 启动一个循环,每分钟检查一次触发文件
while true; do
bash /scripts/s3cmd-trigger.sh
date
sleep 60
done
env:
- name: NODE_NAME # 使用 Downward API 获取 Pod 运行的节点名
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: S3_ENDPOINT
valueFrom:
secretKeyRef:
name: s3-credentials
key: endpoint
- name: S3_ACCESS_KEY
valueFrom:
secretKeyRef:
name: s3-credentials
key: access-key
- name: S3_SECRET_KEY
valueFrom:
secretKeyRef:
name: s3-credentials
key: secret-key
- name: S3_BUCKET
valueFrom:
secretKeyRef:
name: s3-credentials
key: bucket
- name: S3_SUBPATH
valueFrom:
configMapKeyRef:
name: backup-config
key: subpath
optional: true
- name: BACKUPS_TO_KEEP
valueFrom:
configMapKeyRef:
name: backup-config
key: backups-to-keep
optional: true
- name: USE_HTTPS
valueFrom:
configMapKeyRef:
name: backup-config
key: use-https
optional: true
- name: SIGNATURE_V2
valueFrom:
configMapKeyRef:
name: backup-config
key: signature-v2
optional: true
volumeMounts:
- name: host-data
mountPath: /data
- name: scripts
mountPath: /scripts
- name: feishu-webhook-volume
mountPath: /etc/feishu-webhook # 挂载飞书 Webhook Secret
readOnly: true
volumes:
- name: host-data
hostPath:
path: /data
- name: scripts
configMap:
name: backup-script
defaultMode: 0755
- name: feishu-webhook-volume
secret:
secretName: feishu-webhook