Skip to content

Commit 2ce9f24

Browse files
Robert MarshallSuleimi Ahmedjaimem88
committed
Merge branch '1071-support-registry-database-config' into 'master'
Add config support for container registry database Closes #1071 See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7100 Merged-by: Robert Marshall <[email protected]> Approved-by: Jaime Martinez <[email protected]> Approved-by: Hayley Swimelar <[email protected]> Approved-by: Robert Marshall <[email protected]> Reviewed-by: Jaime Martinez <[email protected]> Co-authored-by: Suleimi Ahmed <[email protected]> Co-authored-by: Jaime Martinez <[email protected]>
2 parents c1afe34 + 565f7a7 commit 2ce9f24

File tree

5 files changed

+59
-0
lines changed

5 files changed

+59
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,7 @@ external_url 'GENERATED_EXTERNAL_URL'
909909
# registry['validation_enabled'] = false
910910
# registry['autoredirect'] = false
911911
# registry['compatibility_schema1_enabled'] = false
912+
# registry['database'] = nil
912913

913914
### Registry backend storage
914915
###! Docs: https://docs.gitlab.com/ee/administration/packages/container_registry.html#configure-storage-for-the-container-registry
@@ -925,6 +926,29 @@ external_url 'GENERATED_EXTERNAL_URL'
925926
# }
926927
# }
927928

929+
### Registry database
930+
###! Docs: https://docs.gitlab.com/ee/administration/packages/container_registry.html?tab=Linux+package+%28Omnibus%29#configure-a-metadata-database-for-the-container-registry
931+
# registry['database'] = {
932+
# 'enabled' => true,
933+
# 'host' => 'localhost',
934+
# 'port' => 5432,
935+
# 'user' => 'postgres',
936+
# 'password' => 'postgres',
937+
# 'dbname' => 'registry',
938+
# 'sslmode' => 'verify-full',
939+
# 'sslcert' => '/path/to/client.crt',
940+
# 'sslkey' => '/path/to/client.key',
941+
# 'sslrootcert' => '/path/to/root.crt',
942+
# 'connecttimeout' => '5s',
943+
# 'draintimeout' => '2m',
944+
# 'preparedstatements' => false,
945+
# 'pool' => {
946+
# 'maxidle' => 25,
947+
# 'maxopen' => 25,
948+
# 'maxlifetime' => '5m'
949+
# }
950+
# }
951+
928952
### Registry notifications endpoints
929953
# registry['notifications'] = [
930954
# {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
default['registry']['validation_enabled'] = false
3737
default['registry']['autoredirect'] = false
3838
default['registry']['compatibility_schema1_enabled'] = false
39+
default['registry']['database'] = nil
3940

4041
####
4142
# Notifications

files/gitlab-cookbooks/registry/templates/default/registry-config.yml.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,6 @@ compatibility:
4444
notifications:
4545
endpoints: <%= @notifications.to_json %>
4646
<% end %>
47+
<% if @database %>
48+
database: <%= @database.to_json %>
49+
<% end %>

spec/chef/cookbooks/registry/recipes/registry_spec.rb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,36 @@
142142
end
143143
end
144144

145+
context 'when the registry metadata database is enabled' do
146+
let(:database_config) do
147+
{ "enabled" => true,
148+
"host" => "localhost",
149+
"port" => 5432,
150+
"user" => "postgres",
151+
"password" => "postgres",
152+
"dbname" => "registry",
153+
"sslmode" => "verify-full",
154+
"sslcert" => "/path/to/client.crt",
155+
"sslkey" => "/path/to/client.key",
156+
"sslrootcert" => "/path/to/root.crt",
157+
"connecttimeout" => "5s",
158+
"draintimeout" => "2m",
159+
"preparedstatements" => false,
160+
"pool" => {
161+
"maxidle" => 25,
162+
"maxopen" => 25,
163+
"maxlifetime" => "5m"
164+
} }
165+
end
166+
167+
before { stub_gitlab_rb(registry: { database: database_config }) }
168+
169+
it 'creates registry config with database' do
170+
expect(chef_run).to render_file('/var/opt/gitlab/registry/config.yml')
171+
.with_content(%r(^database: {"enabled":true))
172+
end
173+
end
174+
145175
context 'when a log formatter is specified' do
146176
before { stub_gitlab_rb(registry: { log_formatter: 'json' }) }
147177

spec/chef/support/shared_examples/registry_service.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
expect(content).to match(/validation:\s*disabled: true$/)
6363
expect(content).not_to match(/^compatibility:/)
6464
expect(content).not_to match(/^middleware:/)
65+
expect(content).not_to match(/^database:/)
6566
end
6667
)
6768
end

0 commit comments

Comments
 (0)