This would certainly be wonderful to tackle, but it's not especially
critical, imo. Puppet isn't primarily a tool for syncing files; there
are plenty tools which *are* designed to do that well, and they'll
work just fine used in conjunction with Puppet. You can absolutely use
an rsync exec resource (as many users do) if you have a number of
files that Puppet can't handle. But, as Jeff said, for only hundreds
or thousands of files, Puppet should be fine. If *that* isn't the
case, it's definitely something we should address. Tens or hundreds of
thousands, on the other hand, I would advise using a more specialized
tool.
And from a more technical point of view, bulk operations simply aren't
something Puppet is really capable of handling today. With few
exceptions, Puppet manages resources only on an individual level. We
want to do bulk operations, but it entails significant engineering
effort.
I do think the ability for Puppet itself to use a tool like rsync
would be cool. Partly because then you don't have to, but also because
we could still report on what changed, which is what's somewhat lost
by an exec resource. This could either be as the implementation of
bulk file sourcing or, as I would prefer, an "rsync" (or similar)
resource type.
As for the concerns specifically about plugin syncing, I agree that we
probably ought to be properly using timestamps there. I disagree,
however, that timestamps would be the correct implementation for
general files. Anyway, currently pluginsync is just using file
resources with source set, which use file content rather than
timestamps by default. It should be fairly simple to use timestamps
instead when syncing plugins. Again, though, it's also probably not
realistically going to cause much of a performance issue as it is.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To view this discussion on the web visit
>
https://groups.google.com/d/msg/puppet-dev/-/GThkaIhY6RYJ.