diff options
Diffstat (limited to 'config/initializers')
-rw-r--r-- | config/initializers/1_settings.rb | 24 | ||||
-rw-r--r-- | config/initializers/6_validations.rb | 2 | ||||
-rw-r--r-- | config/initializers/7_redis.rb | 2 | ||||
-rw-r--r-- | config/initializers/active_record_relation_union_reset.rb | 36 | ||||
-rw-r--r-- | config/initializers/click_house.rb | 4 | ||||
-rw-r--r-- | config/initializers/database_query_analyzers.rb | 5 | ||||
-rw-r--r-- | config/initializers/doorkeeper_openid_connect.rb | 24 | ||||
-rw-r--r-- | config/initializers/peek.rb | 3 | ||||
-rw-r--r-- | config/initializers/postgres_partitioning.rb | 3 | ||||
-rw-r--r-- | config/initializers/postgresql_cte.rb | 1 | ||||
-rw-r--r-- | config/initializers/sidekiq.rb | 11 | ||||
-rw-r--r-- | config/initializers/zz_metrics.rb | 4 |
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 |