I'm looking for a bit of best-practices here. Our puppet environment 
up-until-today has been owned and operated by IT Operations only. We've had a 
single 'production' environment and our code has been managed in a local 
GitHub::FI install. We have ~14,000 lines of code in our PP files. We're trying 
to make two changes to our environment... that may need to be done in the same 
way, or different ways. I'm looking for recommendations on how you might handle 
this given a few constraints.

Constraint #1: We must continue to use GitHub as our source code repo
Constraint #2: Our developers will not run their own Puppet servers. We want to 
use a few (2 ... max 3) 'Environments' in Puppet to handle whether our systems 
are getting the Production release, or the Testing release of code.

Ok... here's the two issues we need to solve:

   #1: Our main "Puppet Repo" contains all of our base classes, site.pp, 
extlookup tables, etc. This repo also contains our private code ... private 
keys, operations-owned bits of data that shouldn't be exposed to the rest of 
our engineers. We want to break this into a "Production" and a "Testing" 
environment on our Puppet servers themselves. I'd like these two environments 
to both pull-changes every 5 minutes from Git, and have an easy but clean 
method of merging changes from the Testing environment into the Production 
environment. This can all be "private" ... meaning that the same access rules 
apply to both environments, we just have different process around them. 

  #2: Our "User Area" for Puppet modules is a much more open, free-form place 
for our engineers to build their own puppet classes for their own machine 
types. We'd like to do the same thing as above ... where our engineers can 
update a "Testing" environment very easily. The difference here is that we want 
our IT Ops staff to be the ones who pull changes from "Testing" into 
"Production" for this repository, on some regular interval. Access to these 
repos is different. IT Ops staff will need read/write to both ... while the 
engineering teams will only be given read/write to the Testing environment.

I'm really not super familiar with Git branching vs forking vs other things... 
I'm looking for suggestions on how to handle this. I was thinking that #1 could 
be handled with branches, and #2 could be handled with forking and push/pull 
requests... but that seemed ugly to me to do it differently on the two. 

—Matt

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to