Sen descrición

bodicsek c489487bdc Fixing traefik crd api version hai 9 meses
README.org 2eec0b275b Adding ntfy service and using it from diun and backup jobs - ntfy.bodicsek.host hai 1 ano
backup.cronjob.yaml 304f4e147c Adding backup cronjob verbose logging hai 9 meses
backup.pod.yaml a45dd17961 Adding backup pod, job and cronjob manifests hai 1 ano
backup.remote.cronjob.yaml 5ac5b2e829 Fixing backup jobs' exit code handling hai 1 ano
backup.remote.pod.yaml d130623eeb Adding remote backup job and cronjob manifests hai 1 ano
cert-manager-letsencrypt-prod.yaml 163b662d2d Initial commit %!s(int64=2) %!d(string=hai) anos
cert-manager.yaml 163b662d2d Initial commit %!s(int64=2) %!d(string=hai) anos
container-registry.yaml 127ba6dca2 Updating container registry image version (diun notification) hai 1 ano
dav.yaml c489487bdc Fixing traefik crd api version hai 9 meses
docker-image-update-notifier.yaml 2eec0b275b Adding ntfy service and using it from diun and backup jobs - ntfy.bodicsek.host hai 1 ano
git.yaml c489487bdc Fixing traefik crd api version hai 9 meses
ntfy.yaml c489487bdc Fixing traefik crd api version hai 9 meses
pwd.yaml c489487bdc Fixing traefik crd api version hai 9 meses
system-upgrade-controller.yaml 4cff4056ab Adding system upgrade controller and plans hai 1 ano
system-upgrade-plans.yaml 4cff4056ab Adding system upgrade controller and plans hai 1 ano
webdav.yaml c489487bdc Fixing traefik crd api version hai 9 meses

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.