homeblogcontinuous delivery for puppet enterprise 3 0 is now available

Continuous Delivery for Puppet Enterprise 3.0 is now available

I am very excited to announce the immediate availability of Continuous Delivery for Puppet Enterprise 3.0! Over the last year, we’ve taken to heart the challenges and recommendations our customers have shared with us on how we can make Continuous Delivery for Puppet Enterprise better. Our intent is to be truly customer-obsessed, meet our customers where they are, and help them get to where they want to be. This release focuses on our customers’ needs by providing more context into the impact of a proposed Puppet change by offering Hiera support for Impact Analysis, a simplified approach to defining pipelines as code, and the ability to easily compose custom deployment processes (currently in beta!). Let’s dive in!

Impact Analysis supports Hiera!

Hiera support in Impact Analysis has been the number one requested feature in Continuous Delivery for Puppet Enterprise. Hiera is an incredibly powerful tool, but let’s be honest, it can be a bit opaque. Understanding all of the downstream effects of a small Hiera change can be difficult. With this update, Impact Analysis will now detect the key/value pairs that change in your Hiera hierarchies within your control repositories and assess the systems impacted as well as how their desired state will change. This new capability requires Puppet Enterprise 2019.2.

Define your pipelines as code

Many of you have expressed the need to import many Puppet modules into Continuous Delivery for Puppet Enterprise as well as the need to have an audit history of past pipeline definitions. While the Continuous Delivery for Puppet Enterprise pipeline GUI builder is simple to learn, it doesn’t meet those needs well. Luckily, there’s already a well-established pattern in the industry to meet these needs: pipelines as code.

Pipelines as code enables you to define all of the pipelines and configurations for your control repositories and modules with a single YAML file stored in the same Git repository as your control repositories and modules. By storing the pipeline definition as code in version control, you gain a clear audit history of the past pipeline definitions, as well as the ability to better coordinate Puppet code changes that require changes to pipelines. Further, it’s easier to stamp out identical pipelines across dozens of Puppet modules.

Automate your existing deployment processes

Previous to 3.0, the only deployment policies available to you were the ones that were built in. However, many of you found the built-in policies insufficient for how you need to deploy Puppet changes to a target set of infrastructure nodes. For those of you that have been using Puppet Enterprise for a while, you’ve built your own processes for promoting Puppet code and getting it from Git to your infrastructure nodes. The built-in policies made it impossible to bend Continuous Delivery for Puppet Enterprise to your existing ways of working with Puppet.

I’m excited to announce our new beta feature, custom deployment policies. With custom deployment policies you can now compose your own set of steps that need to happen to deploy Puppet changes. We’ve included helper functions to work with Git, node groups, the Puppet Enterprise orchestrator, and Code Manager. It’s also trivial to execute Bolt tasks and plans from Puppet Enterprise as part of a deployment policy. This level of composability makes it possible to automate processes that were never automatable before. For example, it’s possible to build a Bolt task that updates a Slack channel when a deployment begins or finishes. Or perhaps you want to update a ServiceNow ticket with deployment results. All of this becomes possible with the new custom deployment policies. This feature will be in beta for now, but we encourage you to try it out!

To learn more about how to write custom deployment policies, see the documentation.

We hope you’re as excited about Continuous Delivery for Puppet Enterprise 3.0 as we are! Please feel free to drop in the #continuous-delivery room in the Puppet community Slack to let us know what you think.

Try it now.

Carl Caum is a senior product manager at Puppet.

Learn more