62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
---
|
|
stage: Systems
|
|
group: Distribution
|
|
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
|
---
|
|
|
|
# Changing `gitlab.yml` and `application.yml` settings
|
|
|
|
DETAILS:
|
|
**Tier:** Free, Premium, Ultimate
|
|
**Offering:** Self-managed
|
|
|
|
Some GitLab features can be customized through
|
|
[`gitlab.yml`](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/config/gitlab.yml.example). If you want to change a `gitlab.yml` setting
|
|
for a Linux package installation, you need to do so with `/etc/gitlab/gitlab.rb`. The
|
|
translation works as follows. For a complete list of available options, visit the
|
|
[`gitlab.rb.template`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template).
|
|
|
|
All the options of the template listed in `/etc/gitlab/gitlab.rb` are avilable by default.
|
|
|
|
In `gitlab.yml`, you find structure like this:
|
|
|
|
```yaml
|
|
production: &base
|
|
gitlab:
|
|
default_theme: 2
|
|
```
|
|
|
|
In `gitlab.rb`, this translates to:
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_default_theme'] = 2
|
|
```
|
|
|
|
What happens here is that we forget about `production: &base`, and join
|
|
`gitlab:` with `default_theme:` into `gitlab_default_theme`.
|
|
Note that not all `gitlab.yml` settings can be changed via `gitlab.rb` yet; see
|
|
the [`gitlab.yml.erb` template](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb).
|
|
If you think an attribute is missing please create a merge request on the `omnibus-gitlab` repository.
|
|
|
|
Run `sudo gitlab-ctl reconfigure` for changes in `gitlab.rb` to take effect.
|
|
|
|
Do not edit the generated file in `/var/opt/gitlab/gitlab-rails/etc/gitlab.yml`
|
|
because it is overwritten on the next `gitlab-ctl reconfigure` run.
|
|
|
|
## Adding a new setting to `gitlab.yml`
|
|
|
|
First, consider not adding a setting to `gitlab.yml`. See **Settings** under [GitLab-specific concerns](https://docs.gitlab.com/ee/development/code_review.html#gitlab-specific-concerns).
|
|
|
|
Don't forget to update the following 5 files when adding a new setting:
|
|
|
|
- the [`gitlab.rb.template`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template)
|
|
file to expose the setting to the end user via `/etc/gitlab/gitlab.rb`.
|
|
- the [`default.rb`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/attributes/default.rb)
|
|
file to provide a sane default for the new setting.
|
|
- the [`gitlab.yml.example`](https://gitlab.com/gitlab-org/gitlab/blob/master/config/gitlab.yml.example)
|
|
file to actually use the setting's value from `gitlab.rb`.
|
|
- the [`gitlab.yml.erb`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb)
|
|
file
|
|
- the [`gitlab-rails_spec.rb`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/spec/chef/cookbooks/gitlab/recipes/gitlab-rails_spec.rb)
|
|
file
|