Unified Backups: Integrate unified backups into Omnibus
Summary
Integrates the Unified Backups CLI into Omnibus, see &11635.
Proposal
The command will initially be shipped as part of the gitlab-rails
codebase, but there is a future intention to extract it into its own thing that can be shipped and installed separately (to be discussed).
In order to have access to all the required data, the process needs to run with elevated priviledges, similar to the existing gitlab-backup
tool.
Because the new tool doesn't live in the same codebase as the one shipped by omnibus, we should investigate what information the current tool have access today, due to this original integration, and figure out a way to expose to the new tool.
Some possible suggestions to be investigated:
- Use of ENV variables (if its just a couple of directory paths)
- Expose data into a .json file that can be loaded by the new CLI (and pass the location of that file through ENV variables)
In case we opt for a JSON approach we need to consider how are we going to avoid coupling GitLab packaging-specific version information with the CLI version, considering the intention to extract and ship the tool separately in the future (it will still need to consider "supported version ranges", but we need to minimize things here if we could.