diff --git a/files/gitlab-cookbooks/gitlab/libraries/redis.rb b/files/gitlab-cookbooks/gitlab/libraries/redis.rb index 5b184256a7fdab5540f2faacf964d29cc1055693_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvbGlicmFyaWVzL3JlZGlzLnJi..f6f99aa5eac7cb7aed96d235b66276f282c0beeb_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvbGlicmFyaWVzL3JlZGlzLnJi 100644 --- a/files/gitlab-cookbooks/gitlab/libraries/redis.rb +++ b/files/gitlab-cookbooks/gitlab/libraries/redis.rb @@ -30,6 +30,7 @@ # The user wants Redis to listen via TCP instead of unix socket. Gitlab['redis']['unixsocket'] = false + parse_redis_bind_address # Try to discover gitlab_rails redis connection params # based on redis daemon parse_redis_daemon! unless RedisHelper::Checks.has_sentinels? @@ -74,7 +75,14 @@ private + def parse_redis_bind_address + return unless redis_managed? + + redis_bind = Gitlab['redis']['bind'] || node['redis']['bind'] + Gitlab['redis']['default_host'] = redis_bind.split(' ').first + end + def parse_redis_daemon! return unless redis_managed? redis_bind = Gitlab['redis']['bind'] || node['redis']['bind'] @@ -77,9 +85,7 @@ def parse_redis_daemon! return unless redis_managed? redis_bind = Gitlab['redis']['bind'] || node['redis']['bind'] - Gitlab['redis']['default_host'] = redis_bind.split(' ').first - Gitlab['gitlab_rails']['redis_host'] ||= Gitlab['redis']['default_host'] redis_port_config_key = if Gitlab['redis'].key?('port') && !Gitlab['redis']['port'].zero? diff --git a/spec/chef/cookbooks/redis/recipes/redis_spec.rb b/spec/chef/cookbooks/redis/recipes/redis_spec.rb index 5b184256a7fdab5540f2faacf964d29cc1055693_c3BlYy9jaGVmL2Nvb2tib29rcy9yZWRpcy9yZWNpcGVzL3JlZGlzX3NwZWMucmI=..f6f99aa5eac7cb7aed96d235b66276f282c0beeb_c3BlYy9jaGVmL2Nvb2tib29rcy9yZWRpcy9yZWNpcGVzL3JlZGlzX3NwZWMucmI= 100644 --- a/spec/chef/cookbooks/redis/recipes/redis_spec.rb +++ b/spec/chef/cookbooks/redis/recipes/redis_spec.rb @@ -332,6 +332,34 @@ expect(chef_run).to render_file('/opt/gitlab/etc/gitlab-redis-cli-rc') .with_content(gitlab_redis_cli_rc) end + + context 'with Sentinels configured' do + before do + stub_gitlab_rb( + redis: { + bind: redis_host, + port: redis_port, + ha: true, + master_ip: master_ip, + master_port: master_port, + master_password: 'password', + master: false + }, + gitlab_rails: { + redis_sentinels: [ + { 'host' => '127.0.0.1', 'port' => 2637 } + ] + } + ) + end + + it_behaves_like 'started down runit service', 'redis' + + it 'creates gitlab-redis-cli-rc' do + expect(chef_run).to render_file('/opt/gitlab/etc/gitlab-redis-cli-rc') + .with_content(gitlab_redis_cli_rc) + end + end end context 'with rename_commands disabled' do