Stop reusing node attributes of one service directly to configure other services
There are cases where we reuse node attributes used to configure one service directly in the configuration file of other services. For example, gitlab_rails[*]
settings are used by other services, like KAS. Similarly, redis[*]
settings are used for multiple things - to configure the running Redis instance, and for other components to find out where Redis is. While this makes DRY-ness a bit more easier, it makes configuration docs confusing. "I know redis[*]
settings are used to configure the running Redis instance. But why am I setting them on an application node? Or on a monitoring node?"
Proposal
- Ensure every component uses settings under it's top-level node attribute to configure itself. This means, node attributes of one service should not be directly used in other service's recipes/configuration files. Instead, we should have a copy of those settings with the values copied over.
- Default values for these duplicate settings should be set so that they work out of the box.
- Update documentation so that for configuring a specific service, we ask users to configure settings related to that service.