Issue #2435 has been updated by Nigel Kersten.

I feel like it is a blocker, even though the workaround is easy. It's up to you 
if you want to set it to High.
----------------------------------------
Bug #2435: puppetmasterd can't find per-environment modules with a global 
manifest entry point.
http://projects.reductivelabs.com/issues/2435

Author: Nigel Kersten
Status: Accepted
Priority: Normal
Assigned to: 
Category: 
Target version: 0.25.0
Complexity: Unknown
Affected version: 0.25.0
Keywords: 


(This title could do with renaming once we've sorted out exactly where the 
problem lies. It's also possible this is going to be deemed to be working as 
expected...)

In puppet 0.24.8, we have a manifest directive of /etc/puppet/manifests/sites.pp

This only includes:
<pre>
node default { include base }
</pre>

and then each environment has a modulepath directive, which is where the 'base' 
module can be found.

Testing the latest 0.25.x tree, this doesn't work at all with either a 0.24.8 
or 0.25.0 client. It simply fails to find the module until it has been mounted 
at least once.

Error on the server:
<pre>
info: Could not find class base for nigelk-laptop-tester.corp.foo
err: Could not find class base at /etc/puppet/manifests/site.pp:7 on node 
nigelk-laptop-tester.corp.foo
</pre>

However, if I specify a manifest directive *in* the environment block in 
puppet.conf on the server as say:

<pre>
[test_env]
manifest  = /var/lib/puppet/environments/test_env/manifests/site.pp
modulepath = /var/lib/puppet/environments/test_env/modules
</pre>

then the class/module 'base' is found happily.


Now, this all occurs from a fresh start of the puppet server.

If I puppet a client against the <code>test_env</code> environment above, and 
*then* without restarting the server, re-puppet the same client, specifying 
another environment <code>test_env_2</code>

<pre>
[test_env_2]
modulepath = /var/lib/puppet/environments/test_env_2/modules
</pre>

(and thus this environment is using the global 
<code>/etc/puppet/manifests/site.pp</code> manifest file. Verified with 
gratuitous notice commands sprinkled throughout.)

then the module/class 'base' is found happily.

so I'm unsure how best to describe this problem, but it's in the autoloading 
code I guess.

If this is unsupported, and we're just meant to have environment-specific 
manifest directives (and that these work is really awesome), that's ok, but 
superficially this appears to be a regression.


-- 
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://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to