Add support for additional "path" variable in object_store configuration

Release notes

Problem to solve

This is to prevent having to create multiple upper-level buckets for each deployment. By default, AWS allows for 100 buckets per account (initially), which can quickly be exhausted the way we currently have to define the object_store configuration:

Intended users

User experience goal

Gitlab does not currently support "bucketname/foldername" format for object_store configurations. The user should be able to add bucket: and path:, like it's already supported in the cache configuration:

[runners.cache]
  Type = "s3"
  Path = "path/to/prefix"
  Shared = false
  [runners.cache.s3]
    ServerAddress = "s3.amazonaws.com"
    AccessKey = "AWS_S3_ACCESS_KEY"
    SecretKey = "AWS_S3_SECRET_KEY"
    BucketName = "runners-cache"
    BucketLocation = "eu-west-1"
    Insecure = false

Proposal

Further details

Permissions and Security

Documentation

Availability & Testing

Available Tier

What does success look like, and how can we measure that?

What is the type of buyer?

Is this a cross-stage feature?

Links / references