Workhorse: support google as object storage provider
🔥 Situation
If we look at the object storage configuration on Workhorse, we can see that only aws
and azure
are supported.
It's sad that google
is not supported since it's what is used on gitlab.com.
That support would allow to use the workhorse internal client to upload files when in direct upload mode.
By using the internal client, we can have some
Also, by using the internal client, it's easier to support additional encryption modes such as KMS or even customer supplied keys.
🚒 Solution
To support the workhorse internal google
client, we need a few changes:
- Update workhorse to load a
google
client when the object storage configuration is describing that. - Update rails so that in direct upload mode +
google
provider, we instruct workhorse to use its client. - If I'm not wrong, we need to update https://gitlab.com/gitlab-org/omnibus-gitlab so that the rails object storage configuration with
google
creates the appropriate workhorse configuration.
It is advised to use a feature flag for this.
Edited by David Fernandez