Chapter 9. Release Engineering and r10k

r10k is a tool for deploying Puppet modules and environments based on a release specification. In this chapter, we review all the ways in which you can use r10k, with a focus on powerful features that are often overlooked. Because the use of r10k suffers from a lack of useful step-by-step instructions, we have included a walkthrough tutorial.

We then move on to designing release processes using r10k and the best practices for doing so. As such, we cover the following:

  • How you can use r10k for change control in Puppet

  • How r10k can simplify and enhance automated unit and acceptance testing

  • How r10k can enable multiple teams to coordinate effectively

  • How r10k can provide compliance auditing and controls without hampering development

Puppet Enterprise includes Code Manager, which has identical functionality and a shared parentage with r10k. Everything in this chapter also applies to Code Manager except for the r10k.yaml configuration file.

Further, there are several other tools that mimic r10k functionality and implement improvements for a specific need. All of the advice in this chapter applies to those tools, as well.

Although r10k is currently the best-practice tool to implement the workflows described here, it is not the only solution. This chapter covers testing, release, deployment, and CI strategies in general for Puppet. These topics are applicable to Puppet regardless of the deployment tool that you use.

Puppet Environments ...

Get Puppet Best Practices now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.