in files/gitlab-cookbooks/gitaly/libraries/gitaly.rb [57:135]
def parse_gitaly_storages
combined_storages = {}
Gitlab['git_data_dirs'].each do |name, details|
entry = {
'gitaly_address' => details['gitaly_address'] || gitaly_address,
}
entry['gitaly_token'] = details['gitaly_token'] if details['gitaly_token']
entry['path'] = File.join(details['path'] || details[:path], 'repositories') if details['path'] || details[:path]
combined_storages[name] = entry
end
Gitlab['gitlab_rails']['repositories_storages']&.each do |name, details|
entry = {
'gitaly_address' => details['gitaly_address'] || gitaly_address,
}
entry['gitaly_token'] = details['gitaly_token'] if details['gitaly_token']
entry['path'] = File.join(details['path'], 'repositories') if details['path']
combined_storages[name] = if combined_storages[name]
combined_storages[name].merge(entry)
else
entry
end
end
if Gitlab['gitaly'].dig('configuration', 'storage')
Gitlab['gitaly']['configuration']['storage'].each do |storage|
entry = {
'path' => storage['path'],
}
combined_storages[storage['name']] = if combined_storages[storage['name']]
combined_storages[storage['name']].merge(entry)
else
entry
end
end
end
if combined_storages.empty?
combined_storages['default'] = {
'gitaly_address' => gitaly_address,
'path' => '/var/opt/gitlab/git-data/repositories'
}
end
Gitlab['gitlab_rails']['repositories_storages'] ||= {}
Gitlab['gitaly']['configuration'] ||= {}
Gitlab['gitaly']['configuration']['storage'] ||= []
update_rails_storage_config = Gitlab['gitlab_rails']['repositories_storages'].empty?
update_gitaly_storage_config = Gitlab['gitaly']['configuration']['storage'].empty?
combined_storages.each do |name, details|
details['gitaly_address'] = gitaly_address unless details['gitaly_address']
without_path = details.clone.except('path')
Gitlab['gitlab_rails']['repositories_storages'][name] = without_path if update_rails_storage_config
next unless update_gitaly_storage_config
next unless details['path']
Gitlab['gitaly']['configuration']['storage'] << {
name: name.to_s,
path: details['path']
}
end
end