On Mon, Feb 8, 2010 at 2:45 PM, Luke Kanies <[email protected]> wrote:
> On Feb 5, 2010, at 8:47 AM, Nigel Kersten wrote: > > On Fri, Feb 5, 2010 at 3:29 AM, Thomas Bellman <[email protected]> >> wrote: >> >>> Nigel Kersten wrote: >>> >>> So facter plugins are kind of different, as they're not actually >>>> required to be in the puppetmaster libdir. >>>> >>>> Say this was a type/provider, and you wanted to add a new parameter, >>>> but only roll it out to your testing environments. >>>> >>> >>> Functions also have this limitation, by the way. >>> >>> What do you do then? >>>> >>>> If the version in the puppetmaster libdir doesn't accept that >>>> parameter, the manifest compilation will fail for clients who *are* >>>> getting a version of the plugin that supports that parameter. >>>> >>> >>> You lose... >>> >>> Well, there are a couple of things you can do to work around this >>> limitation. For one thing, you could run a second puppetmaster >>> process, perhaps on another port, or listening on another IP address, >>> or perhaps even on another machine. >>> >>> Another thing you can do, is to run puppet with local manifests, >>> instead of puppetd connecting to puppetmasterd, when developing >>> the new version of the plugin. That's what I do. It does get a >>> bit iffy if your manifests want to fetch files from the puppetmaster >>> (i.e. that aren't in the "modules" namespace) though, or otherwise >>> need to access files that are only available on the puppetmaster. >>> >>> >>> Good news, though, is that the upcoming "Rowlf" version of Puppet is >>> supposed to solve this for at least resource types. At least Luke has >>> posted patches to the devel list that I gather will do that. But it >>> will probably still be a problem for custom functions (I have somewhat >>> volunteered to take a look at it, but I'm unlikely to find the time >>> before Rowlf is supposed to be out). >>> >> >> + puppet-dev >> >> Luke, how is this going to be solved in practice? The puppetmasterd >> will automatically add modules/*/lib dirs to it's own libdir in the >> context/environment of the current client? >> > > Hmm, not quite true yet. > > At this point, rowlf has a bunch of refactoring around just the language > stuff, not the pure-ruby stuff. > > We're on the path to converging the language resource types and the pure > ruby Puppet::Type classes, but we're still a ways away. Part of that > convergence will be fixing this problem, but I don't expect to see a real > long-term fix until at least the release after rowlf - mostly just because > we don't want to delay rowlf too much further. Can you give us an overview of the way this is intended to work? > > > I'm thinking that in the meantime I may need to encode plugin versions >> in their names, so when a client's manifest contains a given plugin, >> it's always going to refer to that version, and I script something >> that collates all the lib/... directories into the puppetmasterd >> libdir. >> >> I feel dirty. >> > > Yeah, that's ugly. I think it'd be way easier to run environment-specific > masters on a different port or server, wouldn't it? > Not for the number of environments we have... > > BTW, if this is a big priority to someone, I think it's approachable today > - far more than six months ago, with recent refactoring - and I'm happy to > work with someone who's committed to getting it fixed. > > And I know this has been coming up a lot recently, so it's getting pushed > up on my priority list. > What would you need from those of us who are interested in working on this with you Luke? > > -- > Men never do evil so completely and cheerfully as when they do it from a > religious conviction. --Blaise Pascal > --------------------------------------------------------------------- > Luke Kanies -|- http://reductivelabs.com -|- +1(615)594-8199 > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<puppet-dev%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/puppet-dev?hl=en. > > -- nigel -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
