apiVersion: v1 kind: PersistentVolumeClaim metadata: name: rss-data-local-agz2 namespace: blog spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Mi # 根据需要调整存储大小 storageClassName: local-agz2 --- apiVersion: batch/v1 kind: CronJob metadata: name: rss-to-listmonk namespace: blog spec: schedule: "0 8 * * *" # 每天早上 8:00 执行 concurrencyPolicy: Forbid # 不允许并发执行 successfulJobsHistoryLimit: 3 # 保留 3 个成功的任务历史 failedJobsHistoryLimit: 1 # 保留 1 个失败的任务历史 jobTemplate: spec: template: spec: nodeSelector: region: cn dc: aliyun-gz containers: - name: rss-to-listmonk image: alpine:latest command: - /bin/sh - -c - | sed -i 's/dl-cdn.alpinelinux.org/mirrors.nju.edu.cn/g' /etc/apk/repositories apk add --no-cache git make python3 py3-virtualenv git config --global advice.detachedHead false git clone https://${GITEA_TOKEN}@git.frytea.com/songtianlun/listmonk_RSS_to_mail.git /tmp/listmonk_RSS_to_mail cd /tmp/listmonk_RSS_to_mail && make env: - name: RSS_URL value: "https://frytea.com/feed/" - name: LISTMONK_API_URL value: "https://listmonk.frytea.com/api/campaigns" - name: LISTMONK_TOKEN valueFrom: secretKeyRef: name: listmonk-credentials key: token - name: LISTMONK_SEND_LIST_ID value: "3" - name: GITEA_TOKEN valueFrom: secretKeyRef: name: gitea-credentials key: access-token volumeMounts: - name: rss-data mountPath: /data volumes: - name: rss-data persistentVolumeClaim: claimName: rss-data-local-agz2 restartPolicy: OnFailure --- apiVersion: v1 kind: Secret metadata: name: gitea-credentials namespace: blog type: Opaque data: access-token: MTA0NmYzNTgwOTIzZTZmM2E4ZjkxNjA2ZWEwMTA4MzFlNDdjN2UxMA== --- apiVersion: v1 kind: Secret metadata: name: listmonk-credentials namespace: blog type: Opaque data: token: Ym90Ok5qM3AyeXpGRnVjcFNSVDRNWk43TDV4MU9Ecm1RY0lp