On Mon, Nov 17, 2014 at 6:22 AM, Byron Miller <byr...@gmail.com> wrote:
> I for one would love to feel more safe when tempting fate upgrading my > puppet infrastructure. I like the idea of rolling upgrades (if upgraded, > point here), but i would love to have some sort of process in puppet to > handle this. A configuration/feature flag that says "hey puppet, we're > upgrading, lets converge". Have some sort of orchestration/reporting > capability in this migration state (a light convergence catalog - hey, my > file service in upgrade mode is only serving new agent code and if i see > you have new agent code, converge to new master and call home) > What I'd been thinking (pretty much the same as what Erik said) is that you'd do something like this: 1. Set up a new Puppet 4 master (alongside your Puppet 3 master, as opposed to replacing it). 2. Have a module with a class in it called "puppet4::agent"; it requires a parameter called "puppet4_server", and the implementation of the class is to basically do "package {'puppet': ensure => 4.0 } -> ini_setting {'puppet4_server': file => 'puppet.conf', section => 'agent', setting => 'server', value => $puppet4_server }". 3. You add this class to the classification of the nodes in your fleet at whatever cadence makes sense for you. I'd like to play around with step 2 there and prove that out a bit more, but it seems like it should work. Also, since Puppet 4 will have the future parser enabled by default, it seems like it would be highly desirable to move nodes over from 3 to 4 a few at a time and very deliberately, just to make sure that the language changes don't break your existing manifests. This strategy would encourage that approach over the more risky approach of simply trying to upgrade your whole fleet all at once. We were also batting around the idea of possibly putting the puppet4 packages in separate yum/apt repos from the puppet3 packages, so that ensure=>latest wouldn't catch anyone by surprise. We haven't talked through this in much detail yet (I recall that there was a spirited debate around this idea when we bumped from puppet2 to puppet3), so I don't know if it has any legs, but it did come up as an idea. -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CAMx1QfLEx40bF%2B_y9fPRacD8_TxRUuCt3iYeP9KYTD-1z7o%3D2w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.