Allow enabling Prometheus metrics via ENV variable when db is seeded
This commit is contained in:
parent
7b75004d60
commit
e21b1501ff
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue