Gav
2013-Jun-24 08:59 UTC
[Puppet Users] Workflows and preventing accidental code promotion.
We have quite a large team spread across the globe making multiple changes to Puppet manifests each day. This in itself can be a little tricky to keep track of, but we also have multiple environments - ENG, DEV, etc where we promote our changes to before they reach PROD. Attached to each of those environments are the respective ENG, DEV, etc servers. Some changes are can be quite major so they need to stay in a particular period of time to allow other teams to test before they are migrated up to the next environment. All workflows that I have seen so far appear to be quite linear and checkout a individual revision for any given environment, test, rinse and repeat until production. I have read the dynamic environments blog post<https://puppetlabs.com/blog/git-workflow-and-puppet-environments/>several times trying to make it work for us, but I don''t feel it does. We wanted to cherry-pick individual changesets from one environment into the next, ensuring you are not accidently promoting anyone elses changes. I guess I am asking how you achieve a simple workflow and prevent accidental promotion of someone elses code, whilst maintaining several environments? Cheers, Gavin -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Jason Slagle
2013-Jun-24 13:35 UTC
Re: [Puppet Users] Workflows and preventing accidental code promotion.
On 06/24/2013 04:59 AM, Gav wrote:> We have quite a large team spread across the globe making multiple > changes to Puppet manifests each day. This in itself can be a little > tricky to keep track of, but we also have multiple environments - ENG, > DEV, etc where we promote our changes to before they reach PROD. > Attached to each of those environments are the respective ENG, DEV, etc > servers. Some changes are can be quite major so they need to stay in a > particular period of time to allow other teams to test before they are > migrated up to the next environment. > > All workflows that I have seen so far appear to be quite linear and > checkout a individual revision for any given environment, test, rinse > and repeat until production. I have read the dynamic environments blog > post <https://puppetlabs.com/blog/git-workflow-and-puppet-environments/> > several times trying to make it work for us, but I don''t feel it does. > We wanted to cherry-pick individual changesets from one environment into > the next, ensuring you are not accidently promoting anyone elses changes. > > I guess I am asking how you achieve a simple workflow and prevent > accidental promotion of someone elses code, whilst maintaining several > environments?Howdy! This seems more like a version control problem than a puppet issue - the same problem exists for developers testing stuff. Have you looked at git-flow? Basically it promotes a series of branch types to do various things. You could have a handful of "release" branches that are what get pushed to the various machines. Then you control what gets there by what you merge. This prevents having to cherry-pick individual commits out of a given branch - just don''t merge before you want it to go to the test machine. Jason -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.