Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 21:18:33 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 21:18:33 +0300
commitf64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch)
treea2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /config/initializers
parentbfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff)
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/0_marginalia.rb15
-rw-r--r--config/initializers/1_settings.rb15
-rw-r--r--config/initializers/doorkeeper.rb6
-rw-r--r--config/initializers/gitlab_experiment.rb4
-rw-r--r--config/initializers/postgres_partitioning.rb1
-rw-r--r--config/initializers/rack_multipart_patch.rb44
-rw-r--r--config/initializers/rails_host_authorization.rb5
-rw-r--r--config/initializers/validate_puma.rb4
-rw-r--r--config/initializers/zz_metrics.rb1
9 files changed, 77 insertions, 18 deletions
diff --git a/config/initializers/0_marginalia.rb b/config/initializers/0_marginalia.rb
index 952dd75886d..ab21f936cd8 100644
--- a/config/initializers/0_marginalia.rb
+++ b/config/initializers/0_marginalia.rb
@@ -4,17 +4,16 @@ require 'marginalia'
::Marginalia::Comment.extend(::Gitlab::Marginalia::Comment)
-# Patch to modify 'Marginalia::ActiveRecordInstrumentation.annotate_sql' method with feature check.
-# Orignal Marginalia::ActiveRecordInstrumentation is included to ActiveRecord::ConnectionAdapters::PostgreSQLAdapter in the Marginalia Railtie.
-# Refer: https://github.com/basecamp/marginalia/blob/v1.8.0/lib/marginalia/railtie.rb#L67
-ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(Gitlab::Marginalia::ActiveRecordInstrumentation)
-
# By default, PostgreSQL only tracks the first 1024 bytes of a SQL
# query. Prepending the comment allows us to trace the source of the
# query without having to increase the `track_activity_query_size`
# parameter.
-Marginalia::Comment.prepend_comment = true unless Rails.env.test? # Some tests do string matching against raw SQL
-Marginalia::Comment.components = [:application, :controller, :action, :correlation_id, :jid, :job_class]
+#
+# We only enable this in production because a number of tests do string
+# matching against the raw SQL, and prepending the comment prevents color
+# coding from working in the development log.
+Marginalia::Comment.prepend_comment = true if Rails.env.production?
+Marginalia::Comment.components = [:application, :controller, :action, :correlation_id, :jid, :job_class, :endpoint_id]
# As mentioned in https://github.com/basecamp/marginalia/pull/93/files,
# adding :line has some overhead because a regexp on the backtrace has
@@ -25,5 +24,3 @@ Marginalia::Comment.components << :line if Rails.env.development?
Gitlab::Marginalia.set_application_name
Gitlab::Marginalia.enable_sidekiq_instrumentation
-
-Gitlab::Marginalia.set_enabled_from_feature_flag
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index c478123f4eb..b8dc464deed 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -210,6 +210,7 @@ Settings.gitlab['domain_allowlist'] ||= []
Settings.gitlab['import_sources'] ||= Gitlab::ImportSources.values
Settings.gitlab['trusted_proxies'] ||= []
Settings.gitlab['content_security_policy'] ||= Gitlab::ContentSecurityPolicy::ConfigLoader.default_settings_hash
+Settings.gitlab['allowed_hosts'] ||= []
Settings.gitlab['no_todos_messages'] ||= YAML.load_file(Rails.root.join('config', 'no_todos_messages.yml'))
Settings.gitlab['impersonation_enabled'] ||= true if Settings.gitlab['impersonation_enabled'].nil?
Settings.gitlab['usage_ping_enabled'] = true if Settings.gitlab['usage_ping_enabled'].nil?
@@ -533,7 +534,7 @@ Settings.cron_jobs['users_create_statistics_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['users_create_statistics_worker']['cron'] ||= '2 15 * * *'
Settings.cron_jobs['users_create_statistics_worker']['job_class'] = 'Users::CreateStatisticsWorker'
Settings.cron_jobs['authorized_project_update_periodic_recalculate_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['authorized_project_update_periodic_recalculate_worker']['cron'] ||= '45 1 * * 6'
+Settings.cron_jobs['authorized_project_update_periodic_recalculate_worker']['cron'] ||= '45 1 1,15 * *'
Settings.cron_jobs['authorized_project_update_periodic_recalculate_worker']['job_class'] = 'AuthorizedProjectUpdate::PeriodicRecalculateWorker'
Settings.cron_jobs['update_container_registry_info_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['update_container_registry_info_worker']['cron'] ||= '0 0 * * *'
@@ -544,9 +545,9 @@ Settings.cron_jobs['postgres_dynamic_partitions_creator']['job_class'] ||= 'Part
Settings.cron_jobs['ci_platform_metrics_update_cron_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['ci_platform_metrics_update_cron_worker']['cron'] ||= '47 9 * * *'
Settings.cron_jobs['ci_platform_metrics_update_cron_worker']['job_class'] = 'CiPlatformMetricsUpdateCronWorker'
-Settings.cron_jobs['analytics_instance_statistics_count_job_trigger_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['analytics_instance_statistics_count_job_trigger_worker']['cron'] ||= '50 23 */1 * *'
-Settings.cron_jobs['analytics_instance_statistics_count_job_trigger_worker']['job_class'] ||= 'Analytics::InstanceStatistics::CountJobTriggerWorker'
+Settings.cron_jobs['analytics_usage_trends_count_job_trigger_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['analytics_usage_trends_count_job_trigger_worker']['cron'] ||= '50 23 */1 * *'
+Settings.cron_jobs['analytics_usage_trends_count_job_trigger_worker']['job_class'] ||= 'Analytics::UsageTrends::CountJobTriggerWorker'
Settings.cron_jobs['member_invitation_reminder_emails_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['member_invitation_reminder_emails_worker']['cron'] ||= '0 0 * * *'
Settings.cron_jobs['member_invitation_reminder_emails_worker']['job_class'] = 'MemberInvitationReminderEmailsWorker'
@@ -585,6 +586,9 @@ Gitlab.ee do
Settings.cron_jobs['geo_verification_cron_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['geo_verification_cron_worker']['cron'] ||= '* * * * *'
Settings.cron_jobs['geo_verification_cron_worker']['job_class'] ||= 'Geo::VerificationCronWorker'
+ Settings.cron_jobs['geo_secondary_usage_data_cron_worker'] ||= Settingslogic.new({})
+ Settings.cron_jobs['geo_secondary_usage_data_cron_worker']['cron'] ||= '0 0 * * 0'
+ Settings.cron_jobs['geo_secondary_usage_data_cron_worker']['job_class'] ||= 'Geo::SecondaryUsageDataCronWorker'
Settings.cron_jobs['geo_file_download_dispatch_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['geo_file_download_dispatch_worker']['cron'] ||= '*/1 * * * *'
Settings.cron_jobs['geo_file_download_dispatch_worker']['job_class'] ||= 'Geo::FileDownloadDispatchWorker'
@@ -710,7 +714,10 @@ Settings.workhorse['secret_file'] ||= Rails.root.join('.gitlab_workhorse_secret'
# GitLab KAS
#
Settings['gitlab_kas'] ||= Settingslogic.new({})
+Settings.gitlab_kas['enabled'] ||= false
Settings.gitlab_kas['secret_file'] ||= Rails.root.join('.gitlab_kas_secret')
+Settings.gitlab_kas['external_url'] ||= 'wss://kas.example.com'
+Settings.gitlab_kas['internal_url'] ||= 'grpc://localhost:8153'
#
# Repositories
diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb
index 1cf70909997..4533779339a 100644
--- a/config/initializers/doorkeeper.rb
+++ b/config/initializers/doorkeeper.rb
@@ -106,4 +106,10 @@ Doorkeeper.configure do
# realm "Doorkeeper"
base_controller '::Gitlab::BaseDoorkeeperController'
+
+ # Allow Resource Owner Password Credentials Grant without client credentials,
+ # this was disabled by default in Doorkeeper 5.5.
+ #
+ # We might want to disable this in the future, see https://gitlab.com/gitlab-org/gitlab/-/issues/323615
+ skip_client_authentication_for_password_grant true
end
diff --git a/config/initializers/gitlab_experiment.rb b/config/initializers/gitlab_experiment.rb
index 40b4c0dc4ee..a312755f300 100644
--- a/config/initializers/gitlab_experiment.rb
+++ b/config/initializers/gitlab_experiment.rb
@@ -2,5 +2,7 @@
Gitlab::Experiment.configure do |config|
config.base_class = 'ApplicationExperiment'
- config.cache = ApplicationExperiment::Cache.new
+ config.cache = Gitlab::Experiment::Cache::RedisHashStore.new(
+ pool: ->(&block) { Gitlab::Redis::SharedState.with { |redis| block.call(redis) } }
+ )
end
diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb
index 3cea8575cc7..6b64ea3f83d 100644
--- a/config/initializers/postgres_partitioning.rb
+++ b/config/initializers/postgres_partitioning.rb
@@ -4,6 +4,7 @@
# (even with eager loading disabled).
Gitlab::Database::Partitioning::PartitionCreator.register(AuditEvent)
+Gitlab::Database::Partitioning::PartitionCreator.register(WebHookLogPartitioned)
begin
Gitlab::Database::Partitioning::PartitionCreator.new.create_partitions unless ENV['DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP']
diff --git a/config/initializers/rack_multipart_patch.rb b/config/initializers/rack_multipart_patch.rb
new file mode 100644
index 00000000000..78cf6244814
--- /dev/null
+++ b/config/initializers/rack_multipart_patch.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+module Rack
+ module Multipart
+ class << self
+ module MultipartPatch
+ def extract_multipart(req, params = Rack::Utils.default_query_parser)
+ log_multipart_warning(req) if log_large_multipart?
+
+ super
+ end
+
+ def log_multipart_warning(req)
+ content_length = req.content_length.to_i
+
+ return unless content_length > log_threshold
+
+ message = {
+ message: "Large multipart body detected",
+ path: req.path,
+ content_length: content_length,
+ correlation_id: ::Labkit::Context.correlation_id
+ }
+
+ log_warn(message)
+ end
+
+ def log_warn(message)
+ warn message.to_json
+ end
+
+ def log_large_multipart?
+ Gitlab::Utils.to_boolean(ENV['ENABLE_RACK_MULTIPART_LOGGING'], default: true) && Gitlab.com?
+ end
+
+ def log_threshold
+ ENV.fetch('RACK_MULTIPART_LOGGING_BYTES', 100_000_000).to_i
+ end
+ end
+
+ prepend MultipartPatch
+ end
+ end
+end
diff --git a/config/initializers/rails_host_authorization.rb b/config/initializers/rails_host_authorization.rb
index 7d719dd519f..22bb6fb7061 100644
--- a/config/initializers/rails_host_authorization.rb
+++ b/config/initializers/rails_host_authorization.rb
@@ -2,6 +2,11 @@
# This file requires config/initializers/1_settings.rb
+if Gitlab.config.gitlab.allowed_hosts.present?
+ Rails.application.config.hosts << Gitlab.config.gitlab.host << 'unix'
+ Rails.application.config.hosts += Gitlab.config.gitlab.allowed_hosts
+end
+
if Rails.env.development?
Rails.application.config.hosts += [Gitlab.config.gitlab.host, 'unix', 'host.docker.internal']
diff --git a/config/initializers/validate_puma.rb b/config/initializers/validate_puma.rb
index 9723765d00f..b8a237f3c15 100644
--- a/config/initializers/validate_puma.rb
+++ b/config/initializers/validate_puma.rb
@@ -1,9 +1,5 @@
# frozen_string_literal: true
-def max_puma_workers
- Puma.cli_config.options[:workers].to_i
-end
-
if Gitlab::Runtime.puma? && !Gitlab::Runtime.puma_in_clustered_mode?
raise 'Puma is only supported in Clustered mode (workers > 0)' if Gitlab.com?
diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb
index 7da1779f87b..aaf019f6d27 100644
--- a/config/initializers/zz_metrics.rb
+++ b/config/initializers/zz_metrics.rb
@@ -143,6 +143,7 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
# These are manually require'd so the classes are registered properly with
# ActiveSupport.
+ require_dependency 'gitlab/metrics/subscribers/action_cable'
require_dependency 'gitlab/metrics/subscribers/action_view'
require_dependency 'gitlab/metrics/subscribers/active_record'
require_dependency 'gitlab/metrics/subscribers/rails_cache'