No Description

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

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.