Hello all.
Deploy team is working on backup / restore feature for Che
operator.
Backup/restore should be triggered by setting a CR field to
"backup" or "restore". Also destination storage server (another
field) and credentials for it (a secret) have to be configured
as well.
The order of the backup procedure is planned to be:
1. Ensure Che is up and running and backup storage with
credentials is configured
2. Gather all resources to backup:
- Postgres databases
- Che cluster CR and CRD
- Che related secrets and CAs configmaps
3. Send the resources to an external backup/storage server
Operator can get all needed resources yamls directly from the
cluster except databases. To backups databases it is planned to
use exec into postgres pod and dump them.
To send/retrieve back collected data we plan to use restic [1]
cli tool:
- open source under BSD 2-rd clause licence
- written in golang, no external dependencies
- supports many destinations: AWS, Azure, GCS, OpenStack Swift,
NFS, SSH, SFTP and many more
- used as an extesion in Velero to deliver backups to storage
servers.
The only downside we see is that we have to include the binary
into the operator image, that will increase its size for ~20Mb.
If anyone has concerns / suggestions regarding this topic,
please let us know.
[1]
https://restic.net/
--
Mykola Morhun
Software engineer
Red Hat