I feel that some discussion needs to be included in the stdmod templates or associated documentation on configuring repos.

I'm not a fan of modules that either have dependencies on other modules that configure repos or configure repos directly themselves.  Package repos are something that the consumer/administrator needs to be fully in control.  At my $day_job, we have local mirrors of most package repos for stability and performance reasons.

As a pointed example,if a module declares a yumrepo resource for epel there's a very high chance of having a conflict with a resource the user had declared. It's vastly more flexible to allow `Class['repoforfoo'] -> Class['foo']` outside of the module.

There are a few exceptions where directly configuration package repos might make sense, such as with postgresql since most users are not going to want to use distro provided packages.  `puppetlabs/postresql` is reasonable example of this: https://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/globals.pp#L43 . I am a user of that specific module but I configure the package repos myself elsewhere in the manifest.