Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 55.3k
    • Issues 55.3k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1.6k
    • Merge requests 1.6k
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #23345
Closed
Open
Issue created Jul 19, 2018 by Marin Jankovski@marinOwner

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 #5811 (closed) .

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.

cc @dzaporozhets @ayufan @smcgivern

Status

  • As a first iteration we implemented consolidated object storage configuration
  • Thanks to that we are now able to support S3 encryption via storage_options: (see !38240 (merged))
  • Next iteration: using only one bucket - #292958
Edited Dec 11, 2020 by Alessio Caiazza
Assignee
Assign to
Time tracking