Skip to content

Commit b27aa99

Browse files
committed
Add Redis TLS settings for KAS
Changelog: added Signed-off-by: Balasankar "Balu" C <[email protected]>
1 parent b239f04 commit b27aa99

File tree

6 files changed

+36
-1
lines changed

6 files changed

+36
-1
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,6 +2112,11 @@ external_url 'GENERATED_EXTERNAL_URL'
21122112
# gitlab_kas['redis_sentinels_master_name'] = nil
21132113
# gitlab_kas['redis_sentinels_password'] = ''
21142114

2115+
# gitlab_kas['redis_ssl'] = false
2116+
# gitlab_kas['redis_tls_ca_cert_file'] = '/opt/gitlab/embedded/ssl/certs/cacert.pem'
2117+
# gitlab_kas['redis_tls_client_cert_file'] = nil
2118+
# gitlab_kas['redis_tls_client_key_file'] = nil
2119+
21152120
################################################################################
21162121
## GitLab Suggested Reviewers (EE Only)
21172122
##! Docs: https://docs.gitlab.com/ee/user/project/merge_requests/reviews/#suggested-reviewers

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,7 @@
5454
default['gitlab_kas']['redis_sentinels'] = nil
5555
default['gitlab_kas']['redis_sentinels_master_name'] = nil
5656
default['gitlab_kas']['redis_sentinels_password'] = nil
57+
default['gitlab_kas']['redis_ssl'] = nil
58+
default['gitlab_kas']['redis_tls_ca_cert_file'] = nil
59+
default['gitlab_kas']['redis_tls_client_cert_file'] = nil
60+
default['gitlab_kas']['redis_tls_client_key_file'] = nil

files/gitlab-cookbooks/gitlab-kas/libraries/gitlab_kas.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ def parse_redis_settings
114114
redis_password
115115
redis_sentinels
116116
redis_sentinels_password
117+
redis_ssl
118+
redis_tls_ca_cert_file
119+
redis_tls_client_cert_file
120+
redis_tls_client_key_file
117121
]
118122
settings_copied_from_gitlab_rails.each do |setting|
119123
Gitlab['gitlab_kas'][setting] = Gitlab['gitlab_rails'][setting] || Gitlab['node']['gitlab']['gitlab_rails'][setting] unless Gitlab['gitlab_kas'].key?(setting)

files/gitlab-cookbooks/gitlab-kas/recipes/enable.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,15 @@
3737
gitlab_kas_redis_sentinels_password_file = File.join(working_dir, 'redis_sentinels_password_file')
3838
redis_default_port = URI::Redis::DEFAULT_PORT
3939
redis_network = redis_helper.redis_url.scheme == 'unix' ? 'unix' : 'tcp'
40-
redis_ssl = node['gitlab']['gitlab_rails']['redis_ssl']
40+
redis_ssl = node['gitlab_kas']['redis_ssl']
4141
redis_address = if redis_network == 'tcp'
4242
"#{redis_host}:#{redis_port || redis_default_port}"
4343
else
4444
node['gitlab_kas']['redis_socket']
4545
end
46+
redis_tls_ca_cert_file = node['gitlab_kas']['redis_tls_ca_cert_file']
47+
redis_tls_client_cert_file = node['gitlab_kas']['redis_tls_client_cert_file']
48+
redis_tls_client_key_file = node['gitlab_kas']['redis_tls_client_key_file']
4649

4750
[
4851
working_dir,
@@ -119,6 +122,9 @@
119122
redis_network: redis_network,
120123
redis_address: redis_address,
121124
redis_ssl: redis_ssl,
125+
redis_tls_ca_cert_file: redis_tls_ca_cert_file,
126+
redis_tls_client_cert_file: redis_tls_client_cert_file,
127+
redis_tls_client_key_file: redis_tls_client_key_file,
122128
redis_default_port: redis_default_port,
123129
redis_password_file: redis_password_present ? gitlab_kas_redis_password_file : nil,
124130
redis_sentinels_master_name: redis_sentinels_master_name,

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,17 @@ redis:
4545
network: <%= @redis_network %>
4646
tls:
4747
enabled: <%= @redis_ssl %>
48+
<%- if @redis_ssl %>
49+
<%- if @redis_tls_ca_cert_file %>
50+
ca_certificate_file: "<%= @redis_tls_ca_cert_file %>"
51+
<% end %>
52+
<%- if @redis_tls_client_cert_file %>
53+
certificate_file: "<%= @redis_tls_client_cert_file %>"
54+
<% end %>
55+
<%- if @redis_tls_client_key_file %>
56+
key_file: "<%= @redis_tls_client_key_file %>"
57+
<% end %>
58+
<% end %>
4859
<%- if @redis_password_file %>
4960
password_file: <%= @redis_password_file %>
5061
<%- end %>

spec/chef/cookbooks/gitlab-kas/recipes/gitlab-kas_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,8 @@
445445
redis_host: 'the-host',
446446
redis_port: 12345,
447447
redis_ssl: true,
448+
redis_tls_client_cert_file: '/etc/gitlab/self_signed.crt',
449+
redis_tls_client_key_file: '/etc/gitlab/self_signed.key'
448450
}
449451
)
450452
end
@@ -457,6 +459,9 @@
457459
'network' => 'tcp',
458460
'tls' => {
459461
'enabled' => true,
462+
'ca_certificate_file' => '/opt/gitlab/embedded/ssl/certs/cacert.pem',
463+
'certificate_file' => '/etc/gitlab/self_signed.crt',
464+
'key_file' => '/etc/gitlab/self_signed.key',
460465
},
461466
'server' => {
462467
'address' => 'the-host:12345'

0 commit comments

Comments
 (0)