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.
