On Jan 25, 2012, at 8:59 AM, Christopher Wood wrote:
> (Define "generalized"?)

Works in more than one specific situation.

> Also, could you expound? I don't know any production scenario where it's 
> desirable to have anything other than "an exact known configuration of hosts".


One thing about a well-written piece of generic code is that it can be used in 
many environments. A lot of my modules do things like "do I have an external 
interface or am I behind the firewall?" and do different things based on those 
answers.  Likewise, when dealing with software components you could be on a 
system dedicated to just that one component, or you could be on a Dev/QA box 
which has dozens of such components installed.  The behavior calls for 
different actions there.

It is very tricky, to the point of impossible in some scenarios, to write this 
kind of intelligent decision choices in Puppet today. You can successfully 
determine if a given class is loaded in the client's manifest, but determining 
if certain things are set within the class is only possible in situations where 
ordering can be clearly constrained.  This makes it truly impossible for 
someone on a different team to write a generic purpose module to fit 
Dev/QA/Prod-US/Prod-EU/Prod-AP/etc environments without having someone sit down 
and carefully work out the dependency flow through the modules to make this 
happen.  And frankly, that kind of hardcore one-two-three ordering goes against 
the design philosophy of Puppet.  It's also nearly impossible when the ordering 
is more like 1, 2...67588, 67589 operations.

I don't believe that Puppet 2.x is capable of solving this problem.  But I 
believe it should be a heavy design criteria for Puppet v3.

-- 
Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source and other 
randomness

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to