Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

vcsrepo scalable?

Hi.

Right now I'm using the puppet module vcsrepo (https://forge.puppet.com/puppetlabs/vcsrepo/1.0.2) to update repos in a server. The problem is that we started doing that for 75 repos and puppet takes about 13 minutes to finish even when there isn't any changes on the repos. Considering that I need to implement this on a client and the client have more than 200 repos, this module seem to not be the best solution.

Right now the puppet code looks like:

$repos_to_install.each | String $repo_path | {
  vcsrepo { $repo_path:
    ensure   => latest,
    provider => git,
    source   => $repo_git_url,
    revision => 'master'
  }
}

As you can see I iterate a list of repos and for each one I execute the vcsrepo module to fetch the latest version. I would like to know if there is a better way of using the vcsrepo to improve the performance. The goal is to run puppet in less than 5 minutes with 250 repos when these repos have no changes, since is not that bad if the first time puppet runs it takes more than 5 minutes.

If you know that it is impossible to get such performance with vcsrepo or if you know a better way please tell me.

Thanks.