Nessuna descrizione

bodicsek eb904e7b2a Update container images to latest versions 10 mesi fa
README.org 2eec0b275b Adding ntfy service and using it from diun and backup jobs - ntfy.bodicsek.host 1 anno fa
backup.cronjob.yaml 304f4e147c Adding backup cronjob verbose logging 1 anno fa
backup.pod.yaml a45dd17961 Adding backup pod, job and cronjob manifests 1 anno fa
backup.remote.cronjob.yaml 5ac5b2e829 Fixing backup jobs' exit code handling 1 anno fa
backup.remote.pod.yaml d130623eeb Adding remote backup job and cronjob manifests 1 anno fa
cert-manager-letsencrypt-prod.yaml 163b662d2d Initial commit 2 anni fa
cert-manager.yaml 163b662d2d Initial commit 2 anni fa
container-registry.yaml 127ba6dca2 Updating container registry image version (diun notification) 1 anno fa
dav.yaml eb904e7b2a Update container images to latest versions 10 mesi fa
docker-image-update-notifier.yaml e7167eb453 Fixing diun image version watch 1 anno fa
git.yaml e7167eb453 Fixing diun image version watch 1 anno fa
ntfy.yaml eb904e7b2a Update container images to latest versions 10 mesi fa
pwd.yaml eb904e7b2a Update container images to latest versions 10 mesi fa
system-upgrade-controller.yaml 4cff4056ab Adding system upgrade controller and plans 1 anno fa
system-upgrade-plans.yaml 4cff4056ab Adding system upgrade controller and plans 1 anno fa
webdav.yaml eb904e7b2a Update container images to latest versions 10 mesi fa

README.org

Local backup

Restic is used to create incremental backups. Host raspberrypi4 is set for backing up glusterfs files.

All glusterfs files are mounted under /mnt. An NFS drive is mounted under /data/backup as the backup destination.

/etc/fstab entries:

localhost:/dockervol /mnt glusterfs defaults,_netdev,noauto,x-systemd.automount 0 0
192.168.1.1:/mnt/sda1/backup /data/backup nfs defaults 0 0

Scheduled backup

Apply backup.cronjob.yaml.

One time backup

Run kubectl create job --from=cronjob/backup backup-manual.

Restore

Apply backup.pod.yaml. It creates a restic-cli pod on raspberrypi4. kubectl exec -it restic-cli -- /bin/sh gives you a shell in the pod's container. Select the snapshot id by running restic --repo /data/repo snapshots --insecure-no-password. Run restic --repo /data/repo restore <snapshot_id> /data/glusterfs --insecure-no-password to fully restore from a snapshot.

Remote backup

Rclone sync is used to copy the local restic repo to a remote destination. Remote destination is currently an Oracle Object Storage called backup in davidnabraczkyhajos tenancy. The API key secret and the rclone/oci config maps are created in backup.remote.cronjob.yaml. Apply this before anything else, it will create a cron job that runs every Sunday at 8:00 am.

Scheduled backup

Apply backup.remote.cronjob.yaml.

One time backup

Run kubectl create job --from=cronjob/backup-remote backup-remote-manual.

Restore

Apply backup.remote.pod.yaml. It creates an rclone-cli pod on raspberrypi4. kubectl exec -it rclone-cli -- /bin/sh gives you a shell in the pod's container. Run rclone sync --progress --verbose --verbose --cache-workes 4 --transfers 4 --retries 32 oos:backup /data/repo/restore. Use --dry-run first.