manifests/mirror-git-cron-job/cronjob.yaml
2025-04-12 13:11:34 +08:00

104 lines
3.5 KiB
YAML

apiVersion: batch/v1
kind: CronJob
metadata:
name: mirror-git-job
namespace: mirror-git
spec:
schedule: "0 2 * * *" # 每天凌晨2点执行
concurrencyPolicy: Forbid # 不允许并发执行
successfulJobsHistoryLimit: 1 # 保留3个成功的历史记录
failedJobsHistoryLimit: 3 # 保留3个失败的历史记录
jobTemplate:
spec:
template:
spec:
#nodeSelector:
# region: "!cn" # 这里使用节点选择标签确保不在中国区节点执行
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: region
operator: NotIn
values:
- cn
- key: kubernetes.io/hostname
operator: NotIn
values:
- kuxueyun-us1
- bwh-us1
containers:
- name: mirror-git
image: alpine:latest
#image: debian:bookworm
command:
- "/bin/sh"
- "-c"
- |
apk add --no-cache git bash curl jq
#apt-get update && apt-get install -y git bash curl jq
git clone https://github.com/songtianlun/mirrorGit.git /tmp/mirrorGit
chmod +x /tmp/mirrorGit/main.sh
mkdir -p /var/log/mirrorGit
env
cd /tmp/mirrorGit && bash main.sh
#cd /tmp/mirrorGit && ./main.sh
#cd /tmp/mirrorGit && ./mirror.sh >> /var/log/mirrorGit/mirror.log 2>&1
env:
- name: GITHUB_USER
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: github_user
- name: GITHUB_TOKEN
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: github_token
- name: GITEA_URL
value: "https://git.frytea.com"
- name: GITEA_USER
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: gitea_user
- name: GITEA_TOKEN
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: gitea_token
- name: SKIP_REPOS
value: "archive,AutoApiSecret,backup-openbilibili-go-common,carrot,ChatGLM-6B,dokploy,hub-mirror,songtianlun,songtianlun.github.io"
- name: ENABLE_MAIL
value: "true"
- name: SMTP_SERVER
value: "smtpdm.aliyun.com"
- name: SMTP_PORT
value: "465"
- name: SMTP_USER
value: "noreply@mail.frytea.com"
- name: SMTP_PASS
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: smtp_pass
- name: MAIL_TO
value: "tianlun.song@foxmail.com"
- name: MAIL_FROM
value: "git-mirror"
- name: ENABLE_FEISHU
value: "true"
- name: FEISHU_WEBHOOK_URL
valueFrom:
secretKeyRef:
name: mirror-git-secrets
key: feishu_webhook
# volumeMounts:
# - name: log-volume
# mountPath: /var/log/mirrorGit
# volumes:
# - name: log-volume
# emptyDir: {}
restartPolicy: OnFailure