Geo: Allow to enable replication for content in Object Storage
According to our current documentation: https://docs.gitlab.com/ee/administration/geo/replication/object_storage.html#geo-with-object-storage when user setup an object storage with Geo, we disable the replication code, as we assume the Object Storage will be configured to handle that.
That is not always the case, if the user is not using a cloud solution that supports replication, or if they are using a local storage appliance that does not support replication logic.
Even in the case where the user has access to a cloud solution, they may still need to backfill any additional node, when bootstrapping from an existing installation, which is usually not a supported feature from cloud providers.
In order to provide a minimal Object Storage replication functionality we need to make some changes:
- Cover current download logic with specs (not everything is being tested) https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13997
- Add settings to Geo Node to enable/disable syncing files in Object Storage https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15139
- Make it possible to download files stored in Object Storage via sync API and upload to another Object Storage https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15606
Remove hard-coded restrictions on all finders to expose both
remotefiles (remote means Object Storage) https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13997
- Implement a new restriction on finders based on GeoNode settings. https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13997