diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
commit | f64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch) | |
tree | a2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /config/initializers | |
parent | bfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (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.rb | 15 | ||||
-rw-r--r-- | config/initializers/1_settings.rb | 15 | ||||
-rw-r--r-- | config/initializers/doorkeeper.rb | 6 | ||||
-rw-r--r-- | config/initializers/gitlab_experiment.rb | 4 | ||||
-rw-r--r-- | config/initializers/postgres_partitioning.rb | 1 | ||||
-rw-r--r-- | config/initializers/rack_multipart_patch.rb | 44 | ||||
-rw-r--r-- | config/initializers/rails_host_authorization.rb | 5 | ||||
-rw-r--r-- | config/initializers/validate_puma.rb | 4 | ||||
-rw-r--r-- | config/initializers/zz_metrics.rb | 1 |
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' |