semi-automated node config for HA
Summary
A user-friendlier means of configuring individual GitLab nodes in an HA environment.
Proposal
Our default gitlab.rb template file is up to 1830 lines. When configuring GitLab with all functionality on a single node this is ok because the administrator does not necessarily have to go through and modify a large number of lines in the file in order to have a working configuration. When you start breaking things out into various task-specific roles, however, it becomes a confusing and overwhelming task for administrators to determine what they need to configure, where.
If the user could say up front "I want this to be a postgresql node" we could present them with a much smaller set of items they may need or want to configure in the context of only running postgresql on that host. And we could set the role variable up front instead of sending them to a web page to learn what are all the possible role values they could add.
So, for example, what if you ran sudo gitlab-ctl configure postgres
and instead of giving you 1830 lines of gitlab.rb we gave you 157 postgres-specific settings, starting with roles ['postgres_role']
. If we wanted to make this really fancy it could launch a basic "interview" to fill in the things we know they'd have to configure on a basic postgres install, such as ip address, password, etc, and write those out in the gitlab.rb file we start them out with. This would make things sooooo much easier for our customers trying to set up HA.