Clear up postgresql reload behavior
In #2193 (closed) the postgresql recipe was updated to
- split the configuration file into two templates. One template for variables which required a full restart of postgresql, the other for variables which only require a reload.
- only reload postgresql when any template changes, full restarts should be done manually
This was done to give production team full control of database restarts on GitLab.com.
This behavior is not clearly documented, and is causing some confusion. We need to either:
- Document the behavior more explicitly. The gitlab.rb template mentions the behavior, but this will be missed by users with an existing configuration. This needs to be clearly documented in other areas.
or
- Switch to restarting postgresql when an attribute which requires a restart is modified. But still only reload otherwise.
My preference is probably the latter option. I realize that it does make postgresql.conf.erb more sensitive, as any change to that file will cause a restart. So if we do this any updates we make to the template, or default values, would require a notification to the production team.
If we do switch, this would need coordination/buy in from the production team.
/cc @gitlab-build-team @stanhu @pcarranza @yorickpeterse @jtevnan