Skip to content

Instantly share code, notes, and snippets.

@icheko
Created February 21, 2022 07:37
Show Gist options
  • Save icheko/2776d452a0c623a005b9277ca206a774 to your computer and use it in GitHub Desktop.
Save icheko/2776d452a0c623a005b9277ca206a774 to your computer and use it in GitHub Desktop.
kind: CronJob
apiVersion: batch/v1
metadata:
name: cjoc-backup
namespace: cloudbees-ci
spec:
schedule: 0 2 * * *
startingDeadlineSeconds: 120
concurrencyPolicy: Forbid
suspend: false
jobTemplate:
metadata:
creationTimestamp: null
spec:
template:
metadata:
creationTimestamp: null
spec:
restartPolicy: OnFailure
serviceAccountName: cron-jenkins-backup
serviceAccount: cron-jenkins-backup
schedulerName: default-scheduler
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- cloudbees-core
topologyKey: kubernetes.io/hostname
containers:
- name: jenkins-backup
image: 'maorfr/kube-tasks:0.2.0'
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
command: ["/bin/sh","-c"]
args:
- kube-tasks simple-backup -n $MY_POD_NAMESPACE --selector app.kubernetes.io/name=cloudbees-core --container jenkins --path /var/jenkins_home/ --dst k8s://$MY_POD_NAMESPACE/$MY_POD_NAME/jenkins-backup/backup;
echo;
echo Backups;
echo ----------------------------------;
ls -Altc /backup;
echo;
echo Clean up old files - Keep the last 30;
echo ----------------------------------;
ls -1tc /backup | grep -v "lost+found" | tail -n +30 | xargs -I '{}' -n 1 echo "/backup/{}" | xargs -n 1 rm -rfv;
volumeMounts:
- name: backup-dir
mountPath: /backup
resources:
requests:
cpu: '500m'
memory: '512M'
limits:
cpu: '1'
memory: '1G'
imagePullPolicy: IfNotPresent
volumes:
- name: backup-dir
persistentVolumeClaim:
claimName: cjoc-backup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment