What’s new from the Puppet modules team: January 2018 edition

Breadcrumb

This is a monthly blog post from the Puppet modules team describing what we’ve accomplished this month, and what we hope to work on for the forthcoming month on Puppet Supported modules.

PDK Convert

The Puppet Developer Experience (PDE) team recently added a new function to Puppet Development Kit (PDK), called ‘pdk convert’, as part of the 1.3 release. It can be run on any Puppet module, and will convert the module to use the PDK standardized file structure and templates. If you have your own templates for modules, then you can continue to use them. PDK is designed to help improve module quality, by applying standardized templates and structure to a module. It is recommended by Puppet for developing modules.

In order to standardize the Puppet Supported modules, we’re running pdk convert on all the Puppet Supported modules to convert them to the PDK standard.

The PDE team did great work on this and you can read all about how to use the functionality here. The PDE team continues to develop and add new functions to PDK.

Rubocop

You may have noticed releases late last year and early this year applying Rubocop to modules. Almost all Puppet modules now have Rubocop enabled, and this work is continuing this year. The Rubocop work is coinciding with an effort to reduce the number of outstanding pull requests on Puppet Supported modules. We’re trying to merge or close all pull requests before we run Rubocop. You may have seen a number of pull requests being merged during the last couple of months. Thanks to everyone for your contributions! Of course, if you have specific queries on PRs or would like to discuss them please join our community PR triage. Please join #forge-modules on Slack for announcements of the video conference hosted on Thursdays at 9:00 a.m. PST.

Cisco module

We’ve started work on a module to support Cisco IOS Catalyst devices. We’re in the early stages of this work and will keep you updated as we start to release our work.

Puppet Device

As part of a larger effort to improve our agentless support, we’re making some changes to the ‘puppet device’ functionality to make it easier to use. The aim of this effort is to make it easier to deploy the Cisco IOS module, and other agentless networking modules, such as the F5 module. These changes will be included in an upcoming Puppet release and we’ll include some documentation on how to use it. If you’re a current user of Puppet Device and would like more information, please feel free to contact me (details below).

Modules released

It’s been a busy month for us, with a lot of releases! Below is the list of modules that were released in the last month. Please see the relevant change log for details on what was changed. When there were multiple releases, we've listed the latest release.

Community preview releases

In January we had two Windows modules released for community preview: the Scheduled Task 0.1.0 and DSC Lite 0.1.0 modules. Scheduled Task 0.1.0 contains the same functionality as the scheduled task resource in Puppet core. We’ve put it into a module so we can release improvements more regularly. DSC Lite 0.1.0 is a lightweight version of the DSC module, designed for advanced users who want flexibility with DSC Resources or the ability to use their own custom DSC Resources.

We are looking for feedback and improvement requests for these modules while we continue to add features. Please contact Larissa Lane (larissa at puppet dot com) with feedback. Eventually these modules will become part of our Supported Modules offering.

What’s next?

Our focus for the immediate future will be to continue to apply pdk convert to our supported modules and finalize the Rubocop work. Once these items are done our modules will have a consistent structure. Other areas of focus will be changelog generator to automatically generate change logs for modules and using Puppet Strings to automatically generate module documentation from code. Our work on Puppet Device and the Cisco module will continue. We have other things in the pipeline, which we’ll highlight in due course.

If you’ve any queries or want a specific Puppet module to get some updates, please feel free to reach out to me directly (Davin dot Hanlon at Puppet dot com), or ping the forge-modules Slack room. The modules team appreciates all community contributions, so thank you, and continue the great work!

Davin Hanlon is the product owner for modules at Puppet.

Learn More

The Puppet Forge is the place to download modules and see all documentation.