Use underscores instead of hyphens for settings - Phases 0 and I
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.rb
already 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
-
Implement base for the migration -
Add documentation
-
- Phase I (This issue)
-
GitLab Pages -
Monitoring services -
Node Exporter -
Redis Exporter -
Postgres Exporter -
PGBouncer Exporter -
GitLab Exporter
-
-
Suggested Reviewers -
Remote Syslog -
GitLab Shell
-
- Phase II (Tracked in #7455 (closed))