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:
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/1_settings.rb24
-rw-r--r--config/initializers/6_validations.rb2
-rw-r--r--config/initializers/7_redis.rb2
-rw-r--r--config/initializers/active_record_relation_union_reset.rb36
-rw-r--r--config/initializers/click_house.rb4
-rw-r--r--config/initializers/database_query_analyzers.rb5
-rw-r--r--config/initializers/doorkeeper_openid_connect.rb24
-rw-r--r--config/initializers/peek.rb3
-rw-r--r--config/initializers/postgres_partitioning.rb3
-rw-r--r--config/initializers/postgresql_cte.rb1
-rw-r--r--config/initializers/sidekiq.rb11
-rw-r--r--config/initializers/zz_metrics.rb4
12 files changed, 68 insertions, 51 deletions
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 50d26236a29..e4fd776f066 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -511,6 +511,9 @@ Settings.cron_jobs['import_export_project_cleanup_worker']['job_class'] = 'Impor
Settings.cron_jobs['ci_archive_traces_cron_worker'] ||= {}
Settings.cron_jobs['ci_archive_traces_cron_worker']['cron'] ||= '17 * * * *'
Settings.cron_jobs['ci_archive_traces_cron_worker']['job_class'] = 'Ci::ArchiveTracesCronWorker'
+Settings.cron_jobs['members_expiring_worker'] ||= {}
+Settings.cron_jobs['members_expiring_worker']['cron'] ||= '0 1 * * *'
+Settings.cron_jobs['members_expiring_worker']['job_class'] = 'Members::ExpiringWorker'
Settings.cron_jobs['remove_expired_members_worker'] ||= {}
Settings.cron_jobs['remove_expired_members_worker']['cron'] ||= '10 0 * * *'
Settings.cron_jobs['remove_expired_members_worker']['job_class'] = 'RemoveExpiredMembersWorker'
@@ -661,6 +664,9 @@ Settings.cron_jobs['inactive_projects_deletion_cron_worker']['job_class'] = 'Pro
Settings.cron_jobs['loose_foreign_keys_cleanup_worker'] ||= {}
Settings.cron_jobs['loose_foreign_keys_cleanup_worker']['cron'] ||= '*/1 * * * *'
Settings.cron_jobs['loose_foreign_keys_cleanup_worker']['job_class'] = 'LooseForeignKeys::CleanupWorker'
+Settings.cron_jobs['batched_git_ref_updates_cleanup_scheduler_worker'] ||= {}
+Settings.cron_jobs['batched_git_ref_updates_cleanup_scheduler_worker']['cron'] ||= '*/1 * * * *'
+Settings.cron_jobs['batched_git_ref_updates_cleanup_scheduler_worker']['job_class'] = 'BatchedGitRefUpdates::CleanupSchedulerWorker'
Settings.cron_jobs['ci_runner_versions_reconciliation_worker'] ||= {}
Settings.cron_jobs['ci_runner_versions_reconciliation_worker']['cron'] ||= '@daily'
Settings.cron_jobs['ci_runner_versions_reconciliation_worker']['job_class'] = 'Ci::Runners::ReconcileExistingRunnerVersionsCronWorker'
@@ -682,6 +688,9 @@ Settings.cron_jobs['global_metrics_update_worker']['job_class'] ||= 'Metrics::Gl
Settings.cron_jobs['object_storage_delete_stale_direct_uploads_worker'] ||= {}
Settings.cron_jobs['object_storage_delete_stale_direct_uploads_worker']['cron'] ||= '*/6 * * * *'
Settings.cron_jobs['object_storage_delete_stale_direct_uploads_worker']['job_class'] = 'ObjectStorage::DeleteStaleDirectUploadsWorker'
+Settings.cron_jobs['service_desk_custom_email_verification_cleanup'] ||= {}
+Settings.cron_jobs['service_desk_custom_email_verification_cleanup']['cron'] ||= '*/2 * * * *'
+Settings.cron_jobs['service_desk_custom_email_verification_cleanup']['job_class'] = 'ServiceDesk::CustomEmailVerificationCleanupWorker'
Gitlab.ee do
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker'] ||= {}
@@ -783,6 +792,9 @@ Gitlab.ee do
Settings.cron_jobs['search_index_curation_worker'] ||= {}
Settings.cron_jobs['search_index_curation_worker']['cron'] ||= '*/1 * * * *'
Settings.cron_jobs['search_index_curation_worker']['job_class'] ||= 'Search::IndexCurationWorker'
+ Settings.cron_jobs['pause_control_resume_worker'] ||= {}
+ Settings.cron_jobs['pause_control_resume_worker']['cron'] ||= '*/5 * * * *'
+ Settings.cron_jobs['pause_control_resume_worker']['job_class'] ||= 'PauseControl::ResumeWorker'
Settings.cron_jobs['sync_seat_link_worker'] ||= {}
Settings.cron_jobs['sync_seat_link_worker']['cron'] ||= "#{rand(60)} #{rand(3..4)} * * * UTC"
Settings.cron_jobs['sync_seat_link_worker']['job_class'] = 'SyncSeatLinkWorker'
@@ -869,6 +881,9 @@ Gitlab.ee do
Settings.cron_jobs['gitlab_subscriptions_schedule_refresh_seats_worker'] ||= {}
Settings.cron_jobs['gitlab_subscriptions_schedule_refresh_seats_worker']['cron'] ||= "0 */6 * * *"
Settings.cron_jobs['gitlab_subscriptions_schedule_refresh_seats_worker']['job_class'] = 'GitlabSubscriptions::ScheduleRefreshSeatsWorker'
+ Settings.cron_jobs['click_house_events_sync_worker'] ||= {}
+ Settings.cron_jobs['click_house_events_sync_worker']['cron'] ||= "*/3 * * * *"
+ Settings.cron_jobs['click_house_events_sync_worker']['job_class'] = 'ClickHouse::EventsSyncWorker'
end
end
@@ -924,6 +939,15 @@ Gitlab.ee do
end
#
+# Zoekt credentials
+#
+Gitlab.ee do
+ Settings['zoekt'] ||= {}
+ Settings.zoekt['username_file'] ||= Rails.root.join('.gitlab_zoekt_username')
+ Settings.zoekt['password_file'] ||= Rails.root.join('.gitlab_zoekt_password')
+end
+
+#
# Repositories
#
Settings['repositories'] ||= {}
diff --git a/config/initializers/6_validations.rb b/config/initializers/6_validations.rb
index 060b04be824..a6a91538840 100644
--- a/config/initializers/6_validations.rb
+++ b/config/initializers/6_validations.rb
@@ -10,7 +10,7 @@ def validate_storages_config
end
Gitlab.config.repositories.storages.keys.each do |name|
- unless /\A[a-zA-Z0-9\-_]+\z/.match?(name)
+ unless /\A[a-zA-Z0-9\-_.]+\z/.match?(name)
storage_validation_error("\"#{name}\" is not a valid storage name")
end
end
diff --git a/config/initializers/7_redis.rb b/config/initializers/7_redis.rb
index b66a5e70f56..060d0a8a67b 100644
--- a/config/initializers/7_redis.rb
+++ b/config/initializers/7_redis.rb
@@ -23,6 +23,8 @@ end
Redis::Client.prepend(Gitlab::Instrumentation::RedisInterceptor)
Redis::Cluster::NodeLoader.prepend(Gitlab::Patch::NodeLoader)
+Redis::Cluster::SlotLoader.prepend(Gitlab::Patch::SlotLoader)
+Redis::Cluster::CommandLoader.prepend(Gitlab::Patch::CommandLoader)
Redis::Cluster.prepend(Gitlab::Patch::RedisCluster)
# Make sure we initialize a Redis connection pool before multi-threaded
diff --git a/config/initializers/active_record_relation_union_reset.rb b/config/initializers/active_record_relation_union_reset.rb
deleted file mode 100644
index b8b3d634a61..00000000000
--- a/config/initializers/active_record_relation_union_reset.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-module ActiveRecordRelationUnionReset
- MAX_RESET_PERIOD = 10.minutes
-
- def exec_queries
- super
- rescue ActiveRecord::StatementInvalid => e
- if reset_on_statement_invalid?(e)
- class_to_be_reset = klass.base_class
-
- class_to_be_reset.reset_column_information
- Gitlab::ErrorTracking.log_exception(e, { reset_model_name: class_to_be_reset.name })
-
- class_to_be_reset.previous_reset_columns_from_error = Time.now
- end
-
- raise
- end
-
- private
-
- def reset_on_statement_invalid?(exception)
- return false unless exception.message.include?("each UNION query must have the same number of columns")
-
- return false if klass.base_class.previous_reset_columns_from_error? &&
- klass.base_class.previous_reset_columns_from_error > MAX_RESET_PERIOD.ago
-
- Feature.enabled?(:reset_column_information_on_statement_invalid, type: :ops)
- end
-end
-
-ActiveSupport.on_load(:active_record) do
- ActiveRecord::Base.class_attribute :previous_reset_columns_from_error
- ActiveRecord::Relation.prepend(ActiveRecordRelationUnionReset)
-end
diff --git a/config/initializers/click_house.rb b/config/initializers/click_house.rb
index c1bec683c6b..481942d775e 100644
--- a/config/initializers/click_house.rb
+++ b/config/initializers/click_house.rb
@@ -21,11 +21,11 @@ ClickHouse::Client.configure do |config|
config.http_post_proc = ->(url, headers, body) do
options = {
headers: headers,
- body: body,
+ body: ActiveSupport::Gzip.compress(body),
allow_local_requests: Rails.env.development? || Rails.env.test?
}
response = Gitlab::HTTP.post(url, options)
- ClickHouse::Client::Response.new(response.body, response.code)
+ ClickHouse::Client::Response.new(response.body, response.code, response.headers)
end
end
diff --git a/config/initializers/database_query_analyzers.rb b/config/initializers/database_query_analyzers.rb
index ad6ed20b94d..5c2f3caf89e 100644
--- a/config/initializers/database_query_analyzers.rb
+++ b/config/initializers/database_query_analyzers.rb
@@ -9,10 +9,7 @@ Gitlab::Database::QueryAnalyzer.instance.tap do |query_analyzer|
analyzers.append(::Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification)
analyzers.append(::Gitlab::Database::QueryAnalyzers::Ci::PartitioningRoutingAnalyzer)
- if Gitlab.dev_or_test_env?
- analyzers.append(::Gitlab::Database::QueryAnalyzers::GitlabSchemasValidateConnection)
- analyzers.append(::Gitlab::Database::QueryAnalyzers::QueryRecorder)
- end
+ analyzers.append(::Gitlab::Database::QueryAnalyzers::GitlabSchemasValidateConnection) if Gitlab.dev_or_test_env?
end
end
diff --git a/config/initializers/doorkeeper_openid_connect.rb b/config/initializers/doorkeeper_openid_connect.rb
index 1a315feca7e..6e59453e5f1 100644
--- a/config/initializers/doorkeeper_openid_connect.rb
+++ b/config/initializers/doorkeeper_openid_connect.rb
@@ -58,16 +58,30 @@ Doorkeeper::OpenidConnect.configure do
o.claim(:website, response: [:id_token, :user_info]) { |user| user.full_website_url if user.website_url.present? }
o.claim(:profile, response: [:id_token, :user_info]) { |user| Gitlab::Routing.url_helpers.user_url user }
o.claim(:picture, response: [:id_token, :user_info]) { |user| user.avatar_url(only_path: false) }
- o.claim(:groups) { |user| user.membership_groups.joins(:route).with_route.map(&:full_path) }
- o.claim(:groups_direct, response: [:id_token]) { |user| user.groups.joins(:route).with_route.map(&:full_path) }
+ o.claim(:groups) do |user|
+ user.membership_groups.joins(:route).with_route
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .map(&:full_path)
+ end
+ o.claim(:groups_direct, response: [:id_token]) do |user|
+ user.groups.joins(:route).with_route
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .map(&:full_path)
+ end
o.claim('https://gitlab.org/claims/groups/owner') do |user|
- user.owned_groups.joins(:route).with_route.map(&:full_path).presence
+ user.owned_groups.joins(:route).with_route
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .map(&:full_path).presence
end
o.claim('https://gitlab.org/claims/groups/maintainer') do |user|
- user.maintainers_groups.joins(:route).with_route.map(&:full_path).presence
+ user.maintainers_groups.joins(:route).with_route
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .map(&:full_path).presence
end
o.claim('https://gitlab.org/claims/groups/developer') do |user|
- user.developer_groups.joins(:route).with_route.map(&:full_path).presence
+ user.developer_groups.joins(:route).with_route
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420046")
+ .map(&:full_path).presence
end
end
end
diff --git a/config/initializers/peek.rb b/config/initializers/peek.rb
index 89fd17a4ab8..6ac116f46f5 100644
--- a/config/initializers/peek.rb
+++ b/config/initializers/peek.rb
@@ -6,7 +6,7 @@ Peek::Adapters::Redis.prepend ::Gitlab::PerformanceBar::RedisAdapterWhenPeekEnab
Peek.singleton_class.prepend ::Gitlab::PerformanceBar::WithTopLevelWarnings
Rails.application.config.peek.adapter = :redis, {
- client: Gitlab::Redis::Cache.multistore_redis, # to be reverted after MultiStore in Cache is removed
+ client: ::Redis.new(Gitlab::Redis::Cache.params),
expires_in: 5.minutes
}
@@ -18,6 +18,7 @@ Peek.into Peek::Views::Elasticsearch
Peek.into Peek::Views::Zoekt
Peek.into Peek::Views::Rugged
Peek.into Peek::Views::ExternalHttp
+Peek.into Peek::Views::ClickHouse
Peek.into Peek::Views::BulletDetailed if defined?(Bullet)
Peek.into Peek::Views::Memory
diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb
index 1fbe038f0bd..bfd737baec9 100644
--- a/config/initializers/postgres_partitioning.rb
+++ b/config/initializers/postgres_partitioning.rb
@@ -7,7 +7,8 @@ Gitlab::Database::Partitioning.register_models(
LooseForeignKeys::DeletedRecord,
Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog,
Ci::RunnerManagerBuild,
- Ci::JobAnnotation
+ Ci::JobAnnotation,
+ BatchedGitRefUpdates::Deletion
])
if Gitlab.ee?
diff --git a/config/initializers/postgresql_cte.rb b/config/initializers/postgresql_cte.rb
index 7d00776e460..7f0196197b9 100644
--- a/config/initializers/postgresql_cte.rb
+++ b/config/initializers/postgresql_cte.rb
@@ -53,6 +53,7 @@ module ActiveRecord
def recursive(*args)
@scope.with_values += args
@scope.recursive_value = true
+ @scope.extend(Gitlab::Database::ReadOnlyRelation)
@scope
end
end
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 2b47455f17f..03bdc6cf47a 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -29,7 +29,10 @@ end
# Custom Queues configuration
queues_config_hash = Gitlab::Redis::Queues.params
-queues_config_hash[:namespace] = Gitlab::Redis::Queues::SIDEKIQ_NAMESPACE
+
+unless Gitlab::Utils.to_boolean(ENV['SIDEKIQ_ENQUEUE_NON_NAMESPACED'])
+ queues_config_hash[:namespace] = Gitlab::Redis::Queues::SIDEKIQ_NAMESPACE
+end
enable_json_logs = Gitlab.config.sidekiq.log_format == 'json'
@@ -86,6 +89,12 @@ Sidekiq.configure_server do |config|
end
if enable_reliable_fetch?
+ if Gitlab::Utils.to_boolean(ENV['SIDEKIQ_POLL_NON_NAMESPACED'])
+ # set non-namespaced store for fetcher to poll both namespaced and non-namespaced queues
+ config[:alternative_store] = ::Gitlab::Redis::Queues
+ config[:namespace] = Gitlab::Redis::Queues::SIDEKIQ_NAMESPACE
+ end
+
config[:semi_reliable_fetch] = enable_semi_reliable_fetch_mode?
Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
end
diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb
index 9074602a555..a7cc5b0c7d2 100644
--- a/config/initializers/zz_metrics.rb
+++ b/config/initializers/zz_metrics.rb
@@ -23,6 +23,9 @@ if Gitlab::Metrics.enabled? && Gitlab::Runtime.application?
config.middleware.insert_before Gitlab::Database::LoadBalancing::RackMiddleware,
Gitlab::Middleware::RailsQueueDuration
+ config.middleware.move_after Gitlab::Metrics::RackMiddleware,
+ Gitlab::EtagCaching::Middleware
+
config.middleware.use(Gitlab::Metrics::ElasticsearchRackMiddleware)
end
@@ -32,6 +35,7 @@ if Gitlab::Metrics.enabled? && Gitlab::Runtime.application?
elsif Gitlab::Runtime.sidekiq?
Gitlab::Metrics::GlobalSearchIndexingSlis.initialize_slis! if Gitlab.ee?
Gitlab::Metrics::LooseForeignKeysSlis.initialize_slis!
+ Gitlab::Metrics::Llm.initialize_slis! if Gitlab.ee?
end
GC::Profiler.enable