diff options
Diffstat (limited to 'config/initializers')
-rw-r--r-- | config/initializers/0_inject_feature_flags.rb | 39 | ||||
-rw-r--r-- | config/initializers/1_settings.rb | 17 | ||||
-rw-r--r-- | config/initializers/8_devise.rb | 2 | ||||
-rw-r--r-- | config/initializers/carrierwave_patch.rb | 19 | ||||
-rw-r--r-- | config/initializers/grape_patch.rb | 31 | ||||
-rw-r--r-- | config/initializers/postgres_partitioning.rb | 2 | ||||
-rw-r--r-- | config/initializers/trusted_proxies.rb | 2 |
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 |