Allow statement_timeout to be configured inside config/database.yml

Summary

Omnibus includes a postgresql['statement_timeout'] which sets the default statement timeout for all connections. However, this only allows the timeout to be configured if people are using the bundled postgresql server. We should allow the statement timeout to be configured even if they're using an external postgresql server

Proposal

Defaulkt statement timeouts can be configured both client and server-side. The client-side version looks like this in config/database.yml:

production:
  adapter: postgresql
  # ...
  variables:
    statement_timeout: ...

By making this configurable in omnibus, like:

gitlab_rails['db_statement_timeout'] = nil # defaults to postgresql['statement_timeout']

we can ensure this important setting is configured by default for people even if they aren't using the bundled postgresql server.

References

https://til.hashrocket.com/posts/b44baf657d-railspg-statement-timeou

Noticed while investigating https://gitlab.com/gitlab-org/gitlab-ce/issues/65306

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖