Wrapper for restic. This is the backup runner of k8up. Documentation coming soon.
All the configuration needed can be done via environment variables:
HOSTNAME
overwrite the hostname used for the backupKEEP_LAST
amount of last backups that should be keptKEEP_HOURLY
amount of hourly backups that should be keptKEEP_DAILY
amount of daily backups that should be keptKEEP_WEEKLY
amount of weekly backups that should be keptKEEP_MONTHLY
amount of monthly backups that should be keptKEEP_YEARLY
amount of yearly backups that should be keptKEEP_TAG
what tags should be kept Not yet implementedPROM_URL
Prometheus push gateway urlBACKUP_DIR
directory that should get backed up, default:/data
STATS_URL
url where additional after backup stats get pushed toBACKUP_LIST_TIMEOUT
set the timeout for listing snapshots, default 30 secsRESTORE_S3ENDPOINT
s3 endpoint where the tar.gz with all files should be uploaded, examplehttp://localhost:9000/bucketName
RESTORE_ACCESSKEYID
s3 accesKeyID for the restore s3 endpointRESTORE_SECRETACCESSKEY
s3 secretAccessKey for the restore s3 endpointBACKUPCOMMAND_ANNOTATION
name of the backup command annotation, default:k8up.syn.tools/backupcommand
FILEEXTENSION_ANNOTATION
name of the file extension annotation, default:k8up.syn.tools/file-extension
Configuration for the Restic repository also has to be provided via env variables. See the official docs.
First build the container:
cd cmd/wrestic
docker build -t wrestic/wrestic .
Then run the container and mount the folders you'd like to be backed up to /data
:
docker run -e "HOSTNAME=test" -e "PROM_URL=http://192.168.1.43:9091" -v /path/to/back:/data/ wrestic/wrestic
Run a check of the repository:
docker run -e "HOSTNAME=test" -e "PROM_URL=http://192.168.1.43:9091" -v /path/to/back:/data/ wrestic/wrestic -check
Run a restore to disk:
docker run -e "HOSTNAME=test" -v /path/for/restore:/restore wrestic -restore -restoreType folder
Run a restore to disk with a filter:
docker run -e "HOSTNAME=test" -v /patch/for/restore:/restore wrestic -restore -restoreType folder -restoreFilter /var/mysql
Run a restore to S3:
docker run -e "HOSTNAME=test" -e "RESTORE_S3ENDPOINT=http://localhost:9000/bucketName" -e "RESTORE_ACCESSKEYID=1324" -e "RESTORE_SECRETACCESSKEY=secret" wrestic -restore -restoreType s3
The container will exit after the job is done. If a valid PROM_URL
is provided it will push metrics there.