gitlab/config
Etienne Baqué 66abfcb84b Merge branch '343173-move-creation-of-external-cross-references-into-background-worker' into 'master'
Move creation of external cross-references into background worker

See merge request gitlab-org/gitlab!72794
2021-11-10 19:15:57 +00:00
..
environments Enable real-time issue assignees by default 2021-10-27 16:53:14 +08:00
events
feature_flags Merge branch '330846-convert-package-list-page-to-use-apollo-graphql' into 'master' 2021-11-10 18:27:08 +00:00
helpers
initializers Merge branch 'add-cron-for-prometheus-integration-health-check' into 'master' 2021-11-10 15:48:20 +00:00
initializers_before_autoloader Use default Rails SSL configuration values 2021-11-09 11:30:59 +08:00
knative
locales Change modal error message for restricted emails 2021-10-01 19:28:50 +00:00
metrics Shimo integration: part of models 2021-11-09 16:24:06 +00:00
plugins Step 1.1 - Create graphql_known_operations from webpack plugin 2021-11-08 14:14:02 +00:00
prometheus
routes Update specs to cover Alert todos 2021-11-08 11:27:27 +13:00
application.rb Load Rails 6.1 framework defaults 2021-11-01 14:48:45 +08:00
boot.rb Allow ENABLE_BOOTSNAP to be set to 0 to disable 2021-11-03 15:13:59 +11:00
bullet.yml
bundler_setup.rb
cable.yml.example
database.yml.decomposed-postgresql
database.yml.env
database.yml.postgresql
database_geo.yml.postgresql
dependency_decisions.yml
environment.rb
feature_categories.yml Access restrictions for project /google_cloud 2021-11-04 13:39:01 +01:00
gitlab.yml.example Merge branch 'security-28074-root-passwork-in-migration-output' into 'master' 2021-10-25 10:50:25 +00:00
jsdocs.config.js
known_invalid_graphql_queries.yml Move IaC Scanning UI to CE 2021-11-09 14:47:16 +01:00
license_finder.yml
mail_room.yml Add redis db to the mail_room option hash 2021-10-06 10:20:46 +02:00
no_todos_messages.yml
object_store_settings.rb
pseudonymizer.yml
puma.example.development.rb
puma.rb.example
README.md Add Gitlab::Redis::Sessions Redis instance 2021-10-12 16:11:27 +02:00
resque.yml.example
routes.rb
secrets.yml.example
settings.rb
sidekiq.yml.example
sidekiq_queues.yml Move creation of external cross-references into background worker 2021-11-10 19:15:57 +00:00
smime_signature_settings.rb
spring.rb
storage.yml
webpack.config.js Step 1.1 - Create graphql_known_operations from webpack plugin 2021-11-08 14:14:02 +00:00
webpack.vendor.config.js

Configuration files Documentation

Note that most configuration files (config/*.*) committed into gitlab-foss will not be used for omnibus-gitlab. Configuration files committed into gitlab-foss are only used for development.

gitlab.yml

You can find most of the GitLab configuration settings here.

mail_room.yml

This file is actually an YML wrapped inside an ERB file to enable templated values to be specified from gitlab.yml. mail_room loads this file first as an ERB file and then loads the resulting YML as its configuration.

resque.yml

This file is called resque.yml for historical reasons. We are NOT using Resque at the moment. It is used to specify Redis configuration values when a single database instance of Redis is desired.

Advanced Redis configuration files

In more advanced configurations of Redis key-value storage, it is desirable to separate the keys by lifecycle and intended use to ease provisioning and management of scalable Redis clusters.

These settings provide routing and other configuration data (such as sentinel, persistence policies, and other Redis customization) for connections to Redis single instances, Redis sentinel, and Redis clusters.

If desired, the routing URL provided by these settings can be used with:

  1. Unix Socket
    1. named socket for each Redis instance desired.
    2. database number for each Redis instance desired.
  2. TCP Socket
    1. host name or IP for each Redis instance desired
    2. TCP port number for each Redis instance desired
    3. database number for each Redis instance desired

Example URL attribute formats for GitLab Redis .yml configuration files

  • Unix Socket, default Redis database (0)
    • url: unix:/path/to/redis.sock
    • url: unix:/path/to/redis.sock?db=
  • Unix Socket, Redis database 44
    • url: unix:/path/to/redis.sock?db=44
    • url: unix:/path/to/redis.sock?extra=foo&db=44
  • TCP Socket for Redis on localhost, port 6379, database 33
    • url: redis://:mynewpassword@localhost:6379/33
  • TCP Socket for Redis on remote host myserver, port 6379, database 33
    • url: redis://:mynewpassword@myserver:6379/33

Available configuration files

The Redis instances that can be configured are described in the table below. The order of precedence for configuration is described below, where $NAME and $FALLBACK_NAME are the upper-cased instance names from the table, and $name and $fallback_name are the lower-cased versions:

  1. The configuration file pointed to by the GITLAB_REDIS_$NAME_CONFIG_FILE environment variable.
  2. The configuration file redis.$name.yml.
  3. If a fallback instance is available, the configuration file redis.$fallback_name.yml.
  4. The configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable.
  5. The configuration file resque.yml.

An example configuration file for Redis is in this directory under the name resque.yml.example.

Name Fallback instance Purpose
cache Volatile non-persistent data
queues Background job processing queues
shared_state Persistent application state
trace_chunks shared_state CI trace chunks
rate_limiting cache Rate limiting state
sessions shared_state Sessions

If no configuration is found, or no URL is found in the configuration file, the default URL used is:

  1. redis://localhost:6380 for cache.
  2. redis://localhost:6381 for queues.
  3. redis://localhost:6382 for shared_state.
  4. The URL from the fallback instance for all other instances.