Now in technicolor

Puppet Camp “Become a better developer” took place last week, and in case you missed it you can watch all the talks on YouTube; IAC Team members David Schmitt and James Pogran providing 2 of the 6 talks. Learn about “Operational Verification” from David or ramp up your skills using Puppet VS Code from James

Community Day Triage Stats

A few members of the team were unwell this week but the rest managed to process a total of 32 issues and PRs across our modules and tools repos.

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

Check all the ways to reach us if you want to directly contact us about anything module related.

New Module / Gem Releases

The following modules were released this week:

puppet_litmus is now compatible with Bolt 3.x

A massive shout out to Tom Beech and the Bolt team for working on testing puppet_litmus for Bolt 3.x support. It has now been released and is compatible with Bolt 3.x

Facter 4.1.1 Release from Nights Watch team

A big thank you to the Nights Watch team, specifically, Gheorghe Popescu and Gabriel Nagy for the quick turn around on the fix and release of facter 4.1.1 which fixes the failures in puppetlabs-haproxy and puppetlabs-docker modules. Additional details are available in the following tickets IAC-1582 and FACT-3024

Cloud CI Update

We have ported puppetlabs-dsc_lite module successfully to run on cloud CI. Porting the puppetlabs-dsc_lite module to cloud CI will allow us to continue the support and maintenance for it by running the tests at PR level and nightly level until the new improved DSC modules is available. We have also started the investigation for the porting of puppetlabs-sqlserver module. We have updated all our multi node modules to use the new default litmus inventory file location, wrt the latest changes in the litmus GH-380. From this week we started to work on preparing training and educational materials for cloud CI.

Resource API: Custom Insync

We’ve been doing some work over the last couple of weeks to make it possible to add custom insync handling to Resource API resources. In short, this is to help with cases where the default property comparison logic in Puppet doesn’t work for a use case - when you want to compare case insensitive strings or only ensure that some members of a group exist (without having to specify all members of that group) for example. We’re nearing completion of that work, which you can see in this draft PR. If this is something you think you might find useful or have some feedback on (either the implementation or the problem we’re seeking to solve), comment on the issue or drop us a line in the #puppet-dev channel in the community slack!

DSC: Validation Mode Incoming

Related to the work we’re doing to enable support for custom insync in the Resource API, we plan to add a new parameter to the Puppetized DSC modules (all the modules in the dsc-* namespace on the forge). This new parameter, validation_mode, will default to property - the existing behavior you’re familiar with that relies on Puppet for property-by-property state validation and gives you coherent and useful change reporting. It will also have a new mode, resource, which can be used to fall back to the DSC Resource’s built-in state comparison, using the Test method for that Resource. This should resolve numerous problems where DSC Resources don’t work as expected because of a mismatch in the Resource’s API spec and what is actually returned or where Puppet can’t actually do a meaningful state comparison (as in the case of subset group membership). This new functionality is blocked on the implementation of custom insync in the Resource API and its subsequent release with upcoming versions of Puppet, but we’re confident that this will provide a much-improved user experience for folks leveraging DSC Resources which are not currently as functional as we’d like. Speaking of DSC, we’re up to 71 PowerShell modules with DSC Resources which have been puppetized and published to the forge!

Developer Experience

​ The team has reviewed the existing PDK validate tickets and identified which ones to address first. Ciaran wrote an excellent document on how PDK validate works as a result of his investigations. David is continuing his work into improving the PDK packaging process and release workflow, and has some promising results. James has closed the PDK survey and is collating the data for use in planning the next major version of the PDK. ​

Community member Glenn Sarti contibuted PR https://github.com/puppetlabs/puppet-editor-services/pull/301 and is working on PR https://github.com/puppetlabs/puppet-editor-services/pull/302, which will be released in the next Puppet Extension release. ​

In case you missed it, last month we started publishing the Puppet Extension to the OpenVSX marketplace, which means you can get official releases inside VSCodium or with Gitpod.