69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: engram-backup
|
|
labels:
|
|
app: engram-backup
|
|
spec:
|
|
schedule: "0 0 * * *"
|
|
timeZone: "Asia/Shanghai"
|
|
concurrencyPolicy: Forbid
|
|
startingDeadlineSeconds: 300
|
|
successfulJobsHistoryLimit: 1
|
|
failedJobsHistoryLimit: 3
|
|
suspend: false
|
|
jobTemplate:
|
|
spec:
|
|
backoffLimit: 2
|
|
activeDeadlineSeconds: 1800
|
|
ttlSecondsAfterFinished: 86400
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: engram-backup
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
initContainers:
|
|
- name: backup
|
|
image: engram
|
|
env:
|
|
- name: ENGRAM_DATA_DIR
|
|
value: /engram-data
|
|
volumeMounts:
|
|
- name: tmp
|
|
mountPath: /tmp
|
|
- name: engram-data
|
|
mountPath: /engram-data
|
|
command:
|
|
- /bin/sh
|
|
args:
|
|
- -c
|
|
- 'export DATE=$(date +%Y/%m/%d) && mkdir -p /tmp/engram/$DATE && engram export "/tmp/engram/$DATE/engram-data.json" && gzip /tmp/engram/$DATE/engram-data.json'
|
|
securityContext:
|
|
runAsUser: 0
|
|
containers:
|
|
- name: upload
|
|
image: aws
|
|
imagePullPolicy: IfNotPresent
|
|
envFrom:
|
|
- secretRef:
|
|
name: backup-env
|
|
- configMapRef:
|
|
name: backup-env
|
|
args:
|
|
- s3
|
|
- sync
|
|
- "./engram"
|
|
- "s3://senset-backups/engram-backup"
|
|
volumeMounts:
|
|
- name: tmp
|
|
mountPath: /aws
|
|
readOnly: true
|
|
volumes:
|
|
- name: tmp
|
|
emptyDir: {}
|
|
- name: engram-data
|
|
hostPath:
|
|
path: /data/engram
|
|
type: Directory
|