Documentation ¶
Index ¶
- Constants
- func ConfigureConcurrencyLimits()
- func ConfigureLogging()
- func ConfigurePrometheus()
- func ConfigureRuby() error
- func Load(file io.Reader) error
- func RegisterHook(f func(c Cfg) error)
- func SetGitPath() error
- func Validate() error
- type Cfg
- type Concurrency
- type Git
- type GitlabShell
- type Logging
- type Prometheus
- type Ruby
- type Sentry
- type Storage
- type TLS
Constants ¶
const ( // EnvPidFile is the name of the environment variable containing the pid file path EnvPidFile = "GITALY_PID_FILE" // EnvUpgradesEnabled is an environment variable that when defined gitaly must enable graceful upgrades on SIGHUP EnvUpgradesEnabled = "GITALY_UPGRADES_ENABLED" )
Variables ¶
This section is empty.
Functions ¶
func ConfigureConcurrencyLimits ¶ added in v0.43.0
func ConfigureConcurrencyLimits()
ConfigureConcurrencyLimits configures the per-repo, per RPC rate limits
func ConfigureLogging ¶ added in v0.11.0
func ConfigureLogging()
ConfigureLogging uses the global conf and environmental vars to configure log levels and format
func ConfigurePrometheus ¶ added in v0.11.0
func ConfigurePrometheus()
ConfigurePrometheus uses the global configuration to configure prometheus
func ConfigureRuby ¶ added in v0.60.0
func ConfigureRuby() error
ConfigureRuby validates the gitaly-ruby configuration and sets default values.
func Load ¶
Load initializes the Config variable from file and the environment.
Environment variables take precedence over the file.
func RegisterHook ¶ added in v1.46.0
RegisterHook adds a post-validation callback. Your hook should only access config via the Cfg instance it gets passed. This avoids race conditions during testing, when the global config.Config instance gets updated after these hooks have run.
func SetGitPath ¶ added in v0.18.0
func SetGitPath() error
SetGitPath populates the variable GitPath with the path to the `git` executable. It warns if no path was specified in the configuration.
Types ¶
type Cfg ¶ added in v1.47.0
type Cfg struct { SocketPath string `toml:"socket_path" split_words:"true"` ListenAddr string `toml:"listen_addr" split_words:"true"` TLSListenAddr string `toml:"tls_listen_addr" split_words:"true"` PrometheusListenAddr string `toml:"prometheus_listen_addr" split_words:"true"` BinDir string `toml:"bin_dir"` Git Git `toml:"git" envconfig:"git"` Storages []Storage `toml:"storage" envconfig:"storage"` Logging Logging `toml:"logging" envconfig:"logging"` Prometheus Prometheus `toml:"prometheus"` Auth auth.Config `toml:"auth"` TLS TLS `toml:"tls"` Ruby Ruby `toml:"gitaly-ruby"` GitlabShell GitlabShell `toml:"gitlab-shell"` Concurrency []Concurrency `toml:"concurrency"` GracefulRestartTimeout time.Duration GracefulRestartTimeoutToml duration `toml:"graceful_restart_timeout"` }
Cfg is a container for all config derived from config.toml.
var ( // Config stores the global configuration Config Cfg )
type Concurrency ¶ added in v0.43.0
Concurrency allows endpoints to be limited to a maximum concurrency per repo
type Git ¶ added in v0.18.0
type Git struct { BinPath string `toml:"bin_path"` // ProtocolV2Enabled can be set to true to enable the newer Git protocol // version. This should not be enabled until GitLab *either* stops // using transfer.hideRefs for security purposes, *or* Git protocol v2 // respects this setting: // // https://public-inbox.org/git/20181213155817.27666-1-avarab@gmail.com/T/ // // This is not user-configurable. Once a new Git version has been released, // we can add code to enable it if the detected git binary is new enough ProtocolV2Enabled bool CatfileCacheSize int `toml:"catfile_cache_size"` }
Git contains the settings for the Git executable
type GitlabShell ¶ added in v0.29.0
type GitlabShell struct {
Dir string `toml:"dir"`
}
GitlabShell contains the settings required for executing `gitlab-shell`
type Logging ¶ added in v0.11.0
type Logging struct { internallog.Config Sentry RubySentryDSN string `toml:"ruby_sentry_dsn"` }
Logging contains the logging configuration for Gitaly
type Prometheus ¶ added in v0.11.0
type Prometheus struct {
GRPCLatencyBuckets []float64 `toml:"grpc_latency_buckets"`
}
Prometheus contains additional configuration data for prometheus
type Ruby ¶ added in v0.26.0
type Ruby struct { Dir string `toml:"dir"` MaxRSS int `toml:"max_rss"` GracefulRestartTimeout time.Duration GracefulRestartTimeoutToml duration `toml:"graceful_restart_timeout"` RestartDelay time.Duration RestartDelayToml duration `toml:"restart_delay"` NumWorkers int `toml:"num_workers"` LinguistLanguagesPath string `toml:"linguist_languages_path"` RuggedGitConfigSearchPath string `toml:"rugged_git_config_search_path"` }
Ruby contains setting for Ruby worker processes
type Sentry ¶ added in v1.71.0
Sentry is a sentry.Config. We redefine this type to a different name so we can embed both structs into Logging