---
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
---

# Add or remove Omnibus GitLab configuration options

## Add a configuration option

Adding a configuration option may happen during any release milestone.

- Add an entry to `files/gitlab-config-template/gitlab.rb.template` as
  documentation for administrators.
- Add a default value for the new option:
  - Values specific to a service should be set in the appropriate `files/gitlab-cookbooks/SERVICE_NAME/attributes/default.rb`
  - General values may be set in `files/gitlab-cookbooks/gitlab/attributes/default.rb`
- If the value requires calculations at runtime, then it should be added to
  the [defined `parse_variables` method in the related cookbook](new-services.md#additional-configuration-parsing-for-the-service).
- Consider whether the option should be added to [public attributes](public-attributes.md).

## Remove a configuration option

Distribution follows a strict process when removing configuration options to
minimize disruptions for Omnibus GitLab administrators.

1. Create an issue for deprecating the configuration option.
1. Create an issue for removing the configuration option that happens no
   less than three milestones after adding the deprecation messages.

### Deprecate the option

- [Add deprecation messages](adding-deprecation-messages.md).
- Remove the configuration options from `files/gitlab-config-template/gitlab.rb.template` to prevent their use in new installations.

### Final removal of the option

- Remove the default values for the deprecated option from `files/gitlab-cookbooks/gitlab/attributes/default.rb`.
