summaryrefslogtreecommitdiff
path: root/config/initializers
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/0_inject_feature_flags.rb39
-rw-r--r--config/initializers/1_settings.rb17
-rw-r--r--config/initializers/8_devise.rb2
-rw-r--r--config/initializers/carrierwave_patch.rb19
-rw-r--r--config/initializers/grape_patch.rb31
-rw-r--r--config/initializers/postgres_partitioning.rb2
-rw-r--r--config/initializers/trusted_proxies.rb2
7 files changed, 37 insertions, 75 deletions
diff --git a/config/initializers/0_inject_feature_flags.rb b/config/initializers/0_inject_feature_flags.rb
index 74470a6cbfc..5b33b3bb4ea 100644
--- a/config/initializers/0_inject_feature_flags.rb
+++ b/config/initializers/0_inject_feature_flags.rb
@@ -4,42 +4,3 @@
Feature.register_feature_groups
Feature.register_definitions
Feature.register_hot_reloader unless Rails.configuration.cache_classes
-
-# This disallows usage of licensed feature names with the same name
-# as feature flags. This naming collision creates confusion and it was
-# decided to be removed in favor of explicit check.
-# https://gitlab.com/gitlab-org/gitlab/-/issues/259611
-if Gitlab.ee? && Gitlab.dev_or_test_env?
- # These are the names of feature flags that do violate the constraint of
- # being unique to licensed names. These feature flags should be reworked to
- # be "development" with explicit check
- IGNORED_FEATURE_FLAGS = %i[
- swimlanes
- ].to_set
-
- # First, we validate a list of overrides to ensure that these overrides
- # are removed if feature flag is gone
- missing_feature_flags = IGNORED_FEATURE_FLAGS.reject do |feature_flag|
- Feature::Definition.definitions[feature_flag]
- end
-
- if missing_feature_flags.any?
- raise "The following feature flags were added as an override for discovering licensed features. " \
- "Since these feature flags seems to be gone, ensure to remove them from \`IGNORED_FEATURE_FLAGS\` " \
- "in \`#{__FILE__}'`: #{missing_feature_flags.join(", ")}"
- end
-
- # Second, we validate that there's no feature flag under the name as licensed feature
- # flag, to ensure that the name used, is unique
- licensed_features = License::PLANS_BY_FEATURE.keys.select do |licensed_feature_name|
- IGNORED_FEATURE_FLAGS.exclude?(licensed_feature_name) &&
- Feature::Definition.definitions[licensed_feature_name]
- end
-
- if licensed_features.any?
- raise "The following feature flags do use a licensed feature. " \
- "To avoid the confusion between their usage it is disallowed to use feature flag " \
- "with exact the same name as licensed feature name. Use a different name to create " \
- "a distinction: #{licensed_features.join(", ")}"
- end
-end
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 97c0e051f1f..b3ea72fc7e5 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -420,6 +420,9 @@ Settings.cron_jobs['pipeline_schedule_worker']['job_class'] = 'PipelineScheduleW
Settings.cron_jobs['expire_build_artifacts_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['expire_build_artifacts_worker']['cron'] ||= '*/7 * * * *'
Settings.cron_jobs['expire_build_artifacts_worker']['job_class'] = 'ExpireBuildArtifactsWorker'
+Settings.cron_jobs['ci_pipelines_expire_artifacts_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['ci_pipelines_expire_artifacts_worker']['cron'] ||= '*/23 * * * *'
+Settings.cron_jobs['ci_pipelines_expire_artifacts_worker']['job_class'] = 'Ci::PipelineArtifacts::ExpireArtifactsWorker'
Settings.cron_jobs['ci_schedule_delete_objects_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['ci_schedule_delete_objects_worker']['cron'] ||= '*/16 * * * *'
Settings.cron_jobs['ci_schedule_delete_objects_worker']['job_class'] = 'Ci::ScheduleDeleteObjectsCronWorker'
@@ -543,7 +546,7 @@ Settings.cron_jobs['manage_evidence_worker']['job_class'] = 'Releases::ManageEvi
Gitlab.ee do
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker'] ||= Settingslogic.new({})
- Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker']['cron'] ||= '0 0 1 * *'
+ Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker']['cron'] ||= '0 4 * * *'
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker']['job_class'] = 'Analytics::DevopsAdoption::CreateAllSnapshotsWorker'
Settings.cron_jobs['active_user_count_threshold_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['active_user_count_threshold_worker']['cron'] ||= '0 12 * * *'
@@ -852,6 +855,18 @@ Settings.monitoring.web_exporter['address'] ||= 'localhost'
Settings.monitoring.web_exporter['port'] ||= 8083
#
+# Prometheus settings
+#
+Settings['prometheus'] ||= Settingslogic.new({})
+# TODO: Remove listen_address and enable in GitLab 14.0 and set default value
+# of server_address to be nil and enabled to be false -
+# https://gitlab.com/gitlab-org/gitlab/-/issues/296022
+Settings.prometheus['enable'] ||= false
+Settings.prometheus['listen_address'] ||= nil
+Settings.prometheus['enabled'] = Settings.prometheus['enable'] if Settings.prometheus['enabled'].nil?
+Settings.prometheus['server_address'] ||= Settings.prometheus['listen_address']
+
+#
# Shutdown settings
#
Settings['shutdown'] ||= Settingslogic.new({})
diff --git a/config/initializers/8_devise.rb b/config/initializers/8_devise.rb
index b91a4622ce8..a4841a11a00 100644
--- a/config/initializers/8_devise.rb
+++ b/config/initializers/8_devise.rb
@@ -232,7 +232,7 @@ Devise.setup do |config|
end
if Gitlab::Auth::Ldap::Config.enabled?
- Gitlab::Auth::Ldap::Config.providers.each do |provider|
+ Gitlab::Auth::Ldap::Config.available_providers.each do |provider|
ldap_config = Gitlab::Auth::Ldap::Config.new(provider)
config.omniauth(provider, ldap_config.omniauth_options)
end
diff --git a/config/initializers/carrierwave_patch.rb b/config/initializers/carrierwave_patch.rb
index ad3ff36138f..c8c6f75949c 100644
--- a/config/initializers/carrierwave_patch.rb
+++ b/config/initializers/carrierwave_patch.rb
@@ -17,7 +17,24 @@ module CarrierWave
class Fog < Abstract
class File
def copy_to(new_path)
- connection.copy_object(@uploader.fog_directory, file.key, @uploader.fog_directory, new_path, copy_to_options)
+ # fog-aws needs multipart uploads to copy files above 5 GB,
+ # and it is currently the only Fog provider that supports
+ # multithreaded uploads (https://github.com/fog/fog-aws/pull/579).
+ # Multithreaded uploads are essential for copying large amounts of data
+ # within the request timeout.
+ if ::Feature.enabled?(:s3_multithreaded_uploads, default_enabled: true) && fog_provider == 'AWS'
+ # AWS SDK uses 10 threads by default and a multipart chunk size of 10 MB
+ file.concurrency = 10
+ file.multipart_chunk_size = 10485760
+ file.copy(@uploader.fog_directory, new_path, copy_to_options)
+ else
+ # Some Fog providers may issue a GET request (https://github.com/fog/fog-google/issues/512)
+ # instead of a HEAD request after the transfer completes,
+ # which might cause the file to be downloaded locally.
+ # We fallback to the original copy_object for non-AWS providers.
+ connection.copy_object(@uploader.fog_directory, file.key, @uploader.fog_directory, new_path, copy_to_options)
+ end
+
CarrierWave::Storage::Fog::File.new(@uploader, @base, new_path)
end
diff --git a/config/initializers/grape_patch.rb b/config/initializers/grape_patch.rb
deleted file mode 100644
index a9ac0840541..00000000000
--- a/config/initializers/grape_patch.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# frozen_string_literal: true
-# Monkey patch for Grape v1.4.0: https://github.com/ruby-grape/grape/pull/2088
-
-require 'grape'
-
-# rubocop:disable Gitlab/ModuleWithInstanceVariables
-module Grape
- module DSL
- module InsideRoute
- def stream(value = nil)
- return if value.nil? && @stream.nil?
-
- header 'Content-Length', nil
- header 'Transfer-Encoding', nil
- header 'Cache-Control', 'no-cache' # Skips ETag generation (reading the response up front)
-
- if value.is_a?(String)
- file_body = Grape::ServeStream::FileBody.new(value)
- @stream = Grape::ServeStream::StreamResponse.new(file_body)
- elsif value.respond_to?(:each)
- @stream = Grape::ServeStream::StreamResponse.new(value)
- elsif !value.is_a?(NilClass)
- raise ArgumentError, 'Stream object must respond to :each.'
- else
- @stream
- end
- end
- end
- end
-end
-# rubocop:enable Gitlab/ModuleWithInstanceVariables
diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb
index b3f12c2ceb1..3cea8575cc7 100644
--- a/config/initializers/postgres_partitioning.rb
+++ b/config/initializers/postgres_partitioning.rb
@@ -3,7 +3,7 @@
# Make sure we have loaded partitioned models here
# (even with eager loading disabled).
-Gitlab::Database::Partitioning::PartitionCreator.register(AuditEventPartitioned)
+Gitlab::Database::Partitioning::PartitionCreator.register(AuditEvent)
begin
Gitlab::Database::Partitioning::PartitionCreator.new.create_partitions unless ENV['DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP']
diff --git a/config/initializers/trusted_proxies.rb b/config/initializers/trusted_proxies.rb
index 93c4d2b10cc..a4528020c06 100644
--- a/config/initializers/trusted_proxies.rb
+++ b/config/initializers/trusted_proxies.rb
@@ -30,4 +30,4 @@ module TrustedProxyMonkeyPatch
end
end
-ActionDispatch::Request.send(:include, TrustedProxyMonkeyPatch)
+ActionDispatch::Request.include TrustedProxyMonkeyPatch