2021-04-23: IAC & DevX Team Status Update
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:
puppetlabs-apache#2138
: “Fix HEADER* and README* wildcards in IndexIgnore”, thanks to ketopuppetlabs-apt#985
: “apt::mark: fix docs”, thanks to kenyonpuppetlabs-firewall#986
: “Update README.md”, thanks to arjenzpuppetlabs-haproxy#477
: “Fix ‘option’ entry name in option_order hash”, thanks to antaflospuppetlabs-java#476
: “allow v5.x of puppet/archive”, thanks to bastelfreakpuppetlabs-mysql#1378
: “Fix: Puppet Unknown variable: ‘mysql::params::exec_path’”, thanks to JvGinkelpuppetlabs-ntp#615
: “Allow setting user and group permissions of the NTP logfile”, thanks to Kristijanpuppetlabs-stdlib#1176
: “Fix typo in validate_ipv6_address function”, thanks to nbarrientospuppetlabs-stdlib#1173
: “pw_hash: add support for bcrypt variants”, thanks to kjetilhocommunity_management#68
: “Added back the ability to manage labels on multiple repos”, thanks to yachubdependency_checker#25
: “Report status with exit-code”, thanks to smortexlitmusimage#30
: “Add BASE_IMAGE_TAG=${TAG} instruction”, thanks to gavindidrichsenpdk#1028
: “(maint) Mark stale issues”, thanks to jpogranpdk-docker#24
: “Restrict image to non-root user”, thanks to cdenneen and the following people who helped get it over the line (nkanderson)pdk-templates#429
: “Misc cleanup”, thanks to jeffbyrnespdk-templates#423
: “(maint) Update Gitpod to Puppet VSCode Extension to 1.2.0”, thanks to jpogranpdk-vanagon#283
: “(VANAGON-85) Move platform definitions into core vanagon. Inherit def…”, thanks to jackie-kinslerpuppet-strings#272
: “Update CODEOWNERS”, thanks to binford2kpuppet_litmus#407
: “(maint) Update bolt requirement to include 3.x”, thanks to beechtomruby-pwsh#122
: “feat: adding in paths for PowerShell 7 install”, thanks to n3snahruby-pwsh#118
: “(Maint) Ensure canonicalize correctly compares sorted hashes”, thanks to Hvidrspec-puppet#823
: “Added support for regexp arguments to Sensitive”, thanks to tiandreyrspec-puppet#819
: “Handle all auto*, not just autorequire”, thanks to ekohl
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:
puppetlabs-stdlib
(7.0.1
)puppetlabs-concat
(7.0.1
)puppetlabs-ntp
(9.0.1
)puppetlabs-apt
(8.0.2
)puppetlabs-java
(7.0.1
)puppetlabs-inifile
(5.0.1
)puppetlabs-postgresql
(7.1.0
)puppetlabs-haproxy
(6.0.0
)puppetlabs-mysql
(11.0.1
)puppetlabs-reboot
(4.0.2
)puppetlabs-chocolatey
(6.0.1
)puppetlabs-accounts
(7.0.2
)
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.