Consolidate all object storage configuration
Currently we have multiple settings for different items that can go to object storage
- build artifacts
- lfs
- uploads
We will be introducing another one soon, packages
gitlab-org/gitlab-ee#5811 .
Each of these takes a number of settings to configure:
object_store:
enabled: false
connection:
provider: AWS # Only AWS supported at the moment
aws_access_key_id: AWS_ACCESS_KEY_ID
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
region: us-east-1
Advantage of this granularity is that you can have different OS providers for each type of uploads and store them in separate buckets. This is especially useful for large deployments like GitLab.com.
However, for vast majority of users this is not needed and having one bucket and everything else under folders would be sufficient.
It would be great if we could consolidate this configuration into something similar to what we had for repositories. For example:
object_store:
provider:
access_key_id:
secret_access_key:
region:
bucket:
lfs: #optional
provider:
bucket:
This means that you can specify one configuration at the top level and that would be used for all objects, by default stored in separate remote directories under the name of each group of objects. You can then specify overrides per different group.