Support consolidated object storage configuration
This adds support for the gitlab.yml changes in gitlab!34460 (merged). This allows GitLab to use the Workhorse S3 client with a single credential, enabling proper MD5 checksums and multipart uploads, and paves the way for user-specified keys for encrypted buckets.
These changes require gitlab!35480 (merged) to work.
- Closes #5263 (closed)
- Closes #5447 (closed)
- Closes gitlab-workhorse#222 (closed)
- Closes gitlab-workhorse#210 (closed)
Testing Matrix
Object store provider | Pass? |
---|---|
AWS S3 | |
Oracle Cloud S3 | |
Digital Ocean Spaces | |
OpenStack Swift |
Example config
gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['connection'] = {
'provider' => 'AWS',
'region' => 'ams3',
'aws_access_key_id' => 'REDACTED',
'aws_secret_access_key' => 'REDACTED',
'endpoint' => 'https://ams3.digitaloceanspaces.com',
}
gitlab_rails['object_store']['proxy_download'] = false
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'stanhu-artifacts'
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'stanhu-external-diffs'
gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'stanhu-lfs'
gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'stanhu-uploads'
gitlab_rails['object_store']['objects']['packages']['bucket'] = 'stanhu-packages'
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'stanhu-dependency-proxy'
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'stanhu-terraform-state'
Edited by Stan Hu