diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bb5fbb..d3f210e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Unreleased + +* Allow setting of Redis SSL `verify_mode` to none via environment variable + # 9.0.0 * Switch from using `redis` gem to `redis-client` diff --git a/lib/govuk_sidekiq/railtie.rb b/lib/govuk_sidekiq/railtie.rb index ae63c8c..b42332b 100644 --- a/lib/govuk_sidekiq/railtie.rb +++ b/lib/govuk_sidekiq/railtie.rb @@ -3,9 +3,13 @@ module GovukSidekiq class Railtie < Rails::Railtie initializer "govuk_sidekiq.initialize_sidekiq" do - SidekiqInitializer.setup_sidekiq( - { url: ENV.fetch("REDIS_URL", "redis://127.0.0.1:6379") }, - ) + redis_options = { url: ENV.fetch("REDIS_URL", "redis://127.0.0.1:6379") } + + if ENV["REDIS_SSL_VERIFY_NONE"] == "true" + redis_options[:ssl_params] = { verify_mode: OpenSSL::SSL::VERIFY_NONE } + end + + SidekiqInitializer.setup_sidekiq(redis_options) end rake_tasks do diff --git a/spec/govuk_sidekiq/railtie_spec.rb b/spec/govuk_sidekiq/railtie_spec.rb index 0b7afcc..43880fd 100644 --- a/spec/govuk_sidekiq/railtie_spec.rb +++ b/spec/govuk_sidekiq/railtie_spec.rb @@ -25,4 +25,14 @@ described_class.initializers.first.run(app) end end + + it "can set Redis SSL verify_mode to none via an env var" do + ClimateControl.modify REDIS_SSL_VERIFY_NONE: "true" do + expect(GovukSidekiq::SidekiqInitializer) + .to receive(:setup_sidekiq) + .with(default_redis_configuration.merge({ ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE } })) + + described_class.initializers.first.run(app) + end + end end