87 lines
2.4 KiB
YAML
87 lines
2.4 KiB
YAML
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
|