Monday, October 5, 2015

What is a Package Collection

What is a Package Collection in Puppet Version 4?

The Puppet ecosystem contains many tightly related and dependent packages. Puppet, Facter, MCollective, and the Ruby interpreter are all tightly related dependencies. The Puppet agent, Puppet server, and PuppetDB are self-standing but interdependent applications.

Production Puppet environments have been struggling with two conflicting needs:

It is important to stay up to date with the latest improvements and security fixes.

Improvements and upgrades in an application would sometimes introduce problems for interdependent components of the Puppet ecosystem. 

Puppet Labs has chosen to address these concerns with two related changes. Puppet and all core dependencies are shipped together in a single package. This change reduces the need to ensure compatibility across a wide variety of versions of dependencies. It also ensures that modern versions of Ruby are available on every supported operating system. Components of the Puppet ecosystem will be tested, packaged, and shipped together in Package Collections. Significant improvements and breaking changes will be introduced in a new Package Collection. This allows Puppet environments to safely track updates within a Package Collection, knowing that all versions within the collection are
tested and guaranteed to work together.