puppet-rsyslog icon indicating copy to clipboard operation
puppet-rsyslog copied to clipboard

Containment Problem: install, config, and service classes are not contained

Open natemccurdy opened this issue 8 years ago • 1 comments

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.

natemccurdy avatar Mar 02 '17 22:03 natemccurdy

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.

natemccurdy avatar Mar 03 '17 19:03 natemccurdy