pgbouncer fails to configure on new HA setup at restart step, possibly due to missing `databases.ini` file?
### Summary
I'm currently working on a new HA GitLab environment and found that the pgbouncer node consistently throws an error every initial reconfigure (clean initial run on a new vm) when it tries to restart:
```
[0mRecipe: <Dynamically Defined Resource>[0m
* service[pgbouncer] action restart
[0m
================================================================================[0m
[31mError executing action `restart` on resource 'service[pgbouncer]'[0m
================================================================================[0m
[0m Mixlib::ShellOut::ShellCommandFailed[0m
------------------------------------[0m
Expected process to exit with [0], but received '1'
[0m ---- Begin output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer ----
[0m STDOUT: timeout: down: /opt/gitlab/service/pgbouncer: 0s, normally up, want up
[0m STDERR:
[0m ---- End output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer ----
[0m Ran /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer returned 1[0m
```
Subsequent reconfigures appear to pass fine but investigating further I see that pgbouncer is actually still failing, throwing the same error constantly:
```
2019-09-18_13:17:25.59868 2019-09-18 13:17:25.598 17027 FATAL Cannot load config file
2019-09-18_13:17:26.60251 2019-09-18 13:17:26.602 17028 FATAL Cannot load config file
2019-09-18_13:16:49.45553 2019-09-18 13:16:49.455 16964 FATAL Cannot load config file
2019-09-18_13:16:50.45946 2019-09-18 13:16:50.459 16965 FATAL Cannot load config file
2019-09-18_13:16:51.46310 2019-09-18 13:16:51.463 16966 FATAL Cannot load config file
2019-09-18_13:16:52.46698 2019-09-18 13:16:52.466 16967 FATAL Cannot load config file
```
Digging around a little more it appears that the default pgbouncer config file references another called databases.ini that [should be getting generated on the first install](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab-ee/recipes/pgbouncer.rb#L78). This doesn't appear to be happening though and it's skipped due to it's not_if condition:
```
[0m * execute[generate databases.ini] action run (skipped due to not_if)
* execute[generate databases.ini] action nothing (skipped due to action :nothing)
```
### Steps to reproduce
Follow the guide here on the official docs - https://docs.gitlab.com/ee/administration/high_availability/pgbouncer.html
### What is the current *bug* behavior?
`databases.ini` file creation is skipped incorrectly and causes pgbouncer to fail.
### What is the expected *correct* behavior?
`databases.ini` file is created correctly on a fresh pgbouncer install and pgbouncer starts correctly.
### Relevant logs
<details>
<summary> Relevant logs </summary>
<pre>
```
[0m * execute[generate databases.ini] action run (skipped due to not_if)
* execute[generate databases.ini] action nothing (skipped due to action :nothing)
* execute[reload pgbouncer] action nothing (skipped due to action :nothing)
* execute[start pgbouncer] action nothing (skipped due to action :nothing)
Recipe: <Dynamically Defined Resource>[0m
* service[pgbouncer-exporter] action nothing (skipped due to action :nothing)
Recipe: gitlab-ee::pgbouncer-exporter_disable[0m
* runit_service[pgbouncer-exporter] action disable
* ruby_block[disable pgbouncer-exporter] action run (skipped due to only_if)
(up to date)
Recipe: <Dynamically Defined Resource>[0m
* service[repmgrd] action nothing (skipped due to action :nothing)
Recipe: repmgr::repmgrd_disable[0m
* runit_service[repmgrd] action disable
* ruby_block[disable repmgrd] action run (skipped due to only_if)
(up to date)
Recipe: gitlab-ee::geo-secondary_disable[0m
* templatesymlink[Removes database_geo.yml symlink] action delete
* file[/var/opt/gitlab/gitlab-rails/etc/database_geo.yml] action delete (up to date)
* link[/opt/gitlab/embedded/service/gitlab-rails/config/database_geo.yml] action delete (up to date)
(up to date)
Recipe: gitlab::gitlab-rails[0m
* execute[clear the gitlab-rails cache] action run (skipped due to not_if)
Recipe: <Dynamically Defined Resource>[0m
* service[node-exporter] action restart
[32m- restart service service[node-exporter][0m
[0mRecipe: consul::enable_daemon[0m
* execute[reload consul] action run
[32m- execute /opt/gitlab/bin/gitlab-ctl hup consul[0m
[0mRecipe: <Dynamically Defined Resource>[0m
* service[pgbouncer] action restart
[0m
================================================================================[0m
[31mError executing action `restart` on resource 'service[pgbouncer]'[0m
================================================================================[0m
[0m Mixlib::ShellOut::ShellCommandFailed[0m
------------------------------------[0m
Expected process to exit with [0], but received '1'
[0m ---- Begin output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer ----
[0m STDOUT: timeout: down: /opt/gitlab/service/pgbouncer: 1s, normally up, want up
[0m STDERR:
[0m ---- End output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer ----
[0m Ran /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer returned 1[0m
[0m Compiled Resource:[0m
------------------[0m
# Declared in
[0m
[0m service("pgbouncer") do
[0m provider Chef::Provider::Service::Simple
[0m action [:nothing]
[0m default_guard_interpreter :default
[0m service_name "pgbouncer"
[0m enabled nil
[0m running nil
[0m masked nil
[0m pattern "pgbouncer"
[0m start_command "/opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv start /opt/gitlab/service/pgbouncer"
[0m stop_command "/opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv stop /opt/gitlab/service/pgbouncer"
[0m status_command "/opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv status /opt/gitlab/service/pgbouncer"
[0m restart_command "/opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/pgbouncer"
[0m supports {:restart=>true, :reload=>true, :status=>true}
[0m end
[0m
[0m System Info:[0m
------------[0m
chef_version=14.13.11
[0m platform=ubuntu
[0m platform_version=18.04
[0m ruby=ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
[0m program_name=/opt/gitlab/embedded/bin/chef-client
[0m executable=/opt/gitlab/embedded/bin/chef-client[0m
```
</pre>
</details>
### Details of package version
<details>
<summary>Provide the package version installation details</summary>
<pre>
```
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=========================================-=========================-=========================-=======================================================================================
un gitlab-ce <none> <none> (no description available)
ii gitlab-ee 12.2.5-ee.0 amd64 GitLab Enterprise Edition (including NGINX, Postgres, Redis)
```
</pre>
</details>
### Environment details
* Operating System: `Ubuntu 18.04 LTS`
* Installation Target, remove incorrect values:
* VM: `GCP n1-machine-2`
* Installation Type, remove incorrect values:
* New Installation
* Multinode Install
* Resources
* CPU: `2 Core GCP`
* Memory total: `8GB`
### Configuration details
<details>
<summary> Provide the relevant sections of `/etc/gitlab/gitlab.rb` </summary>
<pre>
```
# Disable all components except Pgbouncer and Consul agent
roles ['pgbouncer_role']
# Configure Pgbouncer
pgbouncer['admin_users'] = %w(pgbouncer gitlab-consul)
# Configure Consul agent
consul['watchers'] = %w(postgresql)
pgbouncer['users'] = {
'gitlab-consul': {
password: 'redacted'
},
'pgbouncer': {
password: 'redacted'
}
}
consul['configuration'] = {
retry_join: %w(redacted)
}
node_exporter['listen_address'] = '0.0.0.0:9100'
pgbouncer_exporter['listen_address'] = '0.0.0.0:9188'
```
</pre>
</details>
issue