puppet-rsyslog
puppet-rsyslog copied to clipboard
Containment Problem: install, config, and service classes are not contained
The rsyslog::install, rsyslog::config, and rsyslog::service classes are not contained within rsyslog. This makes it impossible to create a relationship to the rsyslog class and expect the packages, services, and configs to be managed as part of that relationship.
A real-world problem that this creates is that if I want to make sure I'm registered to Satellite or install EPEL repos before I try to install rsyslog, I'd get errors about about missing rsyslog packages.
Example Code
include subscription_manager_stuff
include rsyslog::client
Class['subscription_manager_stuff'] -> Class['rsyslog::client']
# This doesn't work either
Class['subscription_manager_stuff'] -> Class['rsyslog']
Expected Outcome
Subscription Manager registers me to Satellite before rsyslog packages are installed. Convergence in a single Puppet run.
Actual Outcome
The rsyslog packages are intalled before I'm registered to Satellite, which causes failures in my Puppet run. Convergence requires two Puppet runs.
I suppose a short term fix would be to just make a relationship to the rsyslog::install class. But that is rather unintuitive if you don't know the problem exists.
I'll work on a PR and see if I can get this patched.