<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 12, 2015 at 2:15 PM, Jeremy Stanley <span dir="ltr"><<a href="mailto:fungi@yuggoth.org" target="_blank">fungi@yuggoth.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Change <a href="https://review.openstack.org/168306" rel="noreferrer" target="_blank">https://review.openstack.org/168306</a> for puppet-zuul came to<br>
my attention earlier today when it merged. After a quick discussion<br>
on IRC, Spencer proposed a revert which I approved so that we can<br>
get a little more discussion going about this topic.<br>
<br>
First, I'm really sorry I didn't see and weigh in on it sooner (it's<br>
not like I didn't have time, it was ~4.5 months old). Second, we've<br>
grown lots of new core reviewers and I'm thrilled they're reviewing<br>
and approving changes, and I don't want to discourage that in any<br>
way, so thank you to those of you who did review that change.<br>
<br>
In the past, not using ensure=>running on services in our Puppet<br>
modules was intentional, particularly for more stateful services,<br>
especially for services which trigger other (possibly remote)<br>
actions and have a potential to make a mess. It's pretty likely that<br>
those of us who were around for the earlier discussions about it<br>
failed to write it down anywhere obvious, leading others to assume<br>
it's a bug/oversight. I see a couple of obvious solutions though<br>
there are no doubt others:<br>
<br>
1. Document in each module where we do this, at least in the readme<br>
and probably also in an inline comment around the service<br>
definition, that it's that way on purpose. Optionally, make the<br>
ensure conditional on a class parameter that defaults to unmanaged<br>
in case some downstreams want to use Puppet like a service manager.<br>
<br>
2. Similar managed/unmanaged parameter, but make it default to<br>
running and override the default to unmanaged in our<br>
::openstack_project classes. This means that we cease consuming our<br>
modules with the same defaults as downstream users, however if it<br>
turns out that our OpenStack Infra root sysadmins really do have a<br>
very different preference from the majority of our downstream<br>
consumers then at least we can be clear about that.<br></blockquote><div>I am in favor of the managed/unmanaged parameter (I don't have a preference for the default).</div><div><br></div><div>Managing the state of a service is one of the most fundamental features of puppet[1]. Downstream users of a puppet module will always expect the module to install packages, change config files, and start services. They are expecting puppet to do automate everything within a single node. If they are doing maintenance and they do not want packages installed, config files changed, or services started, they will disable puppet during the maintenance window. While this does not appear to fit in with Infra's workflow, it is a valid use case for downstream users and I believe it should be allowed via a parameter. Of course documenting the unexpected behavior is the next best thing.</div><div><br></div><div>Colleen</div><div><br></div><div>[1] <a href="https://docs.puppetlabs.com/puppet_core_types_cheatsheet.pdf">https://docs.puppetlabs.com/puppet_core_types_cheatsheet.pdf</a>  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888">--<br>
Jeremy Stanley<br>
<br>
_______________________________________________<br>
OpenStack-Infra mailing list<br>
<a href="mailto:OpenStack-Infra@lists.openstack.org">OpenStack-Infra@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra</a><br>
</font></span></blockquote></div><br></div></div>