Issue #12173 has been updated by John Bollinger.

eric sorenson wrote:
> The idea is that we should restrict puppet-master processes to one 
> environment per process; it's the only deterministic way to avoid the problem 
> as stated.


Are you sure about that?  As the old saw goes, "any problem in computer science 
can be solved with enough layers of indirection."  It seems to me that this 
issue could be addressed by interposing per-environment classes or (Ruby) 
modules into which native plugins are loaded, and from which they are resolved 
/ used.  Perhaps implementing such a thing would require touching a lot of 
code, but given the amount of metacode in Puppet, I don't think that's a given.

In any case, surely it would be better to find a way to make the feature work 
as it was always promised to do, instead of pulling back with an "oops, no can 
do."


----------------------------------------
Bug #12173: Masters cannot reliably distinguish between multiple versions of a 
type/function/plugin used in different environments
https://projects.puppetlabs.com/issues/12173#change-90726

* Author: Nigel Kersten
* Status: Accepted
* Priority: Normal
* Assignee: eric sorenson
* Category: environments
* Target version: 3.x
* Affected Puppet version: 2.7.0
* Keywords: telly_deprecation BD
* Branch: 
----------------------------------------
Quoted from a previous ticket, #4409

The key problem is that a master can’t reliably distinguish between two 
versions of the same native type that are used in different environments (or 
between an environment which uses a native type and an environment which 
doesn’t). This is due to the fact that native types are defined using ruby 
code, which the master loads into Ruby classes via “require”. Since there can 
only be one Ruby class with a given name at a time, this prevents the master 
from being able to have two different versions of the same type in two 
different environments. This makes life difficult for people who are trying to 
use a “test” environment to try out a new version of a native type on a limited 
set of nodes before deploying it to all nodes.

A secondary problem is that the location where the master looks for the 
definition of native types is not the same as the location of plug-in files 
that the master distributes to agents. This leads to confusion even for people 
who are not using a “test” environment, because it means that they have to put 
their type definitions in two places, one where they can be picked up by the 
master and one where they can be sent as plug-ins to agents.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to