Support Google CDN configuration for storage-specific config
In gitlab!96336 (merged) and gitlab!98010 (merged), we added support for Google CDN in front of CI artifacts to improve performance and reduce costs.
This is similar to the work for the container registry in gitlab-org/charts/gitlab!2328 (merged).
The Charts configuration merge request: gitlab-org/charts/gitlab!2783 (merged)
Currently, the Google CDN can be enabled via the consolidated config:
external_url 'https://gitlab.example.com'
gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['connection'] = {
'provider' => 'Google',
'google_project' => 'stan-redacted',
'google_application_default' => true
}
gitlab_rails['object_store']['proxy_download'] = false
bucket = 'stanhu-test'
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = "#{bucket}/artifacts"
gitlab_rails['object_store']['objects']['artifacts']['cdn'] = {
'provider' => 'Google',
'url' => 'https://stanhu-cdn.example.org',
'key_name' => 'stanhu-key',
'key' => '<REDACTED KEY>'
}
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = "#{bucket}/external_diffs"
gitlab_rails['object_store']['objects']['lfs']['bucket'] = "#{bucket}/lfs"
gitlab_rails['object_store']['objects']['uploads']['bucket'] = "#{bucket}/uploads"
gitlab_rails['object_store']['objects']['packages']['bucket'] = "#{bucket}/packages"
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = "#{bucket}/dependency_proxy"
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = "#{bucket}/terraform_state"
gitlab_rails['object_store']['objects']['ci_secure_files']['bucket'] = "#{bucket}/ci_secure_files"
However, for those people not using consolidated config, we would need add support for something like:
gitlab_rails['artifacts_object_store_cdn'] = {
'provider' => 'Google',
'url' => 'https://stanhu-cdn.example.org',
'key_name' => 'stanhu-key',
'key' => '<REDACTED KEY>'
}
Edited by Stan Hu