Puppet Environments provide a way to use different versions of the same modules for different populations of nodes. Our Code Management workflow maps git branches onto environments, allowing administrators to manage the flow of change towards their production estate with software development best practices like pull requests, code review, and merge-ups.
But there are a few problems with the current implementation of environments on the puppet server and catalog compiler. Code can "bleed through" from one environment to another, and compilation problems in one environment can affect others. Now that we have the power of Greyskull – errr, Jetty – at our disposal, we have an opportunity to address these problems; this epic covers improvements and bugfixes around separating environments from one another.