Use underscores instead of hyphens for settings - Phase II
Currently, we maintain the settings as Chef attributes with hyphens in their names - node['gitlab']['gitlab-rails'], node['gitlab']['gitlab-shell'], node['monitoring']['node-exporter'] etc. I believe we do this to match the project names. However, because gitlab.rb is eavluated as a Ruby script and because Ruby doesn't support hyphens in variable names, we use underscores there - gitlab_rails[*], gitlab_shell[*], node_exporter[*] etc. Then we do the extra work of converting these top-level keys with underscores to the hyphenated ones when we create node attributes so that Chef can automatically merge user-provided values and default values for them.
I think this is unnecessary, messy, and just causes confusion to everyone - especially external contributors.
Proposal
- Get rid of hyphens in top level keys - just use underscores everywhere. This should not have any (hopefully) user impact because the user facing
gitlab.rbalready uses the underscore format. - Get rid of hyphens in all keys. This will have user impact, and will need proper deprecation/removal process.
- Ensure we don't add hyphenated keys back in. Maybe a Rubocop rule.
For scheduling purposes, let's split this to multiple phases
- Phase 0 and I are tracked in #6873 (closed)
- Phase II (This issue)
-
GitLab KAS -
GitLab Workhorse -
GitLab Rails -
Service specific NGINX confguration -
Geo Services -
Geo PostgreSQL -
Geo Secondary -
Geo Logcursor
-
-
Other Miscellaneous keys -
Attributes -
external_url -
gitlab_kas_external_url -
mattermost_external_url -
pages_external_url -
registry_external_url -
git_data_dir -
gitlab_ci -
high_availability -
manage_accounts -
manage_storage_directories -
omnibus_gitconfig -
prometheus_monitoring -
runtime_dir -
storage_check -
web_server
-
-
Roles
-
-