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-07-20 12:55:51 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 12:55:51 +0300
commite8d2c2579383897a1dd7f9debd359abe8ae8373d (patch)
treec42be41678c2586d49a75cabce89322082698334 /config/initializers
parentfc845b37ec3a90aaa719975f607740c22ba6a113 (diff)
Add latest changes from gitlab-org/gitlab@14-1-stable-eev14.1.0-rc42
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/0_migration_paths_additional.rb (renamed from config/initializers/0_post_deployment_migrations.rb)3
-rw-r--r--config/initializers/1_settings.rb28
-rw-r--r--config/initializers/7_prometheus_metrics.rb12
-rw-r--r--config/initializers/7_redis.rb2
-rw-r--r--config/initializers/9_runtime_identify.rb (renamed from config/initializers/0_runtime_identify.rb)2
-rw-r--r--config/initializers/active_record_build_select.rb6
-rw-r--r--config/initializers/active_record_force_reconnects.rb3
-rw-r--r--config/initializers/asciidoctor_patch.rb20
-rw-r--r--config/initializers/attr_encrypted_no_db_connection.rb16
-rw-r--r--config/initializers/check_decomposition_database_config.rb7
-rw-r--r--config/initializers/gitlab_experiment.rb15
-rw-r--r--config/initializers/global_id.rb2
-rw-r--r--config/initializers/postgres_partitioning.rb10
-rw-r--r--config/initializers/rspec_profiling.rb2
-rw-r--r--config/initializers/zz_metrics.rb10
15 files changed, 80 insertions, 58 deletions
diff --git a/config/initializers/0_post_deployment_migrations.rb b/config/initializers/0_migration_paths_additional.rb
index dabb82c8525..bf0c36e9bb6 100644
--- a/config/initializers/0_post_deployment_migrations.rb
+++ b/config/initializers/0_migration_paths_additional.rb
@@ -1,5 +1,8 @@
# frozen_string_literal: true
+# Because we use Gitlab::Database, which in turn uses prepend_mod_with,
+# we need this intializer to be after config/initializers/0_inject_enterprise_edition_module.rb.
+
# Post deployment migrations are included by default. This file must be loaded
# before other initializers as Rails may otherwise memoize a list of migrations
# excluding the post deployment migrations.
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index e311a364977..42c7063378b 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -222,7 +222,6 @@ Gitlab.ee do
Settings.gitlab['mirror_max_delay'] ||= 300
Settings.gitlab['mirror_max_capacity'] ||= 30
Settings.gitlab['mirror_capacity_threshold'] ||= 15
- Settings.gitlab['seat_link_enabled'] = true if Settings.gitlab['seat_link_enabled'].nil?
end
#
@@ -499,9 +498,9 @@ Settings.cron_jobs['jira_import_stuck_jira_import_jobs']['job_class'] = 'Gitlab:
Settings.cron_jobs['stuck_export_jobs_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_export_jobs_worker']['cron'] ||= '30 * * * *'
Settings.cron_jobs['stuck_export_jobs_worker']['job_class'] = 'StuckExportJobsWorker'
-Settings.cron_jobs['gitlab_usage_ping_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['gitlab_usage_ping_worker']['cron'] ||= nil # This is dynamically loaded in the sidekiq initializer
-Settings.cron_jobs['gitlab_usage_ping_worker']['job_class'] = 'GitlabUsagePingWorker'
+Settings.cron_jobs['gitlab_service_ping_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['gitlab_service_ping_worker']['cron'] ||= nil # This is dynamically loaded in the sidekiq initializer
+Settings.cron_jobs['gitlab_service_ping_worker']['job_class'] = 'GitlabServicePingWorker'
Settings.cron_jobs['stuck_merge_jobs_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_merge_jobs_worker']['cron'] ||= '0 */2 * * *'
Settings.cron_jobs['stuck_merge_jobs_worker']['job_class'] = 'StuckMergeJobsWorker'
@@ -541,9 +540,9 @@ Settings.cron_jobs['authorized_project_update_periodic_recalculate_worker']['job
Settings.cron_jobs['update_container_registry_info_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['update_container_registry_info_worker']['cron'] ||= '0 0 * * *'
Settings.cron_jobs['update_container_registry_info_worker']['job_class'] = 'UpdateContainerRegistryInfoWorker'
-Settings.cron_jobs['postgres_dynamic_partitions_creator'] ||= Settingslogic.new({})
-Settings.cron_jobs['postgres_dynamic_partitions_creator']['cron'] ||= '21 */6 * * *'
-Settings.cron_jobs['postgres_dynamic_partitions_creator']['job_class'] ||= 'PartitionCreationWorker'
+Settings.cron_jobs['postgres_dynamic_partitions_manager'] ||= Settingslogic.new({})
+Settings.cron_jobs['postgres_dynamic_partitions_manager']['cron'] ||= '21 */6 * * *'
+Settings.cron_jobs['postgres_dynamic_partitions_manager']['job_class'] ||= 'Database::PartitionManagementWorker'
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'
@@ -583,7 +582,7 @@ Settings.cron_jobs['batched_background_migrations_worker']['job_class'] = 'Datab
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 1 * * *'
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 * * *'
@@ -642,6 +641,9 @@ Gitlab.ee do
Settings.cron_jobs['incident_management_persist_oncall_rotation_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['incident_management_persist_oncall_rotation_worker']['cron'] ||= '*/5 * * * *'
Settings.cron_jobs['incident_management_persist_oncall_rotation_worker']['job_class'] = 'IncidentManagement::OncallRotations::PersistAllRotationsShiftsJob'
+ Settings.cron_jobs['incident_management_schedule_escalation_check_worker'] ||= Settingslogic.new({})
+ Settings.cron_jobs['incident_management_schedule_escalation_check_worker']['cron'] ||= '*/1 * * * *'
+ Settings.cron_jobs['incident_management_schedule_escalation_check_worker']['job_class'] = 'IncidentManagement::PendingEscalations::ScheduleCheckCronWorker'
Settings.cron_jobs['import_software_licenses_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['import_software_licenses_worker']['cron'] ||= '0 3 * * 0'
Settings.cron_jobs['import_software_licenses_worker']['job_class'] = 'ImportSoftwareLicensesWorker'
@@ -791,6 +793,7 @@ Settings.backup['upload']['multipart_chunk_size'] ||= 104857600
Settings.backup['upload']['encryption'] ||= nil
Settings.backup['upload']['encryption_key'] ||= ENV['GITLAB_BACKUP_ENCRYPTION_KEY']
Settings.backup['upload']['storage_class'] ||= nil
+Settings.backup['gitaly_backup_path'] ||= Gitlab::Utils.which('gitaly-backup')
#
# Pseudonymizer
@@ -915,13 +918,8 @@ 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']
+Settings.prometheus['enabled'] ||= false
+Settings.prometheus['server_address'] ||= nil
#
# Shutdown settings
diff --git a/config/initializers/7_prometheus_metrics.rb b/config/initializers/7_prometheus_metrics.rb
index 8dee21016f9..fc69ae7b077 100644
--- a/config/initializers/7_prometheus_metrics.rb
+++ b/config/initializers/7_prometheus_metrics.rb
@@ -1,7 +1,5 @@
# frozen_string_literal: true
-require 'prometheus/client'
-
# Keep separate directories for separate processes
def prometheus_default_multiproc_dir
return unless Rails.env.development? || Rails.env.test?
@@ -15,14 +13,14 @@ def prometheus_default_multiproc_dir
end
end
-Prometheus::Client.configure do |config|
+::Prometheus::Client.configure do |config|
config.logger = Gitlab::AppLogger
config.initial_mmap_file_size = 4 * 1024
config.multiprocess_files_dir = ENV['prometheus_multiproc_dir'] || prometheus_default_multiproc_dir
- config.pid_provider = Prometheus::PidProvider.method(:worker_id)
+ config.pid_provider = ::Prometheus::PidProvider.method(:worker_id)
end
Gitlab::Application.configure do |config|
@@ -43,7 +41,7 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
# Thus, we order these events to run `reinitialize_on_pid_change` with `force: true` first.
Gitlab::Cluster::LifecycleEvents.on_master_start do
# Ensure that stale Prometheus metrics don't accumulate over time
- Prometheus::CleanupMultiprocDirService.new.execute
+ ::Prometheus::CleanupMultiprocDirService.new.execute
::Prometheus::Client.reinitialize_on_pid_change(force: true)
@@ -51,7 +49,7 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
Gitlab::Metrics::Samplers::PumaSampler.instance.start
end
- Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION }, 1)
+ Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION, revision: Gitlab.revision }, 1)
unless Gitlab::Runtime.sidekiq?
Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics
@@ -64,7 +62,7 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
end
Gitlab::Cluster::LifecycleEvents.on_worker_start do
- defined?(::Prometheus::Client.reinitialize_on_pid_change) && Prometheus::Client.reinitialize_on_pid_change
+ defined?(::Prometheus::Client.reinitialize_on_pid_change) && ::Prometheus::Client.reinitialize_on_pid_change
Gitlab::Metrics::Samplers::RubySampler.initialize_instance.start
Gitlab::Metrics::Samplers::DatabaseSampler.initialize_instance.start
diff --git a/config/initializers/7_redis.rb b/config/initializers/7_redis.rb
index fe37dfd7579..84aa231089b 100644
--- a/config/initializers/7_redis.rb
+++ b/config/initializers/7_redis.rb
@@ -1,5 +1,7 @@
# frozen_string_literal: true
+Redis::Client.prepend(Gitlab::Instrumentation::RedisInterceptor)
+
# Make sure we initialize a Redis connection pool before multi-threaded
# execution starts by
# 1. Sidekiq
diff --git a/config/initializers/0_runtime_identify.rb b/config/initializers/9_runtime_identify.rb
index e6be19ffb79..c5efc9b17cb 100644
--- a/config/initializers/0_runtime_identify.rb
+++ b/config/initializers/9_runtime_identify.rb
@@ -7,7 +7,7 @@ rescue Gitlab::Runtime::IdentificationError => e
\n!! RUNTIME IDENTIFICATION FAILED: #{e}
Runtime based configuration settings may not work properly.
If you continue to see this error, please file an issue via
- https://gitlab.com/gitlab-org/gitlab/issues/new
+ https://gitlab.com/gitlab-org/gitlab/-/issues/new
NOTICE
Gitlab::AppLogger.error(message)
Gitlab::ErrorTracking.track_exception(e)
diff --git a/config/initializers/active_record_build_select.rb b/config/initializers/active_record_build_select.rb
index ab5a872cac6..48f1b1ee407 100644
--- a/config/initializers/active_record_build_select.rb
+++ b/config/initializers/active_record_build_select.rb
@@ -9,6 +9,10 @@
# statement cache. If a different migration is then run and one of these columns is
# removed in the meantime, the query is invalid.
+ActiveRecord::Base.class_eval do
+ class_attribute :enumerate_columns_in_select_statements
+end
+
module ActiveRecord
module QueryMethods
private
@@ -16,6 +20,8 @@ module ActiveRecord
def build_select(arel)
if select_values.any?
arel.project(*arel_columns(select_values.uniq))
+ elsif klass.enumerate_columns_in_select_statements
+ arel.project(*klass.column_names.map { |field| table[field] })
else
arel.project(@klass.arel_table[Arel.star])
end
diff --git a/config/initializers/active_record_force_reconnects.rb b/config/initializers/active_record_force_reconnects.rb
index 73dfaf5e121..ff264a55ad2 100644
--- a/config/initializers/active_record_force_reconnects.rb
+++ b/config/initializers/active_record_force_reconnects.rb
@@ -1,7 +1,8 @@
# frozen_string_literal: true
Gitlab::Database::ConnectionTimer.configure do |config|
- config.interval = Rails.application.config_for(:database)[:force_reconnect_interval]
+ configuration_hash = ActiveRecord::Base.configurations.find_db_config(Rails.env).configuration_hash
+ config.interval = configuration_hash[:force_reconnect_interval]
end
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(Gitlab::Database::PostgresqlAdapter::ForceDisconnectableMixin)
diff --git a/config/initializers/asciidoctor_patch.rb b/config/initializers/asciidoctor_patch.rb
deleted file mode 100644
index b7da50db77c..00000000000
--- a/config/initializers/asciidoctor_patch.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# frozen_string_literal: true
-
-# Ensure that locked attributes can not be changed using a counter.
-# TODO: this can be removed once `asciidoctor` gem is > 2.0.12
-# and https://github.com/asciidoctor/asciidoctor/issues/3939 is merged
-module Asciidoctor
- module DocumentPatch
- def counter(name, seed = nil)
- return @parent_document.counter(name, seed) if @parent_document # rubocop: disable Gitlab/ModuleWithInstanceVariables
-
- unless attribute_locked? name
- super
- end
- end
- end
-end
-
-class Asciidoctor::Document
- prepend Asciidoctor::DocumentPatch
-end
diff --git a/config/initializers/attr_encrypted_no_db_connection.rb b/config/initializers/attr_encrypted_no_db_connection.rb
index f8d0effbbad..91eef7d0a5c 100644
--- a/config/initializers/attr_encrypted_no_db_connection.rb
+++ b/config/initializers/attr_encrypted_no_db_connection.rb
@@ -27,6 +27,22 @@ module AttrEncrypted
AttrEncrypted.instance_method(:attribute_instance_methods_as_symbols).bind(self).call
end
end
+
+ protected
+
+ # The attr_encrypted gem is not actively maintained
+ # At the same time it contains the code that raises kwargs deprecation warnings:
+ # https://github.com/attr-encrypted/attr_encrypted/blob/master/lib/attr_encrypted/adapters/active_record.rb#L65
+ #
+ def attr_encrypted(*attrs)
+ super
+
+ attr = attrs.first
+
+ redefine_method(:"#{attr}_changed?") do |**options|
+ attribute_changed?(attr, **options)
+ end
+ end
end
end
end
diff --git a/config/initializers/check_decomposition_database_config.rb b/config/initializers/check_decomposition_database_config.rb
new file mode 100644
index 00000000000..f32c72efa75
--- /dev/null
+++ b/config/initializers/check_decomposition_database_config.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+ci_db_config = Gitlab::Application.config.database_configuration[Rails.env]["ci"]
+
+if ci_db_config.present?
+ raise "migrations_paths setting for ci database must be `db/ci_migrate`" unless ci_db_config["migrations_paths"] == 'db/ci_migrate'
+end
diff --git a/config/initializers/gitlab_experiment.rb b/config/initializers/gitlab_experiment.rb
index 055979bb66b..40c706ea922 100644
--- a/config/initializers/gitlab_experiment.rb
+++ b/config/initializers/gitlab_experiment.rb
@@ -2,16 +2,15 @@
Gitlab::Experiment.configure do |config|
config.base_class = 'ApplicationExperiment'
+ config.mount_at = '/-/experiment'
config.cache = Gitlab::Experiment::Cache::RedisHashStore.new(
pool: ->(&block) { Gitlab::Redis::SharedState.with { |redis| block.call(redis) } }
)
-
- # TODO: This will be deprecated as of v0.6.0, but needs to stay intact for
- # actively running experiments until a versioning concept is put in place to
- # enable migrating into the new SHA2 strategy.
- config.context_hash_strategy = lambda do |source, seed|
- source = source.keys + source.values if source.is_a?(Hash)
- data = Array(source).map { |v| (v.respond_to?(:to_global_id) ? v.to_global_id : v).to_s }
- Digest::MD5.hexdigest(data.unshift(seed).join('|'))
+ config.tracking_behavior = lambda do |action, event_args|
+ Gitlab::Tracking.event(name, action.to_s, **event_args.merge(
+ context: (event_args[:context] || []) << SnowplowTracker::SelfDescribingJson.new(
+ 'iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-0', signature
+ )
+ ))
end
end
diff --git a/config/initializers/global_id.rb b/config/initializers/global_id.rb
index 8f1b8f2aeeb..c3ab9f10c08 100644
--- a/config/initializers/global_id.rb
+++ b/config/initializers/global_id.rb
@@ -1,3 +1,3 @@
# frozen_string_literal: true
-GlobalID.prepend(Gitlab::Patch::GlobalID)
+GlobalID.prepend(Gitlab::Patch::GlobalId)
diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb
index 787e46c2405..d4be1e7670d 100644
--- a/config/initializers/postgres_partitioning.rb
+++ b/config/initializers/postgres_partitioning.rb
@@ -3,11 +3,15 @@
# Make sure we have loaded partitioned models here
# (even with eager loading disabled).
-Gitlab::Database::Partitioning::PartitionCreator.register(AuditEvent)
-Gitlab::Database::Partitioning::PartitionCreator.register(WebHookLog)
+Gitlab::Database::Partitioning::PartitionManager.register(AuditEvent)
+Gitlab::Database::Partitioning::PartitionManager.register(WebHookLog)
+
+if Gitlab.ee?
+ Gitlab::Database::Partitioning::PartitionManager.register(IncidentManagement::PendingEscalations::Alert)
+end
begin
- Gitlab::Database::Partitioning::PartitionCreator.new.create_partitions unless ENV['DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP']
+ Gitlab::Database::Partitioning::PartitionManager.new.sync_partitions unless ENV['DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP']
rescue ActiveRecord::ActiveRecordError, PG::Error
# ignore - happens when Rake tasks yet have to create a database, e.g. for testing
end
diff --git a/config/initializers/rspec_profiling.rb b/config/initializers/rspec_profiling.rb
index 1288fad8a94..5edea6489ed 100644
--- a/config/initializers/rspec_profiling.rb
+++ b/config/initializers/rspec_profiling.rb
@@ -61,7 +61,7 @@ RspecProfiling.configure do |config|
RspecProfiling::Run.prepend(RspecProfilingExt::Run)
config.collector = RspecProfilingExt::Collectors::CSVWithTimestamps
config.csv_path = -> do
- prefix = "#{ENV['CI_JOB_NAME']}-".gsub(/[ \/]/, '-') if ENV['CI_JOB_NAME']
+ prefix = "#{ENV['CI_JOB_NAME']}-".gsub(%r{[ /]}, '-') if ENV['CI_JOB_NAME']
"rspec_profiling/#{prefix}#{Time.now.to_i}-#{SecureRandom.hex(8)}-rspec-data.csv"
end
end
diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb
index aaf019f6d27..e352ff5090a 100644
--- a/config/initializers/zz_metrics.rb
+++ b/config/initializers/zz_metrics.rb
@@ -149,7 +149,15 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
require_dependency 'gitlab/metrics/subscribers/rails_cache'
Gitlab::Application.configure do |config|
- config.middleware.use(Gitlab::Metrics::RackMiddleware)
+ # We want to track certain metrics during the Load Balancing host resolving process.
+ # Because of that, we need to have metrics code available earlier for Load Balancing.
+ if Gitlab::Database::LoadBalancing.enable?
+ config.middleware.insert_before Gitlab::Database::LoadBalancing::RackMiddleware,
+ Gitlab::Metrics::RackMiddleware
+ else
+ config.middleware.use(Gitlab::Metrics::RackMiddleware)
+ end
+
config.middleware.use(Gitlab::Middleware::RailsQueueDuration)
config.middleware.use(Gitlab::Metrics::ElasticsearchRackMiddleware)
end