lib/gdk/services/gitlab_workhorse.rb (59 lines of code) (raw):

# frozen_string_literal: true module GDK module Services # GitLab Workhorse service class GitlabWorkhorse < Base def name 'gitlab-workhorse' end def command command = %W[/usr/bin/env PATH="#{workhorse_dir}:$PATH"] command << 'GEO_SECONDARY_PROXY=0' unless config.geo? command += %W[gitlab-workhorse -#{auth_type_flag} "#{auth_address}"] command += %W[-documentRoot "#{document_root}"] command += %W[-developmentMode -secretPath "#{secret_path}"] command += %W[-config "#{config_file}"] command += %W[-listenAddr "#{listen_address}"] command += %w[-logFormat json] command += %W[-apiCiLongPollingDuration "#{ci_long_polling_duration}"] command += %W[-prometheusListenAddr "#{prometheus_listen_addr}"] if config.prometheus.enabled? command += auth_backend_option command.join(' ') end def enabled? config.workhorse.enabled? end private def workhorse_dir config.gitlab.dir.join('workhorse') end def auth_backend_option relative_url_root = config.relative_url_root return [] if relative_url_root.to_s.empty? %W[-authBackend "http://localhost:8080#{relative_url_root}"] end def auth_type_flag config.workhorse.__listen_settings.__type end def auth_address config.workhorse.__listen_settings.__address end def document_root config.gitlab.dir.join('public').to_s end def secret_path config.gitlab.dir.join('.gitlab_workhorse_secret').to_s end def config_file workhorse_dir.join('config.toml') end def listen_address config.workhorse.__command_line_listen_addr end def ci_long_polling_duration "#{config.workhorse.ci_long_polling_seconds}s" end def prometheus_listen_addr "#{config.hostname}:#{config.prometheus.workhorse_exporter_port}" end end end end