in internal/gitaly/config/config.go [879:977]
func (cfg *Cfg) Sanitize() error {
if cfg.BinDir != "" {
var err error
if cfg.BinDir, err = filepath.Abs(cfg.BinDir); err != nil {
return err
}
}
if cfg.RuntimeDir != "" {
var err error
if cfg.RuntimeDir, err = filepath.Abs(cfg.RuntimeDir); err != nil {
return err
}
}
if cfg.PackObjectsCache.Enabled {
if cfg.PackObjectsCache.MaxAge == 0 {
cfg.PackObjectsCache.MaxAge = duration.Duration(5 * time.Minute)
}
if cfg.PackObjectsCache.Dir == "" && len(cfg.Storages) > 0 {
cfg.PackObjectsCache.Dir = filepath.Join(cfg.Storages[0].Path, GitalyDataPrefix, "PackObjectsCache")
}
}
if cfg.PackObjectsLimiting.MaxQueueLength == 0 {
cfg.PackObjectsLimiting.MaxQueueLength = defaultPackObjectsLimitingQueueSize
}
for i := range cfg.Concurrency {
if cfg.Concurrency[i].MaxQueueSize == 0 {
cfg.Concurrency[i].MaxQueueSize = defaultConcurrencyQueueSize
}
}
if cfg.GracefulRestartTimeout.Duration() == 0 {
cfg.GracefulRestartTimeout = duration.Duration(time.Minute)
}
// Only set default secret file if the secret is not configured directly.
if cfg.Gitlab.SecretFile == "" && cfg.Gitlab.Secret == "" {
cfg.Gitlab.SecretFile = filepath.Join(cfg.GitlabShell.Dir, ".gitlab_shell_secret")
}
if cfg.Hooks.CustomHooksDir == "" && cfg.GitlabShell.Dir != "" {
cfg.Hooks.CustomHooksDir = filepath.Join(cfg.GitlabShell.Dir, "hooks")
}
if reflect.DeepEqual(cfg.DailyMaintenance, DailyJob{}) {
cfg.DailyMaintenance = defaultMaintenanceWindow(cfg.Storages)
}
if cfg.Cgroups.Mountpoint == "" {
cfg.Cgroups.Mountpoint = "/sys/fs/cgroup"
}
if cfg.Cgroups.HierarchyRoot == "" {
cfg.Cgroups.HierarchyRoot = "gitaly"
}
cfg.Cgroups.FallbackToOldVersion()
if cfg.Cgroups.Repositories.Count != 0 && cfg.Cgroups.Repositories.MaxCgroupsPerRepo == 0 {
cfg.Cgroups.Repositories.MaxCgroupsPerRepo = 1
}
if cfg.Backup.Layout == "" {
cfg.Backup.Layout = "pointer"
}
if cfg.Backup.WALWorkerCount == 0 {
cfg.Backup.WALWorkerCount = 1
}
if cfg.Timeout.UploadPackNegotiation == 0 {
cfg.Timeout.UploadPackNegotiation = duration.Duration(10 * time.Minute)
}
if cfg.Timeout.UploadArchiveNegotiation == 0 {
cfg.Timeout.UploadArchiveNegotiation = duration.Duration(time.Minute)
}
if cfg.Raft.Enabled {
cfg.Raft = cfg.Raft.fulfillDefaults()
if cfg.Raft.SnapshotDir == "" && len(cfg.Storages) > 0 {
cfg.Raft.SnapshotDir = filepath.Join(cfg.Storages[0].Path, GitalyDataPrefix, "raft/snapshots")
}
}
if cfg.Logging.Config.Format == "" {
cfg.Logging.Config.Format = "text"
}
if cfg.Logging.Config.Level == "" {
cfg.Logging.Config.Level = "info"
}
return nil
}