Hi, guys.

I've been trying to dig through the group backlog to understand what
the vision is for using module versioning and it's not clear to me how
versions for modules are intended to be used in the future.  I'll lay
out some details about my setup and how I would envision using module
versions and maybe some of those 'in the know' would be willing to
comment.

The basic idea is that it would be possible to include a specific
version of a module and to have multiple versions of a module exist in
my manifests at the same time.  I'm sure this has been talked about
before.  It's very similar to using Bundler/Gemfiles with Ruby when
you have multiple versions of a gem installed.

- 56 Puppet environments, basically a matrix of applications and
deployment environments

- 1 SA group responsible for building new boxes, managing system-level
services and configs, troubleshooting OS-level problems, etc.

- 8+ application groups that all have different release schedules and
want to make whatever Puppet changes they require and release those
changes as they release their applications.

Obviously, the tricky part is doing independent releases without the
forks/branches.  I'm trying to avoid having a ton of branches/forks of
my manifests around because that makes it really hard for the SA group
to push changes in an organized way to each environment.  If they had
a change to push out to update resolv.conf, for example (yes, yes, use
DHCP, that's a whole different fight), It would suck to have to make
that change and then merge it to all of these forks/branches to
actually push it out.

It seems like Bundler-style autoloading would really help with this.
Group A needs to make some changes to the Foo module.  Group B also
uses the Foo module and while they want the changes that Group A
proposes, releasing those changes to their servers needs to be
coordinated with an application change to support the changes.  It
would be great if the AppA module could include Foo-2.0.0 and the AppB
module could include Foo-1.2.3 until they're ready to use the new
changes.  Both versions of the module would exist in my moduledir
until it's reasonable to retire v1.2.3.  No extra branches/forks of
the manifests needed (except for testing purposes).

So is this approach crazy?  Is this where versioning/autoloading is
going?  Is anybody working on something like this?  Can I help?

Thanks!

Rob Sweet
Manheim

-- 
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].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to