Friday, August 21, 2015

Upgrading to Puppetlabs-Apt 2.0

The Puppetlabs Apt module went through a major change earlier this year. It crossed a semver boundary and released as 2.0. This is one of the only cases we've had as a community where a core module has moved over a major version. The initial reaction to Apt 2.0 was everyone quickly pinning their modules to use < 2.0. Morgan, Daenney and the puppetlabs modules team quickly pushed out a 2.1.0 release which is backwards compatible with some core functionality inside the Apt module. It is important to note that not everything is backwards compatible, only a few things.

At OpenStack-Infra, we wanted to use the latest version of bfraser's graphana module but it requires apt >= 2.0. Paul spun up a change to our main repository and then several more changes to move to the new syntax. Here is an example.

Why does this work? Because apt::key was added back in 2.1.0 to be compatible with older apt versions. See the warning that it will generate here. Because of this, you can upgrade apt in place safely, provided you are not use the gnarlier parts of the old Apt module. Notably the unattended-upgrades subsection has been moved out into its own module.

I encourage those of you running an infrastructure to follow our lead and upgrade your Apt module. I encourage those of you maintaining and releasing modules to bump your minimum version of Apt to => 2.1. I believe there is a requirement for some velocity in this. If we wait too long, too many new users of Puppet will be caught across a schism of the apt module. That is, unless everyone just runs RedHat anyways.

No comments:

Post a Comment