Issue #11900 has been updated by Nigel Kersten.
eric sorenson wrote: > I understand all you've written nigel and I still would like the ability to > break the environment into two keys; specifically, one to specify the > organisational unit and one to pick the branch of code inside that unit that > ought to be run. Hmm, unless the modulepath=/root/$environment/modules honors > the '/' character inside $environment, that'd be perfect... I genuinely don't know as I haven't tried it.... maybe? :) Is it possible for you to generate directories based upon the possible values of the two keys? Do you know what they all would be? Ultimately it would be quite awesome if we could simply set manifest and modulepath in an ENC... but you'd have to accept that you'd get: * fact values from existing facts * ENC determines modulepath for pluginsyncing facts * fact values from pluginsynced facts. which could be rather frustrating, not being able to make modulepath decisions based upon facts in modules... ---------------------------------------- Feature #11900: Dynamic environment interpolation in puppet master configuration https://projects.puppetlabs.com/issues/11900 Author: Mike McLane Status: Needs More Information Priority: Normal Assignee: Kelsey Hightower Category: server Target version: Affected Puppet version: development Keywords: dynamic environment, puppet master configuration, interopolated configuration, environment parameter Branch: In providing a single Puppet master to multiple teams, where each team has their own test/release cadence, we maintain that each team would like to include their own dynamic module path based on the environment passed from the agent. We have a re-usability case where an enterprise level of common modules is provided at the lowest path inclusion priority, the local team has a set of common modules at the next highest level of include priority, and then the dynamic environment has the highest level of inclusion priority. This allows for development and testing cases to be carried out through dynamic pulls of environment-labeled branches in git. Some form of regex matching of the environment to the configuration section, might help in this regard. In such a setup it would be nice to configure a puppet master as: <pre> [teama*] manifest = $confdir/environments/manifests/teamb/$environment/site.pp modulepath = $confdir/environments/modules/teamb/$environment/:$confdir/common/modules/teamb/:$confdir/common/modules/enterprise/ [teamb*] manifest = $confdir/environments/manifests/teama/$environment/site.pp modulepath = $confdir/environments/modules/teama/$environment/:$confdir/common/modules/teama/:$confdir/common/modules/enterprise/ </pre> ...or, alternatively.. such a case where the environment passed in is parsed within the configuration, allowing config-file variables to be set as such: <pre> [production] # passed in $environment = "team-production-product" $group = $environment.split("-")[0] # $releasecycle = $environment.split("-")[1] # $product = $environment.split("-")[2] manifest = $confdir/environments/manifests/$group/$environment/site.pp modulepath = $confdir/environments/modules/$group/$environment/:$confdir/common/modules/$group/:$confdir/common/modules/enterprise/ </pre> Within the base environments path, I would initialize the directory as a git repository and keep a post-receive wrapper script to dynamically fetch environments based on the $environment path. -- 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 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.
