Allow to use ENV variables in redis config
This commit is contained in:
parent
f80ab37cc1
commit
a532c6040c
5 changed files with 28 additions and 2 deletions
4
changelogs/unreleased/env-var-in-redis-config.yml
Normal file
4
changelogs/unreleased/env-var-in-redis-config.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Allow to use ENV variables in redis config
|
||||
merge_request: 8073
|
||||
author: Semyon Pupkov
|
|
@ -601,6 +601,12 @@ If you want to connect the Redis server via socket, then use the "unix:" URL sch
|
|||
production:
|
||||
url: unix:/path/to/redis/socket
|
||||
|
||||
Also you can use environment variables in the `config/resque.yml` file:
|
||||
|
||||
# example
|
||||
production:
|
||||
url: <%= ENV.fetch('GITLAB_REDIS_URL') %>
|
||||
|
||||
### Custom SSH Connection
|
||||
|
||||
If you are running SSH on a non-standard port, you must change the GitLab user's SSH config.
|
||||
|
|
|
@ -42,7 +42,7 @@ module Gitlab
|
|||
return @_raw_config if defined?(@_raw_config)
|
||||
|
||||
begin
|
||||
@_raw_config = File.read(CONFIG_FILE).freeze
|
||||
@_raw_config = ERB.new(File.read(CONFIG_FILE)).result.freeze
|
||||
rescue Errno::ENOENT
|
||||
@_raw_config = false
|
||||
end
|
||||
|
|
2
spec/fixtures/config/redis_config_with_env.yml
vendored
Normal file
2
spec/fixtures/config/redis_config_with_env.yml
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
test:
|
||||
url: <%= ENV['TEST_GITLAB_REDIS_URL'] %>
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::Redis do
|
||||
let(:redis_config) { Rails.root.join('config', 'resque.yml').to_s }
|
||||
include StubENV
|
||||
|
||||
before(:each) { clear_raw_config }
|
||||
after(:each) { clear_raw_config }
|
||||
|
@ -72,6 +72,20 @@ describe Gitlab::Redis do
|
|||
|
||||
expect(url2).not_to end_with('foobar')
|
||||
end
|
||||
|
||||
context 'when yml file with env variable' do
|
||||
let(:redis_config) { Rails.root.join('spec/fixtures/config/redis_config_with_env.yml') }
|
||||
|
||||
before do
|
||||
stub_env('TEST_GITLAB_REDIS_URL', 'redis://redishost:6379')
|
||||
end
|
||||
|
||||
it 'reads redis url from env variable' do
|
||||
stub_const("#{described_class}::CONFIG_FILE", redis_config)
|
||||
|
||||
expect(described_class.url).to eq 'redis://redishost:6379'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '._raw_config' do
|
||||
|
|
Loading…
Reference in a new issue