The control repository is the heart of code management for r10k and Code Manager. It is a single point of entry, represented as a Git repository, that describes one or more environments of one or more Puppet Masters.
r10k is designed to provide the following to a Puppet environment, from a control repository:
- Each Puppet module required to make a code set via the Puppetfile
- A Hiera hierarchy
- Hiera data
- An environment-specific configuration
- Any additional code (such as site.pp, roles, or profiles)
Multiple states on a single Puppet Master can be achieved by using a concept that was launched in Puppet 3: Puppet environments. In Puppet 3, we gained the ability to use multiple directories to store code, and to select which ...