change container to use alpine instead of curl

This commit is contained in:
2024-07-02 14:56:40 +01:00
parent b7e3895065
commit 3db2c084a2
6 changed files with 252 additions and 0 deletions
@@ -0,0 +1,14 @@
apiVersion: v1
data:
export_calendar.sh: |
#!/usr/bin/env bash
apk update
apk add curl
list='capgemini birmingham cesi papa blueberry personal-1 prometheus birthday maman capgemini_ca-gip shared_shared_by_calendar_sync'
for element in $list;do
curl -u $PI_USER_USERNAME:$PI_USER_PASSWORD https://nextcloud.tryton.geeraert.eu/remote.php/dav/calendars/pi/$element/\?export -o /backup/calendar_$element.ics
done
#curl -u $PI_USER_USERNAME:$PI_USER_PASSWORD https://nextcloud.tryton.geeraert.eu/remote.php/dav/calendars/pi/capgemini_ca-gip/\?export -o /backup/calendar.ics
kind: ConfigMap
metadata:
name: nextcloud-calendar-export-script
@@ -0,0 +1,52 @@
apiVersion: batch/v1
kind: Job
metadata:
name: contact-backup
namespace: nextcloud
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: contact-backup
image: alpine
env:
- name: PI_USER_USERNAME
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_USERNAME
- name: PI_USER_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_PASSWORD
command: ["/bin/sh","/config/export_calendar.sh"]
volumeMounts:
- name: calendar
mountPath: /backup
- name: scripts
mountPath: /config
volumes:
- name: calendar
persistentVolumeClaim:
claimName: calendar
- name: scripts
configMap:
name: nextcloud-calendar-export-script
defaultMode: 0555
restartPolicy: Never
backoffLimit: 4
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: calendar
namespace: nextcloud
spec:
storageClassName: nfs-backup-storage-intelligent
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
@@ -0,0 +1,55 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: nextcloud-calendar-backup
namespace: nextcloud
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: calendar-backup
image: alpine
env:
- name: PI_USER_USERNAME
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_USERNAME
- name: PI_USER_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_PASSWORD
command: ["/bin/sh","/config/export_calendars.sh"]
volumeMounts:
- name: calendar
mountPath: /backup
- name: scripts
mountPath: /config
volumes:
- name: calendar
persistentVolumeClaim:
claimName: calendar
- name: scripts
configMap:
name: nextcloud-export-scripts
# name: nextcloud-calendar-export-script
defaultMode: 0555
restartPolicy: Never
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: calendar
namespace: nextcloud
spec:
storageClassName: nfs-backup-storage-intelligent
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
@@ -0,0 +1,55 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: nextcloud-contact-backup
namespace: nextcloud
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: contact-backup
image: alpine
env:
- name: PI_USER_USERNAME
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_USERNAME
- name: PI_USER_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_PASSWORD
command: ["/bin/sh","/config/export_contacts.sh"]
volumeMounts:
- name: contact
mountPath: /backup
- name: scripts
mountPath: /config
volumes:
- name: contact
persistentVolumeClaim:
claimName: contact
- name: scripts
configMap:
name: nextcloud-export-scripts
# name: nextcloud-calendar-export-script
defaultMode: 0555
restartPolicy: Never
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: contact
namespace: nextcloud
spec:
storageClassName: nfs-backup-storage-intelligent
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
@@ -0,0 +1,53 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: nextcloud-contact-backup
namespace: nextcloud
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: contact-backup
image: alpine/curl
env:
- name: PI_USER_USERNAME
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_USERNAME
- name: PI_USER_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-credentials
key: PI_USER_PASSWORD
args:
- -u
- $(PI_USER_USERNAME):$(PI_USER_PASSWORD)
- https://nextcloud.tryton.geeraert.eu/remote.php/dav/addressbooks/users/pi/contacts/?export
- -o
- /backup/contact.vcf
volumeMounts:
- name: contact
mountPath: /backup
volumes:
- name: contact
persistentVolumeClaim:
claimName: contact
restartPolicy: Never
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: contact
namespace: nextcloud
spec:
storageClassName: nfs-backup-storage-intelligent
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
@@ -0,0 +1,23 @@
apiVersion: v1
data:
export_calendars.sh: |
#!/usr/bin/env bash
apk update
apk add curl
list='capgemini Birmingham Cesi Papa Blueberry Personal Prometheus Birthday Maman Capgemini_CA-GIP Shared'
today_date=$(date "+%Y-%m-%d")
mkdir /backup/$today_date
for element in $list;do
curl -u $PI_USER_USERNAME:$PI_USER_PASSWORD https://nextcloud.tryton.geeraert.eu/remote.php/dav/calendars/pi/$element/\?export -o /backup/$today_date/calendar_$element.ics
done
export_contacts.sh: |
#!/usr/bin/env bash
apk update
apk add curl
today_date=$(date "+%Y-%m-%d")
mkdir /backup/$today_date
curl -u $PI_USER_USERNAME:$PI_USER_PASSWORD https://nextcloud.tryton.geeraert.eu/remote.php/dav/addressbooks/users/pi/contacts/?export -o /backup/$today_date/contact_$today_date.vcf
kind: ConfigMap
metadata:
creationTimestamp: null
name: nextcloud-export-scripts