So the end goal would be to use r10k.  However, in the midterm you need to 
do a few things.

1. Create a roles and profiles pattern for your business logic
2. version your modules inside your VCS.  So basically you can create a 
nginx_profile1_2, nginx_profile_1_3, ... as well as a nginx_1_1 and 
nginx_1_2 that way you can mix and match module versions with profile 
versions and then slowly remove the legacy code once all your nodes have 
been migrated off the legacy code.  You would still have a mono repo but at 
least you don't have to worry about backwards compatibility because each 
module is versioned inside your VCS.  Obviously this will create a lot more 
modules but it gives you some flexibility. 

Now you could put all these "versioned modules" inside R10K as well to give 
you even more flexibility but I think you would want to stick with one 
environment as having all these versioned modules will introduce unwanted 
complexity when you have multiple environments.

This used to be a good pattern before r10k and librarian-puppet came onto 
the market.


Corey

On Saturday, July 4, 2015 at 5:10:44 PM UTC-7, Eric Berg wrote:
>
> Seems like a problem that people run into all the time, but I haven't 
> found any info on this topic that is in the least satisfying.
>
> I have a monolithic puppet repo that is several years old, and which has 
> one main "module" with several dozen manifests along with files and 
> templates.  Currently, this code uses 3rd party/forge modules that are 
> pretty old, and I'd like to update the 3rd party modules (stuff like apt, 
> nginx, node, stdlib, etc...), but I need to do it selectively, since many 
> of our manifests may break in a major-version upgrade.
>
> As I create proper modules from the manifests that we have now, the 
> existing "module" should continue to use the versions they're currently 
> using and the new ones should be able to use the latest versions of these 
> modules.
>
> Simply installing modules, for example by using 'puppet module install' 
> updates the current version of the module, which resides in our git repo in 
> the modules subdir.
>
> Ultimately, it seems that we should move to librarian puppet, but I'm not 
> sure that that solves the basic problem, which is that I need to have 
> multiple versions of the same modules.
>
> How do I accomplish this?
>
> Thanks.
>
> Eric
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/8f6e5eb4-89d7-4163-8b66-a931c96855b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to