From 04b9a10345123459fee6f62a39692c30cbc5004d Mon Sep 17 00:00:00 2001 From: Darby Frey Date: Thu, 14 Sep 2023 16:32:01 -0500 Subject: [PATCH 1/3] Allow incomplete bucket for Secure Files in object storage configuration --- config/object_store_settings.rb | 5 +++-- spec/config/object_store_settings_spec.rb | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/config/object_store_settings.rb b/config/object_store_settings.rb index 4e9a7148e15e88..12fc0171cbc862 100644 --- a/config/object_store_settings.rb +++ b/config/object_store_settings.rb @@ -2,7 +2,8 @@ # Set default values for object_store settings class ObjectStoreSettings - SUPPORTED_TYPES = %w[artifacts external_diffs lfs uploads packages dependency_proxy terraform_state pages].freeze + SUPPORTED_TYPES = %w[artifacts external_diffs lfs uploads packages dependency_proxy terraform_state pages + ci_secure_files].freeze ALLOWED_OBJECT_STORE_OVERRIDES = %w[bucket enabled proxy_download cdn].freeze # To ensure the one Workhorse credential matches the Rails config, we @@ -14,7 +15,7 @@ class ObjectStoreSettings # pages may be enabled but use legacy disk storage # we don't need to raise an error in that case - ALLOWED_INCOMPLETE_TYPES = %w[pages].freeze + ALLOWED_INCOMPLETE_TYPES = %w[pages ci_secure_files].freeze attr_accessor :settings diff --git a/spec/config/object_store_settings_spec.rb b/spec/config/object_store_settings_spec.rb index 03ace77af9b7f3..123830b688457b 100644 --- a/spec/config/object_store_settings_spec.rb +++ b/spec/config/object_store_settings_spec.rb @@ -25,6 +25,7 @@ 'artifacts' => { 'enabled' => true }, 'external_diffs' => { 'enabled' => false }, 'pages' => { 'enabled' => true }, + 'ci_secure_files' => { 'enabled' => true }, 'object_store' => { 'enabled' => true, 'connection' => connection, @@ -148,6 +149,13 @@ expect(settings.pages['object_store']).to eq(nil) end + it 'does not raise error if ci_secure_files config is missing' do + config['object_store']['objects'].delete('ci_secure_files') + + expect { subject }.not_to raise_error + expect(settings.ci_secure_files['object_store']).to eq(nil) + end + context 'GitLab Pages' do let(:pages_connection) { { 'provider' => 'Google', 'google_application_default' => true } } -- GitLab From 01f49b6fe1c5962a3120084a45b778fa3b90904c Mon Sep 17 00:00:00 2001 From: Darby Frey Date: Wed, 10 Apr 2024 10:56:12 -0500 Subject: [PATCH 2/3] =?UTF-8?q?Added=20test=20to=20ensuare=20consolidated?= =?UTF-8?q?=20storage=20isn=E2=80=99t=20enabled.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/config/object_store_settings_spec.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spec/config/object_store_settings_spec.rb b/spec/config/object_store_settings_spec.rb index 123830b688457b..cc517fea303036 100644 --- a/spec/config/object_store_settings_spec.rb +++ b/spec/config/object_store_settings_spec.rb @@ -203,6 +203,28 @@ end end + context 'when object storage is disabled for ci_secure_files with no bucket' do + before do + config['ci_secure_files'] = { + 'enabled' => true, + 'object_store' => {} + } + config['object_store']['objects']['ci_secure_files'] = { + 'enabled' => false + } + end + + it 'does not enable consolidated settings for ci_secure_files' do + subject + + expect(settings.ci_secure_files['enabled']).to be true + expect(settings.ci_secure_files['object_store']['remote_directory']).to be_nil + expect(settings.ci_secure_files['object_store']['bucket_prefix']).to be_nil + expect(settings.ci_secure_files['object_store']['enabled']).to be_falsey + expect(settings.ci_secure_files['object_store']['consolidated_settings']).to be_falsey + end + end + context 'with legacy config' do let(:legacy_settings) do { -- GitLab From b0bc94bbbd9f0b0221597acb744b0eb203d0927c Mon Sep 17 00:00:00 2001 From: Darby Frey Date: Wed, 10 Apr 2024 14:46:58 -0500 Subject: [PATCH 3/3] Updated comment --- config/object_store_settings.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/object_store_settings.rb b/config/object_store_settings.rb index 12fc0171cbc862..666a1967f189ed 100644 --- a/config/object_store_settings.rb +++ b/config/object_store_settings.rb @@ -13,7 +13,7 @@ class ObjectStoreSettings # the future. WORKHORSE_ACCELERATED_TYPES = SUPPORTED_TYPES - %w[pages] - # pages may be enabled but use legacy disk storage + # pages and ci_secure_files may be enabled but use legacy disk storage # we don't need to raise an error in that case ALLOWED_INCOMPLETE_TYPES = %w[pages ci_secure_files].freeze -- GitLab