Skip to content

Commit 3a5076d

Browse files
balasankarcAndrew Patterson
andcommitted
Merge branch 'configure-rails-extra-db-config-command' into 'master'
Configure rails db_extra_config_command attribute See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7356 Merged-by: Balasankar 'Balu' C <[email protected]> Approved-by: Balasankar 'Balu' C <[email protected]> Reviewed-by: Balasankar 'Balu' C <[email protected]> Co-authored-by: Andrew Patterson <[email protected]>
2 parents 43f0745 + 87c6292 commit 3a5076d

File tree

4 files changed

+32
-1
lines changed

4 files changed

+32
-1
lines changed

files/gitlab-config-template/gitlab.rb.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,9 @@ external_url 'GENERATED_EXTERNAL_URL'
759759
# gitlab_rails['db_application_name'] = nil
760760
# gitlab_rails['db_database_tasks'] = true
761761

762+
##! Command to generate extra database configuration
763+
# gitlab_rails['db_extra_config_command'] = nil
764+
762765
### Gitlab decomposed database settings
763766
###! Docs: https://docs.gitlab.com/omnibus/settings/database.html
764767
# gitlab_rails['databases']['main']['db_database'] = 'gitlabhq_production'

files/gitlab-cookbooks/gitlab/attributes/default.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@
425425
default['gitlab']['gitlab_rails']['db_keepalives_count'] = nil
426426
default['gitlab']['gitlab_rails']['db_tcp_user_timeout'] = nil
427427
default['gitlab']['gitlab_rails']['db_application_name'] = nil
428+
default['gitlab']['gitlab_rails']['db_extra_config_command'] = nil
428429

429430
default['gitlab']['gitlab_rails']['databases'] = {}
430431
default['gitlab']['gitlab_rails']['clickhouse_databases'] = {}

files/gitlab-cookbooks/gitlab/templates/default/database.yml.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
# and run `sudo gitlab-ctl reconfigure`.
44

55
production:
6+
<% if !@db_extra_config_command.nil? -%>
7+
config_command: <%= quote(@db_extra_config_command) %>
8+
<% end -%>
69
<% # database.yml must always have `main` first, sort it to the front %>
710
<% @databases.sort_by { |name, config| name == "main" ? 0 : 1 }.each do |database, attributes| %>
811
<%= database %>:

spec/chef/cookbooks/gitlab/recipes/gitlab-rails_spec.rb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,8 @@
817817
'db_sslcompression' => 0,
818818
'db_sslcert' => nil,
819819
'db_sslkey' => nil,
820-
'db_application_name' => nil
820+
'db_application_name' => nil,
821+
'db_extra_config_command' => nil
821822
)
822823
)
823824
end
@@ -994,6 +995,29 @@
994995
)
995996
end
996997
end
998+
999+
context 'when db_extra_config_command is specified' do
1000+
cached(:chef_run) do
1001+
ChefSpec::SoloRunner.new(step_into: %w(templatesymlink)).converge('gitlab::default')
1002+
end
1003+
1004+
before do
1005+
stub_gitlab_rb(
1006+
gitlab_rails: {
1007+
db_extra_config_command: '/opt/database-config.sh'
1008+
}
1009+
)
1010+
end
1011+
1012+
it 'uses specified value in database.yml' do
1013+
expect(chef_run).to create_templatesymlink('Create a database.yml and create a symlink to Rails root').with_variables(
1014+
hash_including(
1015+
'db_extra_config_command' => '/opt/database-config.sh'
1016+
)
1017+
)
1018+
expect(generated_yml_content.dig('production', 'config_command')).to eq('/opt/database-config.sh')
1019+
end
1020+
end
9971021
end
9981022

9991023
describe 'client side statement_timeout' do

0 commit comments

Comments
 (0)