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
_______________________________________________