Allow enabling Prometheus metrics via ENV variable when db is seeded

This commit is contained in:
Pawel Chojnacki 2017-06-02 13:41:30 +02:00
parent 7b75004d60
commit e21b1501ff
2 changed files with 66 additions and 7 deletions

View File

@ -1,16 +1,29 @@
if ENV['GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN'].present?
settings = ApplicationSetting.current || ApplicationSetting.create_from_defaults
settings.set_runners_registration_token(ENV['GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN'])
def save(settings, topic)
if settings.save
puts "Saved Runner Registration Token".color(:green)
puts "Saved #{topic}".color(:green)
else
puts "Could not save Runner Registration Token".color(:red)
puts "Could not save #{topic}".color(:red)
puts
settings.errors.full_messages.map do |message|
puts "--> #{message}".color(:red)
end
puts
exit 1
exit(1)
end
end
envs = %w{ GITLAB_PROMETHEUS_METRICS_ENABLED GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN }
if envs.any? {|env_name| ENV[env_name].present? }
settings = ApplicationSetting.current || ApplicationSetting.create_from_defaults
if ENV['GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN'].present?
settings.set_runners_registration_token(ENV['GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN'])
save(settings, 'Runner Registration Token')
end
if ENV['GITLAB_PROMETHEUS_METRICS_ENABLED'].present?
value = Gitlab::Utils.to_boolean(ENV['GITLAB_PROMETHEUS_METRICS_ENABLED'])
settings.prometheus_metrics_enabled = value
save(settings, 'GITLAB_PROMETHEUS_METRICS_ENABLED')
end
end

View File

@ -0,0 +1,46 @@
require 'spec_helper'
require 'rainbow/ext/string'
describe 'seed production settings', lib: true do
include StubENV
let(:settings_file) { File.join(__dir__, '../../../db/fixtures/production/010_settings.rb') }
let(:settings) { ApplicationSetting.current || ApplicationSetting.create_from_defaults }
context 'GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN is set in the environment' do
before do
stub_env('GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN', '013456789')
end
it 'writes the token to the database' do
load(settings_file)
expect(settings.runners_registration_token).to eq('013456789')
end
end
context 'GITLAB_PROMETHEUS_METRICS_ENABLED is set in the environment' do
context 'GITLAB_PROMETHEUS_METRICS_ENABLED is true' do
before do
stub_env('GITLAB_PROMETHEUS_METRICS_ENABLED', 'true')
end
it 'prometheus_metrics_enabled is set to true ' do
load(settings_file)
expect(settings.prometheus_metrics_enabled).to eq(true)
end
end
context 'GITLAB_PROMETHEUS_METRICS_ENABLED is false' do
before do
stub_env('GITLAB_PROMETHEUS_METRICS_ENABLED', 'false')
end
it 'prometheus_metrics_enabled is set to false' do
load(settings_file)
expect(settings.prometheus_metrics_enabled).to eq(false)
end
end
end
end