gitlab-org--gitlab-foss/config
Mike Greiling 0994bbf9dd Merge branch 'master' into ide
* master: (86 commits)
  Show all labels
  33874 confidential issue redesign
  Exclude merge_jid on Import/Export attribute configuration
  Resolve "User dropdown in filtered search does not load avatar on `master`"
  Re-add column locked_at on migration rollback
  Group-level new issue & MR using previously selected project
  [EE Backport] Update log audit event in omniauth_callbacks_controller.rb
  more eagerly bail when the state is prevented
  Move locked_at removal to post-deployment migration
  Add class to other sidebars
  Improve mobile sidebar
  reduce iterations by keeping a count of remaining enablers
  Store & use ConvDev percentages returned by Version app
  Store MergeWorker JID on merge request, and clean up stuck merges
  Backport changes in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2551 to CE
  DRY up caching in AbstractReferenceFilter
  Update CHANGELOG
  Add CHANGELOG entry
  Fix html structure Removes test for removed behavior
  Port form back to use form_tag
  ...
2017-08-07 22:44:47 -05:00
..
environments Fix logger disabling on the CI: instantiate an ActiveSupport::TaggedLogging 2017-07-20 11:16:12 +02:00
initializers Merge branch '31207-clean-locked-merge-requests' into 'master' 2017-08-08 01:47:48 +00:00
locales Take timezone into account when comparing dates in the UI 2017-06-15 16:54:40 +02:00
prometheus Rename the metric groups 2017-07-27 14:05:58 -04:00
routes Add a Circuitbreaker for storage paths 2017-08-04 15:38:48 +02:00
README.md Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
application.rb Support references to group milestones 2017-08-07 11:55:00 +01:00
aws.yml.example
boot.rb Update Prometheus gem to version that explicitly calls `munmap` 2017-07-19 08:54:39 +00:00
database.yml.env
database.yml.mysql Disabled prepared statements in test 2017-07-10 20:38:26 -07:00
database.yml.postgresql Disabled prepared statements in test 2017-07-10 20:38:26 -07:00
dependency_decisions.yml add thunky to approved licenses (MIT) 2017-08-07 11:08:58 -05:00
environment.rb
gitlab.yml.example Add sidekiq metrics endpoint and add http server to sidekiq 2017-08-07 17:13:02 +00:00
karma.config.js Merge branch 'master' of github.com:gitlabhq/gitlabhq 2017-06-20 20:16:01 +05:30
license_finder.yml Resolve feedback. 2016-06-06 13:39:36 -06:00
mail_room.yml Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
no_todos_messages.yml Improve consistency of empty todo list messages 2016-11-18 17:40:24 +02:00
redis.cache.yml.example Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
redis.queues.yml.example Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
redis.shared_state.yml.example Support multiple Redis instances based on queue type 2017-07-11 03:35:47 +00:00
resque.yml.example Added Redis Sentinel support documentation 2016-08-04 18:55:37 +02:00
routes.rb Fix linting, route, and specs 2017-06-09 17:21:39 +02:00
secrets.yml.example
sidekiq.yml.example
sidekiq_queues.yml Move some after_create parts to worker to improve performance 2017-08-07 15:57:56 +02:00
unicorn.rb.example Update prometheus client gem to fix problems with PID handling following 2017-07-27 14:40:36 +02:00
unicorn.rb.example.development
webpack.config.js Merge branch 'master' into ide 2017-08-07 22:44:47 -05:00

README.md

Configuration files Documentation

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

gitlab.yml

You can find most of 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

redis.cache.yml

If configured, redis.cache.yml overrides the resque.yml settings to configure the Redis database instance used for Rails.cache and other volatile non-persistent data which enhances the performance of GitLab. Settings here can be overridden by the environment variable GITLAB_REDIS_CACHE_CONFIG_FILE which provides an alternate location for configuration settings.

The order of precedence for the URL used to connect to the Redis instance used for cache is:

  1. URL from a configuration file pointed to by the GITLAB_REDIS_CACHE_CONFIG_FILE environment variable
  2. URL from redis.cache.yml
  3. URL from a configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. URL from resque.yml
  5. redis://localhost:6380

The order of precedence for all other configuration settings for cache are selected from only the first of the following files found (if a setting is not provided in an earlier file, the remainder of the files are not searched):

  1. the configuration file pointed to by the GITLAB_REDIS_CACHE_CONFIG_FILE environment variable
  2. the configuration file redis.cache.yml
  3. the configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. the configuration file resque.yml

redis.queues.yml

If configured, redis.queues.yml overrides the resque.yml settings to configure the Redis database instance used for clients of ::Gitlab::Redis::Queues. These queues are intended to be the foundation of reliable inter-process communication between modules, whether on the same host node, or within a cluster. The primary clients of the queues are SideKiq, Mailroom, CI Runner, Workhorse, and push services. Settings here can be overridden by the environment variable GITLAB_REDIS_QUEUES_CONFIG_FILE which provides an alternate location for configuration settings.

The order of precedence for the URL used to connect to the Redis instance used for queues is:

  1. URL from a configuration file pointed to by the GITLAB_REDIS_QUEUES_CONFIG_FILE environment variable
  2. URL from redis.queues.yml
  3. URL from a configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. URL from resque.yml
  5. redis://localhost:6381

The order of precedence for all other configuration settings for queues are selected from only the first of the following files found (if a setting is not provided in an earlier file, the remainder of the files are not searched):

  1. the configuration file pointed to by the GITLAB_REDIS_QUEUES_CONFIG_FILE environment variable
  2. the configuration file redis.queues.yml
  3. the configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. the configuration file resque.yml

redis.shared_state.yml

If configured, redis.shared_state.yml overrides the resque.yml settings to configure the Redis database instance used for clients of ::Gitlab::Redis::SharedState such as session state, and rate limiting. Settings here can be overridden by the environment variable GITLAB_REDIS_SHARED_STATE_CONFIG_FILE which provides an alternate location for configuration settings.

The order of precedence for the URL used to connect to the Redis instance used for shared_state is:

  1. URL from a configuration file pointed to by the GITLAB_REDIS_SHARED_STATE_CONFIG_FILE environment variable
  2. URL from redis.shared_state.yml
  3. URL from a configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. URL from resque.yml
  5. redis://localhost:6382

The order of precedence for all other configuration settings for shared_state are selected from only the first of the following files found (if a setting is not provided in an earlier file, the remainder of the files are not searched):

  1. the configuration file pointed to by the GITLAB_REDIS_SHARED_STATE_CONFIG_FILE environment variable
  2. the configuration file redis.shared_state.yml
  3. the configuration file pointed to by the GITLAB_REDIS_CONFIG_FILE environment variable
  4. the configuration file resque.yml