<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Puppet Ecosystem</title>
    <description>The latest articles on Forem by Puppet Ecosystem (@puppetecosystem).</description>
    <link>https://forem.com/puppetecosystem</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F463651%2Fd33d20a8-495b-4dc5-8732-8b1b3cb8fb46.jpg</url>
      <title>Forem: Puppet Ecosystem</title>
      <link>https://forem.com/puppetecosystem</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/puppetecosystem"/>
    <language>en</language>
    <item>
      <title>A Fond Farewell For Now to Community Day &amp; Norman</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Wed, 20 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/a-fond-farewell-for-now-to-community-day-norman-30e</link>
      <guid>https://forem.com/puppet/a-fond-farewell-for-now-to-community-day-norman-30e</guid>
      <description>&lt;h2&gt;
  
  
  IAC Community Day
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;The Infrastructure Automation Content (IAC) team formed from the merger of 4 core content-focused teams (Modules, Windows, Cloud &amp;amp; Containers, and Networking), maintaining forty-five open-source supported Puppet modules and over a dozen tools that help reduce the content maintenance and support costs.&lt;/p&gt;

&lt;p&gt;A crucial part of Puppet’s success has always been the support of the community. The IAC team, like with all module teams before, would have had a dedicated engineer or engineers assigned to community triage, usually on a rotational basis.&lt;/p&gt;

&lt;p&gt;The triage rota consumed 20% of the team’s engineering resources. It was challenging due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lack of domain knowledge&lt;/li&gt;
&lt;li&gt;Work spilling over either into or out of triage during rotation&lt;/li&gt;
&lt;li&gt;Impact to other team members not on rotation&lt;/li&gt;
&lt;li&gt;Engineers left feeling drained, low self-esteem&lt;/li&gt;
&lt;li&gt;Engineers dreading rotating onto triage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Community Day (Introduced in November 2020)
&lt;/h3&gt;

&lt;p&gt;Community day came about as part of reviewing of our triaging commitments and chatting with the team listening to their concerns.&lt;/p&gt;

&lt;p&gt;As mentioned, 20% of the team’s engineering resourcing and effort was already going into the triage rotation. So we asked ourselves the question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if we focused this 20% effort and had the whole team take part in a full day community triage?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upskilling&lt;/li&gt;
&lt;li&gt;Teamwork&lt;/li&gt;
&lt;li&gt;Reduced distractions&lt;/li&gt;
&lt;li&gt;Greater community focus&lt;/li&gt;
&lt;li&gt;Starting the week off with a win&lt;/li&gt;
&lt;li&gt;Productivity within the team increased (hard to believe even for us, at first)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not only have we been able to address the backlog of community requests across forty-five supported open source modules (plus over a dozen tooling repos), the team have been able to focus on feature delivery.&lt;/p&gt;

&lt;p&gt;Since switching to the new community day, over the last eleven months, the team have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handled† 1536 issues&lt;/li&gt;
&lt;li&gt;Performed 205 module releases&lt;/li&gt;
&lt;li&gt;Released 30 tooling updates&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;† Handled meaning a team member has either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Closed a PR or Jira&lt;/li&gt;
&lt;li&gt;Merged community a PR&lt;/li&gt;
&lt;li&gt;or provided feedback on a community PR&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;By committing to community day and limiting distractions to 1 day, the team have also delivered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A new Cloud CI 

&lt;ol&gt;
&lt;li&gt;With multi-node testing support&lt;/li&gt;
&lt;li&gt;New automated workflow&lt;/li&gt;
&lt;li&gt;Internal developer environment support&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;Cisco Network device enhancement&lt;/li&gt;

&lt;li&gt;New DSC builder generating &amp;gt;300 DSC PowerShell modules uploaded on the forge&lt;/li&gt;

&lt;li&gt;3 OS certifications&lt;/li&gt;

&lt;li&gt;Certified all the supported modules again Puppet 7, including: 

&lt;ol&gt;
&lt;li&gt;Raising and testing fixes for numerous issues in Puppet 7 nightly agent builds prior to release&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;Rolled out the Trusted Contributor program&lt;/li&gt;

&lt;li&gt;Improved our community communication with a weekly blog post, enhancing our community reporting&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;All in all, the IAC community day has not only enabled the team to reconnect with the community, address the content backlog, and upskill across the team; it has also improved team productivity by reducing distraction and increasing team morale. Mondays are, at the best of times, a tough day. Starting a week off with a win? Priceless.&lt;/p&gt;

&lt;p&gt;Sadly, Community Day is coming to an end. Due to a significant reduction in resourcing, it is no longer possible to provide the technical support needed to run a dedicated community support day.&lt;/p&gt;

&lt;p&gt;The content maintained by the IAC team is still of high importance to Puppet. Puppet would like to encourage our community to reach out via our public slack channels for assistance. Our PM team will help prioritize issues raised.&lt;/p&gt;

&lt;h2&gt;
  
  
  Farewell, Norman 💜
&lt;/h2&gt;

&lt;p&gt;This week we have to say farewell to Norman, the Engineering Manager of the IAC and DevX Teams. This is a particularly sad goodbye as many of us, past and present, consider Norman one of the best leaders we have had the privilege of working with.&lt;/p&gt;

&lt;p&gt;In just under three years, Norman led us to some fantastic achievements and kept us motivated and moving forward through turbulent times. Norman has shown unparalleled dedication to his team’s wellbeing, motivation, and personal development whilst still acting as a clarifying arbiter between the high-level vision and plans of the organisation. It was a tough balancing act that he seemed to be able to do, with his usual 110% dedication he never falters from.&lt;/p&gt;

&lt;p&gt;Norman motivated and enabled us to become far better engineers and people than we were prior to being taken under his wing. The remit of the IAC team is a tough one, and one that can often be underappreciated, but Norman always fought our corner and sung our praises to anyone who stood still long enough to listen. Norman was great at suggesting and soliciting us to suggest new processes / ideas (Community Day being a prime example), that would make us more efficient and motivated, as a team. We benefited from his wealth of knowledge, experience (both technical and managerial) and genuine care for his colleagues and team.&lt;/p&gt;

&lt;p&gt;We’d like to thank Norman for his hard work and support over these nearly three years. The IAC and DevX teams owe him a huge gratitude and we’ll miss him, as we bid farewell and good luck in your next venture!&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>community</category>
    </item>
    <item>
      <title>IAC &amp; DevX Team Updates; just cranking along</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 11 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-team-updates-just-cranking-along-2h20</link>
      <guid>https://forem.com/puppet/iac-devx-team-updates-just-cranking-along-2h20</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1019" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1019&lt;/code&gt;&lt;/a&gt;: “Bugfix MODULES-11203: error on second apply when uid or gid is specified as a range”, thanks to &lt;a href="https://github.com/cmd-ntrf" rel="noopener noreferrer"&gt;cmd-ntrf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1018" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1018&lt;/code&gt;&lt;/a&gt;: “Fedora 34 and iptables-compat fix; properly utilising iptables param.”, thanks to &lt;a href="https://github.com/adamboutcher" rel="noopener noreferrer"&gt;adamboutcher&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1307" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1307&lt;/code&gt;&lt;/a&gt;: “Drop further code for Debian 6 and Ubuntu 10”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1306" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1306&lt;/code&gt;&lt;/a&gt;: “MODULES-11201: add service_name for Ubuntu 18.04 and later”, thanks to &lt;a href="https://github.com/moritz-makandra" rel="noopener noreferrer"&gt;moritz-makandra&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1297" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1297&lt;/code&gt;&lt;/a&gt;: “Support target_role in default_privileges”, thanks to &lt;a href="https://github.com/fish-face" rel="noopener noreferrer"&gt;fish-face&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/197" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#197&lt;/code&gt;&lt;/a&gt;: “Release 1.10.1”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/196" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#196&lt;/code&gt;&lt;/a&gt;: “CI: Test if the gem builds”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/195" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#195&lt;/code&gt;&lt;/a&gt;: “facter 4.0: Regenerate factsets with legacy facts”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/194" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#194&lt;/code&gt;&lt;/a&gt;: “facter 4.1: Regenerate factsets with legacy facts”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/193" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#193&lt;/code&gt;&lt;/a&gt;: “facter 4.2: Regenerate factsets with legacy facts”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/192" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#192&lt;/code&gt;&lt;/a&gt;: “Remove EoL OSes from Vagrantfile”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/191" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#191&lt;/code&gt;&lt;/a&gt;: “get_facts.sh: Collect legacy facts as well”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/190" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#190&lt;/code&gt;&lt;/a&gt;: “get_facts.sh: Ignore facter 1.X/2.x”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/dropsonde/pull/13" rel="noopener noreferrer"&gt;&lt;code&gt;dropsonde#13&lt;/code&gt;&lt;/a&gt;: “Load Ruby’s CA certificates instead of using httpclient defaults”, thanks to &lt;a href="https://github.com/Magisus" rel="noopener noreferrer"&gt;Magisus&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet_litmus/pull/427" rel="noopener noreferrer"&gt;&lt;code&gt;puppet_litmus#427&lt;/code&gt;&lt;/a&gt;: “Allow Litmus Functions to accept a target”, thanks to &lt;a href="https://github.com/RandomNoun7" rel="noopener noreferrer"&gt;RandomNoun7&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>apache</category>
      <category>java</category>
    </item>
    <item>
      <title>Mitigating the 0-day Apache path traversal vulnerability</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Tue, 05 Oct 2021 21:46:02 +0000</pubDate>
      <link>https://forem.com/puppet/mitigating-the-0-day-apache-path-traversal-vulnerability-58lk</link>
      <guid>https://forem.com/puppet/mitigating-the-0-day-apache-path-traversal-vulnerability-58lk</guid>
      <description>&lt;p&gt;Apache has disclosed a critical &lt;strong&gt;&lt;em&gt;actively exploited&lt;/em&gt;&lt;/strong&gt; path traversal flaw in the popular Apache webserver, versions 2.4.49 and 2.4.50. This path traversal means that an attacker can trivially read the contents of any file on the server that the Apache process has access to. This could expose highly sensitive information, even as critical as the server's own private SSL certificates. See the &lt;a href="https://blog.sonatype.com/apache-servers-actively-exploited-in-wild-importance-of-prompt-patching" rel="noopener noreferrer"&gt;Sonatype blog&lt;/a&gt; for more technical information on the vulnerability.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Update&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;The fix in Apache version 2.4.50 was incomplete. Please follow these instructions to upgrade your nodes to Apache version &lt;strong&gt;2.4.51&lt;/strong&gt; from both 2.4.49 and 2.4.50.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Puppet Enterprise and Bolt both make it easy to identify vulnerable systems and mitigate the exposure by upgrading the Apache package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Puppet Enterprise
&lt;/h2&gt;

&lt;p&gt;Puppet Enterprise includes a feature called Package Inventory. This will allow you to quickly identify which nodes in your infrastructure are running the vulnerable version of Apache. It's disabled by default, so you'll need to turn it on first.&lt;/p&gt;

&lt;p&gt;In the PE Console, find the PE Agent node group. Add the &lt;code&gt;puppet_enterprise::profile::agent&lt;/code&gt; class if needed and then set the &lt;code&gt;package_inventory_enabled&lt;/code&gt; parameter to &lt;code&gt;true&lt;/code&gt;. Use the &lt;em&gt;Run Puppet&lt;/em&gt; button to trigger a Puppet run on all nodes. The inventory collection will take effect on all subsequent Puppet runs, so once it's completed, trigger a second Puppet run.&lt;/p&gt;

&lt;p&gt;Now use the &lt;strong&gt;Packages&lt;/strong&gt; page to view your infrastructure's package inventory. Filter by the package name "httpd", then click into the package detail page and filter by the version "2.4.49". This now lists all nodes with the vulnerable version.&lt;/p&gt;

&lt;p&gt;If the package is managed by Puppet, use the &lt;strong&gt;Instances&lt;/strong&gt; selector to drill in and then click &lt;strong&gt;Copy path&lt;/strong&gt; to quickly find the spot in your codebase you need to update with a newer version. Run Puppet on all nodes once the codebase has been updated.&lt;/p&gt;

&lt;p&gt;If you have instances in which the package is not managed by Puppet, then use a Puppet Task to push a package update to these nodes. Create a list of the affected nodes, then use the &lt;strong&gt;Package&lt;/strong&gt; task to force the package to be updated. &lt;a href="https://puppet.com/docs/pe/latest/running_tasks_in_the_console.html" rel="noopener noreferrer"&gt;See the docs&lt;/a&gt; for more information.&lt;/p&gt;

&lt;p&gt;Since some distributions call the package "apache", repeat the above steps with that name too. And then given the second patch, check both package names for version "2.4.50" as well.&lt;/p&gt;

&lt;p&gt;Find more information about the Package Inventory on its &lt;a href="https://puppet.com/docs/pe/latest/viewing_packages_in_use.html" rel="noopener noreferrer"&gt;docs page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Puppet Bolt
&lt;/h2&gt;

&lt;p&gt;If you don't have Puppet Enterprise, Bolt allows you to use plans to gather information from nodes. Let's start by creating a new project by creating a directory called &lt;code&gt;apache_mitigation&lt;/code&gt;. Now cd into that directory and turn it into a Bolt project by running &lt;code&gt;bolt project init&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You'll want an inventory file so you can address all your nodes. If you don't have one already, then create one &lt;a href="https://puppet.com/docs/bolt/latest/inventory_files.html" rel="noopener noreferrer"&gt;following instructions&lt;/a&gt;. We will use the implicit &lt;code&gt;all&lt;/code&gt; target group, or you can create a more specific group if you want to limit the nodes to be inspected.&lt;/p&gt;

&lt;p&gt;Then create a new plan to manage the package upgrade process. Run &lt;code&gt;bolt plan new apache_mitigation::upgrade_vulnerable_packages --pp&lt;/code&gt;. Add the following content to your new plan file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight puppet"&gt;&lt;code&gt;&lt;span class="n"&gt;plan&lt;/span&gt; &lt;span class="nf"&gt;apache_mitigation::upgrade_vulnerable_packages&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nc"&gt;String&lt;/span&gt;     &lt;span class="nv"&gt;$package&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nc"&gt;String&lt;/span&gt;     &lt;span class="nv"&gt;$vulnerable_version&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nc"&gt;String&lt;/span&gt;     &lt;span class="nv"&gt;$target_version&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nc"&gt;TargetSpec&lt;/span&gt; &lt;span class="nv"&gt;$targets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;# Get status of package on each target
&lt;/span&gt;  &lt;span class="nv"&gt;$package_status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;run_task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'package'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$targets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'name'&lt;/span&gt;   &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$package&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'action'&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'status'&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="c"&gt;# Select targets that have the vulnerable package installed
&lt;/span&gt;  &lt;span class="nv"&gt;$vulnerable_targets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$package_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter_set&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'version'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;$vulnerable_version&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;targets&lt;/span&gt;

  &lt;span class="c"&gt;# Upgrade the package to a non-vulnerable version on each target
&lt;/span&gt;  &lt;span class="nv"&gt;$result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;run_task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'package'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$vulnerable_targets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt;    &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$package&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;'action'&lt;/span&gt;  &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'upgrade'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'version'&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$target_version&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="n"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$result&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since different distributions use different package names, run that plan for both &lt;code&gt;httpd&lt;/code&gt; and &lt;code&gt;apache&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bolt plan run apache_mitigation::upgrade_vulnerable_packages package=httpd vulnerable_version=2.4.49 target_version=2.4.51 --targets=all
bolt plan run apache_mitigation::upgrade_vulnerable_packages package=httpd vulnerable_version=2.4.50 target_version=2.4.51 --targets=all

bolt plan run apache_mitigation::upgrade_vulnerable_packages package=apache vulnerable_version=2.4.49 target_version=2.4.51 --targets=all
bolt plan run apache_mitigation::upgrade_vulnerable_packages package=apache vulnerable_version=2.4.50 target_version=2.4.51 --targets=all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Verifying the mitigation
&lt;/h2&gt;

&lt;p&gt;Whether you choose to use Puppet Enterprise or Bolt to mitigate your exposure, once you're finished you can go back and verify that the vulnerable nodes have been upgraded. On Puppet Enterprise, you'd go back to the Packages page in the PE Console and drill down to the &lt;code&gt;httpd&lt;/code&gt; or &lt;code&gt;apache&lt;/code&gt; packages to validate versions. And if you used Bolt, you'd just run the &lt;code&gt;apache_mitigation::upgrade_vulnerable_packages&lt;/code&gt; plan again and validate that the output is empty.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ben is the Product Manager of Ecosystem and Developer Experience at Puppet.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn more
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;See the &lt;a href="https://blog.sonatype.com/apache-servers-actively-exploited-in-wild-importance-of-prompt-patching" rel="noopener noreferrer"&gt;Sonatype blog&lt;/a&gt; for more technical information on the vulnerability.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://puppet.com/docs/pe/latest/viewing_packages_in_use.html" rel="noopener noreferrer"&gt;Read more&lt;/a&gt; about Package Inventory.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://puppet.com/docs/bolt/latest/bolt.html" rel="noopener noreferrer"&gt;Read more&lt;/a&gt; about Puppet Bolt.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>apache</category>
      <category>0day</category>
      <category>vulnerability</category>
    </item>
    <item>
      <title>IAC &amp; DevX Updates; farewell Danny</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 04 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-farewell-danny-5hgo</link>
      <guid>https://forem.com/puppet/iac-devx-updates-farewell-danny-5hgo</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2195" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2195&lt;/code&gt;&lt;/a&gt;: “Allow &lt;code&gt;docroot&lt;/code&gt; with &lt;code&gt;mod_vhost_alias&lt;/code&gt; &lt;code&gt;virtual_docroot&lt;/code&gt;”, thanks to &lt;a href="https://github.com/yakatz" rel="noopener noreferrer"&gt;yakatz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2191" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2191&lt;/code&gt;&lt;/a&gt;: “add double quote on scope parameter”, thanks to &lt;a href="https://github.com/aba-rechsteiner" rel="noopener noreferrer"&gt;aba-rechsteiner&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/1007" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#1007&lt;/code&gt;&lt;/a&gt;: “(MODULES-11173) Add per-host overrides for apt::proxy”, thanks to &lt;a href="https://github.com/maturnbull" rel="noopener noreferrer"&gt;maturnbull&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-chocolatey/pull/269" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-chocolatey#269&lt;/code&gt;&lt;/a&gt;: “add support for version range”, thanks to &lt;a href="https://github.com/rico89" rel="noopener noreferrer"&gt;rico89&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker/pull/774" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker#774&lt;/code&gt;&lt;/a&gt;: “Prefer timeout to time_limit for Facter::Core::Execution”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1019" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1019&lt;/code&gt;&lt;/a&gt;: “Bugfix MODULES-11203: error on second apply when uid or gid is specified as a range”, thanks to &lt;a href="https://github.com/cmd-ntrf" rel="noopener noreferrer"&gt;cmd-ntrf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java/pull/488" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java#488&lt;/code&gt;&lt;/a&gt;: “Enabling Rocky Linux for Install”, thanks to &lt;a href="https://github.com/pmjensen" rel="noopener noreferrer"&gt;pmjensen&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java_ks/pull/378" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java_ks#378&lt;/code&gt;&lt;/a&gt;: “Fix “password” as Property”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1307" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1307&lt;/code&gt;&lt;/a&gt;: “Drop further code for Debian 6 and Ubuntu 10”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1306" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1306&lt;/code&gt;&lt;/a&gt;: “MODULES-11201: add service_name for Ubuntu 18.04 and later”, thanks to &lt;a href="https://github.com/moritz-makandra" rel="noopener noreferrer"&gt;moritz-makandra&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1299" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1299&lt;/code&gt;&lt;/a&gt;: “Inline file contents in the catalog”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1296" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1296&lt;/code&gt;&lt;/a&gt;: “Fix changing default encoding”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1279" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1279&lt;/code&gt;&lt;/a&gt;: “Use Puppet-Datatype Sensitive for Passwords”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1213" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1213&lt;/code&gt;&lt;/a&gt;: “stdlib::ensure: Add support for package resource”, thanks to &lt;a href="https://github.com/david-caro" rel="noopener noreferrer"&gt;david-caro&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/b4ldr" rel="noopener noreferrer"&gt;b4ldr&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1195" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1195&lt;/code&gt;&lt;/a&gt;: “(MODULES-11126) Replacing URI.escape with URI::DEFAULT_PARSER”, thanks to &lt;a href="https://github.com/valleedelisle" rel="noopener noreferrer"&gt;valleedelisle&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/karelyatin" rel="noopener noreferrer"&gt;karelyatin&lt;/a&gt;, &lt;a href="https://github.com/b4ldr" rel="noopener noreferrer"&gt;b4ldr&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/189" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#189&lt;/code&gt;&lt;/a&gt;: “Release 1.10.0”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/188" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#188&lt;/code&gt;&lt;/a&gt;: “Ubuntu 18.04/20.04, RedHat 8: Update factsets”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/rspec-puppet-facts/pull/134" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet-facts#134&lt;/code&gt;&lt;/a&gt;: “Release 2.0.3”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/rspec-puppet-facts/pull/133" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet-facts#133&lt;/code&gt;&lt;/a&gt;: “regenerate puppet_agent_components.json”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/iac/pull/315" rel="noopener noreferrer"&gt;&lt;code&gt;iac#315&lt;/code&gt;&lt;/a&gt;: “Bump jekyll from 4.2.0 to 4.2.1”, thanks to [dependabot[bot]][dependabot[bot]]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet-module-gems/pull/167" rel="noopener noreferrer"&gt;&lt;code&gt;puppet-module-gems#167&lt;/code&gt;&lt;/a&gt;: “(maint) Fix pry dependency issue.”, thanks to &lt;a href="https://github.com/BobosilaVictor" rel="noopener noreferrer"&gt;BobosilaVictor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet_litmus/pull/427" rel="noopener noreferrer"&gt;&lt;code&gt;puppet_litmus#427&lt;/code&gt;&lt;/a&gt;: “Allow Litmus Functions to accept a target”, thanks to &lt;a href="https://github.com/RandomNoun7" rel="noopener noreferrer"&gt;RandomNoun7&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.1.2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.5.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Puppet Module Major Releases
&lt;/h2&gt;

&lt;p&gt;Looking into the future, we only have a single major release planned, this being Apache v7.0.0. So if you use this module you should get ready for this to come on our next community day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Farewell Danny
&lt;/h2&gt;

&lt;p&gt;Finally, we have to end on a sad note 😢&lt;/p&gt;

&lt;p&gt;This will be &lt;a href="https://github.com/carabasdaniel" rel="noopener noreferrer"&gt;Danny’s&lt;/a&gt; last week on the IAC Team. Daniel was a founding member of the IAC team and has shown great professionalism, focus and drive, to help deliver true value to our customers and community.&lt;/p&gt;

&lt;p&gt;Some of the major stand outs from Danny’s time on the IAC Team (and in Puppet), are the Cloud CI and Automated Release Tooling, which are invaluable, integral parts of the IAC Team’s process. Danny also lent his expertise to the Forge team, helping to design and implement functionality to facilitate the introduction of premium content.&lt;/p&gt;

&lt;p&gt;We were very fortunate to have Danny’s considerable breadth of knowledge in Cloud technologies - he’s been instrumental in maintaining and enhancing the Docker and Kubernetes modules.&lt;/p&gt;

&lt;p&gt;He has been a fantastic colleague, mentor and friend to us all. From all of us on the IAC team - the very best of luck for the future, and thanks for all you’ve done for us. 🍺 🚀&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>apache</category>
      <category>danny</category>
    </item>
    <item>
      <title>Malware Scanning on the Puppet Forge</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Wed, 29 Sep 2021 15:00:31 +0000</pubDate>
      <link>https://forem.com/puppet/malware-scanning-on-the-puppet-forge-3ake</link>
      <guid>https://forem.com/puppet/malware-scanning-on-the-puppet-forge-3ake</guid>
      <description>&lt;p&gt;Another supply chain attack hit the news last week. This time it was a configuration management agent installed on most Azure images. I'm not bothering to link to it because it's just another in a long chain of attacks this year and, by the time this is published, there will likely be another one. Maybe this time it will be yet another background bitcoin miner hiding inside an innocuous NPM package.&lt;/p&gt;

&lt;p&gt;I've been in the Puppet ecosystem for over a decade deploying Forge modules all over the world, but to tell the truth, the idea of running un-audited code has always bothered me just a bit. When you &lt;code&gt;yum&lt;/code&gt; or &lt;code&gt;apt&lt;/code&gt; install an open source package, you can trust that it went through an audit process with at least a few pairs of eyeballs on it before getting to the repositories. But now with the rise of peer-to-peer package repositories like NPM, PyPI, or RubyGems, that assumption is gone. And Golang effectively does away with the repository altogether! That's a lot of trust we put into the publishers of these packages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puppet Forge Module Ecosystem
&lt;/h2&gt;

&lt;p&gt;So far the Puppet ecosystem has not been attacked with malicious code injected into Forge modules. But we cannot assume this will always be the case. The Forge team has been hard at work for the past few months building out a malware scanning framework.&lt;/p&gt;

&lt;p&gt;Now, to be clear, this doesn't &lt;em&gt;replace&lt;/em&gt; your own security mitigations. You should still audit untrusted code. You should still run your own virus protections. There are many layers in a robust security profile, and this is only one of them. But what we can do is give you relatively high confidence that the Puppet modules you use are not introducing malware themselves.&lt;/p&gt;

&lt;p&gt;We had to first put some thought into what it meant to be a secure Puppet module and balance that against what we could actually test for, programmatically. One of the challenges of scanning configuration management code is there's inherently so much overlap with malicious code already! It's a bit like the definition of a "weed" being an unwanted plant, no more and no less. It's all about context.&lt;/p&gt;

&lt;p&gt;For example, downloading a tarball and running a shell command is exactly how a bunch of Tomcat modules work, so we can't quite eliminate that behavior. But we can identify when file resources use world-writable permissions, or wide open firewall rules, or known insecure Apache configurations, and we can flag when known malware files or URLs are included in a module itself. &lt;/p&gt;

&lt;p&gt;Then we had to identify the value and the level of effort of writing checks for each of these cases then rank them to identify which would get us the most impact the soonest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality Scores
&lt;/h2&gt;

&lt;p&gt;Let's take a small detour and talk about the Forge quality scores for a moment. When we first introduced the automatic module quality analysis, it was implemented as a Jenkins pipeline, which obviously got more and more crufty as the years went by. Over the last year, we've been incrementally porting these pipelines to a more modern &lt;a href="https://github.com/puppetlabs/anubis-docker" rel="noopener noreferrer"&gt;container-based workflow&lt;/a&gt;. These can be invoked anywhere with a container runtime or in any cloud service with a container orchestrator. &lt;em&gt;Tangent: watch for another blog post showing you how to run these locally to predict your Forge quality score!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This workflow means that the cost of building new quality score analyses is now relatively low. Just update the backend and database schemas to accept the new scores, then build a frontend to present it, if needed. (And yes, this papers over a ton of work!)&lt;/p&gt;

&lt;p&gt;But it also made it a perfect system for security analysis. Anything that we could build into a container could be turned into something that the Forge could use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Scanner
&lt;/h2&gt;

&lt;p&gt;A bit of research indicated some prior art that we could build upon. Last year a team of students from the University of Pernambuco released a "security smell" &lt;a href="https://github.com/TQRG/puppet-lint-security-iac" rel="noopener noreferrer"&gt;scanner&lt;/a&gt; for Puppet code and prior to that, a student at FernUniversität in Hagen built a set of &lt;a href="https://github.com/floek/puppet-lint-security-plugins" rel="noopener noreferrer"&gt;puppet-lint plugins&lt;/a&gt; to check for security issues. ClamAV, the popular malware scanner, also already had a container available.&lt;/p&gt;

&lt;p&gt;Ultimately we decided that the malware scan would have the biggest impact for our users, and got to work. We quickly realized that while the ClamAV solution was useful, we'd get even more value with an enterprise subscription to &lt;a href="https://www.virustotal.com/" rel="noopener noreferrer"&gt;VirusTotal&lt;/a&gt; — and our internal security team was stoked to get their hands on such a powerful tool.&lt;/p&gt;

&lt;p&gt;VirusTotal provides an upload API. Although it doesn't know Puppet code natively, it knows how to uncompress the module tarball format and how to scan files and their contents for known malicious code. This meant that (again, papering over the gory details) that all we needed to do was &lt;a href="https://github.com/puppetlabs/anubis-docker/blob/main/entrypoints/malware-scan" rel="noopener noreferrer"&gt;upload the module&lt;/a&gt; itself and consume the results. VirusTotal aggregates scan results from over 70 antivirus scanners and URL blocklists, so as you can imagine, the results were quite — shall we say — "complete."&lt;/p&gt;

&lt;p&gt;Rather than trying to parse the entire results object and trying to make sense of everything, we used the summary. If any of the scanners discovered malware, we flagged the module and marked it as passing the scan if no malware was detected by any scanner. We also link back to the VirusTotal results page so that users can see the details for themselves, if they'd like.&lt;/p&gt;

&lt;p&gt;With the help of our Design team and some backend plumbing, we had a malware scanning solution to help you select modules that best fit your needs and security policies. Because we have thousands of module releases a year, we're starting small by scanning all of our Supported modules, then expanding to Partner Supported, and then Approved. But by the end of the year, we expect that every module release will be security scanned as it's published. To avoid zero-day vulnerabilities, &lt;strong&gt;we will not retroactively scan existing modules&lt;/strong&gt; so be sure to look for the malware scan status when you're evaluating modules. See an example on our &lt;a href="https://forge.puppet.com/modules/puppetlabs/postgresql/quality-checks" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql&lt;/code&gt;&lt;/a&gt; module.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what next?
&lt;/h2&gt;

&lt;p&gt;The process of building the scanner identified a couple of interesting UX questions. At the top of that list was the realization that this was the first use of the quality scoring system that could actually block publication or put a module into an ambiguous state. Solving that problem means that we're now in a position to resolve some other outstanding feature requests. For example, users have been asking for the ability to "preview" module releases to check for rendering issues or quality scores prior to actually publishing a release and this is now a feature on our roadmap.&lt;/p&gt;

&lt;p&gt;Revamping the quality scores themselves has also been on our roadmap for a bit. The security-focused lint checks we mentioned above will certainly play into that. It's still an open question whether we just roll all the lint checks in together or separate them out by topic. But the container-based workflow we talked about above means that either way we group them will be relatively easy to build.&lt;/p&gt;

&lt;p&gt;In any case, we're excited to provide you another tool in your security arsenal and hope that it builds confidence in the content you use from the Puppet Forge. Watch this space for more exciting things coming down the line in the future. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="http://twitter.com/binford2k" rel="noopener noreferrer"&gt;Ben&lt;/a&gt; is the Forge and Ecosystem product manager at Puppet.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="http://github.com/nkanderson" rel="noopener noreferrer"&gt;Nik&lt;/a&gt; is a Software Engineer on the Forge team at Puppet.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>puppet</category>
      <category>security</category>
      <category>malware</category>
      <category>supplychain</category>
    </item>
    <item>
      <title>IAC &amp; DevX Team Updates; platform support strategy</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 20 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-team-updates-platform-support-strategy-1m0d</link>
      <guid>https://forem.com/puppet/iac-devx-team-updates-platform-support-strategy-1m0d</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2193" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2193&lt;/code&gt;&lt;/a&gt;: “Restore Ubuntu 14.04 support in suphp”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2191" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2191&lt;/code&gt;&lt;/a&gt;: “add double quote on scope parameter”, thanks to &lt;a href="https://github.com/aba-rechsteiner" rel="noopener noreferrer"&gt;aba-rechsteiner&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2189" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2189&lt;/code&gt;&lt;/a&gt;: “Drop Debian &amp;lt; 8 and Ubuntu &amp;lt; 14.04 code”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/1007" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#1007&lt;/code&gt;&lt;/a&gt;: “(MODULES-11173) Add per-host overrides for apt::proxy”, thanks to &lt;a href="https://github.com/maturnbull" rel="noopener noreferrer"&gt;maturnbull&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/999" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#999&lt;/code&gt;&lt;/a&gt;: “(maint) Set DEBIAN_FRONTEND=noninteractive on upgrade”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker/pull/774" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker#774&lt;/code&gt;&lt;/a&gt;: “Prefer timeout to time_limit for Facter::Core::Execution”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-haproxy/pull/498" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-haproxy#498&lt;/code&gt;&lt;/a&gt;: “Adding chroot_dir_manage parameter.”, thanks to &lt;a href="https://github.com/Tamerz" rel="noopener noreferrer"&gt;Tamerz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java/pull/488" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java#488&lt;/code&gt;&lt;/a&gt;: “Enabling Rocky Linux for Install”, thanks to &lt;a href="https://github.com/pmjensen" rel="noopener noreferrer"&gt;pmjensen&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1299" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1299&lt;/code&gt;&lt;/a&gt;: “Inline file contents in the catalog”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1296" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1296&lt;/code&gt;&lt;/a&gt;: “Fix changing default encoding”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1279" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1279&lt;/code&gt;&lt;/a&gt;: “Use Puppet-Datatype Sensitive for Passwords”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1209" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1209&lt;/code&gt;&lt;/a&gt;: “Added to_toml function”, thanks to &lt;a href="https://github.com/nmaludy" rel="noopener noreferrer"&gt;nmaludy&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet-lint" rel="noopener noreferrer"&gt;&lt;code&gt;puppet-lint&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.5.2&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The dropping of support
&lt;/h3&gt;

&lt;p&gt;Due to the large amount of major releases that were made during the last time we removed support for an OS from our supported modules and following discussion within the team, it has been decided that going forward metadata changes, i.e. a drop in support, will no longer result in a major release. In cases where code necessary for said OS to function is removed, i.e. a drop in compatibility, this will still result in a major release, however we will attempt to pair this type of change with other similar major changes in order to keep the amount of major releases down. This may be subject to change however so please keep in touch and come forward with any questions that you may have.&lt;/p&gt;

&lt;h2&gt;
  
  
  DevX Team Updates
&lt;/h2&gt;

&lt;p&gt;As some of you are probably aware of, the PCT tool has been the main focus of the DevX team for the past few months. It is the first part of a suite of tools that will replace the PDK. To help clarify our strategy and vision, &lt;a href="https://github.com/da-ar" rel="noopener noreferrer"&gt;Dave&lt;/a&gt; wrote a blog post that was published to &lt;a href="https://puppet.com" rel="noopener noreferrer"&gt;puppet.com&lt;/a&gt;, last week - &lt;a href="https://puppet.com/blog/the-future-of-the-puppet-developer-kit-pdk/" rel="noopener noreferrer"&gt;check it out here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  PCT 0.4.0
&lt;/h3&gt;

&lt;p&gt;We released version &lt;code&gt;0.4.0&lt;/code&gt; of the PCT tool on Friday, which brings a number of significant new features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pct install&lt;/code&gt; can now install remote &lt;code&gt;tar.gz&lt;/code&gt; templates via HTTP/S&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pct new&lt;/code&gt; now handles templates in the new &lt;code&gt;0.4.0&lt;/code&gt; format&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As highlighted, PCT templates are now in a new format that is &lt;strong&gt;not backwards compatible&lt;/strong&gt; with earlier formats.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/puppetlabs/pdkgo/blob/main/CHANGELOG.md#040" rel="noopener noreferrer"&gt;&lt;code&gt;0.4.0&lt;/code&gt; README entry&lt;/a&gt; for full details.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;puppet-lint 2.5.2&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;There is also a new release of the &lt;code&gt;puppet-lint&lt;/code&gt; gem which resolves &lt;a href="https://github.com/puppetlabs/puppet-lint/issues/16" rel="noopener noreferrer"&gt;an issue&lt;/a&gt; with a F+ in the &lt;code&gt;double_quoted_strings&lt;/code&gt; check when the string literal &lt;code&gt;\s&lt;/code&gt; was used in a manfest. Thanks to [optiz0r][&lt;a href="https://github.com/optiz0r" rel="noopener noreferrer"&gt;https://github.com/optiz0r&lt;/a&gt;] for highlighting.&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>java</category>
      <category>puppetlint</category>
    </item>
    <item>
      <title>IAC &amp; DevX Team Status; module updates</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 13 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-team-status-module-updates-m4h</link>
      <guid>https://forem.com/puppet/iac-devx-team-status-module-updates-m4h</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2193" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2193&lt;/code&gt;&lt;/a&gt;: “Restore Ubuntu 14.04 support in suphp”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2189" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2189&lt;/code&gt;&lt;/a&gt;: “Drop Debian &amp;lt; 8 and Ubuntu &amp;lt; 14.04 code”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/999" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#999&lt;/code&gt;&lt;/a&gt;: “(maint) Set DEBIAN_FRONTEND=noninteractive on upgrade”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker/pull/773" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker#773&lt;/code&gt;&lt;/a&gt;: “Fix facts gathering”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1010" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1010&lt;/code&gt;&lt;/a&gt;: “Fix “undefined method &lt;code&gt;gsub&lt;/code&gt; for nil:NilClass” when changing existing rule UID from absent to any present”, thanks to &lt;a href="https://github.com/onyxmaster" rel="noopener noreferrer"&gt;onyxmaster&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1006" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1006&lt;/code&gt;&lt;/a&gt;: “Replace travis link in README.md with GHA”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-haproxy/pull/498" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-haproxy#498&lt;/code&gt;&lt;/a&gt;: “Adding chroot_dir_manage parameter.”, thanks to &lt;a href="https://github.com/Tamerz" rel="noopener noreferrer"&gt;Tamerz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java/pull/493" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java#493&lt;/code&gt;&lt;/a&gt;: “Allow archive 6.x”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-package/pull/265" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-package#265&lt;/code&gt;&lt;/a&gt;: “Expose package manager options to task”, thanks to &lt;a href="https://github.com/MartyEwings" rel="noopener noreferrer"&gt;MartyEwings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1209" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1209&lt;/code&gt;&lt;/a&gt;: “Added to_toml function”, thanks to &lt;a href="https://github.com/nmaludy" rel="noopener noreferrer"&gt;nmaludy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/451" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#451&lt;/code&gt;&lt;/a&gt;: “Remove env from GitHub template if all sub-keys are unset”, thanks to &lt;a href="https://github.com/thebeanogamer" rel="noopener noreferrer"&gt;thebeanogamer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/446" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#446&lt;/code&gt;&lt;/a&gt;: “Don’t append a tag to image name if one already exists”, thanks to &lt;a href="https://github.com/silug" rel="noopener noreferrer"&gt;silug&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdksync/pull/156" rel="noopener noreferrer"&gt;&lt;code&gt;pdksync#156&lt;/code&gt;&lt;/a&gt;: “Remove reference to non existent branch”, thanks to &lt;a href="https://github.com/attachmentgenie" rel="noopener noreferrer"&gt;attachmentgenie&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://github.com/puppetlabs/puppetlabs-firewall" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;3.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  puppetlabs-apache module droppped code for Debian &amp;lt; 8 and Ubuntu &amp;lt; 14.04
&lt;/h2&gt;

&lt;p&gt;Removed the Debian &amp;lt; 8 and Ubuntu &amp;lt; 14.04 code from the apache module with the following PRs. Thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2189" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2189&lt;/code&gt;&lt;/a&gt;: “Drop Debian &amp;lt; 8 and Ubuntu &amp;lt; 14.04 code”.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2193" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2193&lt;/code&gt;&lt;/a&gt;: “Restore Ubuntu 14.04 support in suphp”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will be a backward incompatible changes and the next release will be major version bump &lt;code&gt;v7.0.0&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>apache</category>
    </item>
    <item>
      <title>IAC &amp; DevX Updates; Trusted Contributors</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 06 Sep 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-trusted-contributors-k85</link>
      <guid>https://forem.com/puppet/iac-devx-updates-trusted-contributors-k85</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past 2 weeks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2188" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2188&lt;/code&gt;&lt;/a&gt;: “Various spec cleanups”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2186" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2186&lt;/code&gt;&lt;/a&gt;: “Debian 11: fix typo in &lt;code&gt;versioncmp()&lt;/code&gt; / set default php to 7.4”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2184" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2184&lt;/code&gt;&lt;/a&gt;: “(maint) Allow stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/1001" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#1001&lt;/code&gt;&lt;/a&gt;: “(maint) Add support for Debian 11”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/1000" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#1000&lt;/code&gt;&lt;/a&gt;: “(main) Allow stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-concat/pull/716" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-concat#716&lt;/code&gt;&lt;/a&gt;: “(maint) Allow stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1010" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1010&lt;/code&gt;&lt;/a&gt;: “Fix “undefined method `gsub’ for nil:NilClass” when changing existing rule UID from absent to any present”, thanks to &lt;a href="https://github.com/onyxmaster" rel="noopener noreferrer"&gt;onyxmaster&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/1009" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#1009&lt;/code&gt;&lt;/a&gt;: “(IAC-1739) Fix CI with stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java/pull/493" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java#493&lt;/code&gt;&lt;/a&gt;: “Allow archive 6.x”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes/pull/531" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes#531&lt;/code&gt;&lt;/a&gt;: “Support Kubernetes 1.22 and kubeadm v1beta3 configurations”, thanks to &lt;a href="https://github.com/treydock" rel="noopener noreferrer"&gt;treydock&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-ntp/pull/633" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-ntp#633&lt;/code&gt;&lt;/a&gt;: “(maint) Allow stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-package/pull/265" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-package#265&lt;/code&gt;&lt;/a&gt;: “Expose package manager options to task”, thanks to &lt;a href="https://github.com/MartyEwings" rel="noopener noreferrer"&gt;MartyEwings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1293" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1293&lt;/code&gt;&lt;/a&gt;: “(maint) Allow stdlib 8.0.0”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1290" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1290&lt;/code&gt;&lt;/a&gt;: “drop code for Debian 6/7 and Ubuntu 10.04/12.04”, thanks to &lt;a href="https://github.com/evgeni" rel="noopener noreferrer"&gt;evgeni&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-registry/pull/254" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-registry#254&lt;/code&gt;&lt;/a&gt;: “Add possibility to produce a detailed error message “, thanks to &lt;a href="https://github.com/reidmv" rel="noopener noreferrer"&gt;reidmv&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1207" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1207&lt;/code&gt;&lt;/a&gt;: “os_version_gte: fix version comparison logic”, thanks to &lt;a href="https://github.com/kenyon" rel="noopener noreferrer"&gt;kenyon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1204" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1204&lt;/code&gt;&lt;/a&gt;: “max, lstrip: fix deprecated message”, thanks to &lt;a href="https://github.com/b4ldr" rel="noopener noreferrer"&gt;b4ldr&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1200" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1200&lt;/code&gt;&lt;/a&gt;: “New function to_python() / to_ruby()”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/186" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#186&lt;/code&gt;&lt;/a&gt;: “Release 1.9.0”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/453" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#453&lt;/code&gt;&lt;/a&gt;: “(GH-327) Fix rubocop “off” &amp;amp; “hardcore” profiles”, thanks to &lt;a href="https://github.com/russellshackleford" rel="noopener noreferrer"&gt;russellshackleford&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/446" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#446&lt;/code&gt;&lt;/a&gt;: “Don’t append a tag to image name if one already exists”, thanks to &lt;a href="https://github.com/silug" rel="noopener noreferrer"&gt;silug&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdksync/pull/156" rel="noopener noreferrer"&gt;&lt;code&gt;pdksync#156&lt;/code&gt;&lt;/a&gt;: “Remove reference to non existent branch”, thanks to &lt;a href="https://github.com/attachmentgenie" rel="noopener noreferrer"&gt;attachmentgenie&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released over the past 2 weeks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-concat" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-concat&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-ntp" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-ntp&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;9.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.1.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-inifile" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-inifile&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;5.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.5.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://github.com/puppetlabs/puppetlabs-firewall" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;3.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.4.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-haproxy" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-haproxy&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.2.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://github.com/puppetlabs/puppetlabs-mysql" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-mysql&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;12.0.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java_ks" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java_ks&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-motd" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-motd&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-tomcat" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-tomcat&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-reboot" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-reboot&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-registry" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-registry&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.0.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-accounts" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-accounts&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-service" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-service&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-puppet_conf" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-puppet_conf&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;1.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-tagmail/" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-tagmail&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-exec" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-exec&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following gem was released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet_litmus" rel="noopener noreferrer"&gt;&lt;code&gt;puppet_litmus&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;0.29.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Holidays
&lt;/h2&gt;

&lt;p&gt;The teams have had a couple bank holidays, but you'd hardly notice by all the updates from our Trusted Contributors. Thanks for helping us make the ecosystem better for everyone!&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>debian11</category>
      <category>litmus</category>
    </item>
    <item>
      <title>IAC &amp; DevX updates; sharing PCT templates</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-sharing-pct-templates-2j5i</link>
      <guid>https://forem.com/puppet/iac-devx-updates-sharing-pct-templates-2j5i</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1291" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1291&lt;/code&gt;&lt;/a&gt;: “[IAC-1735] Fix test suite”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;, &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-reboot/pull/305" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-reboot#305&lt;/code&gt;&lt;/a&gt;: “(MODULES-11149) Modify result of ‘last’ to remove current time”, thanks to &lt;a href="https://github.com/nmburgan" rel="noopener noreferrer"&gt;nmburgan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/185" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#185&lt;/code&gt;&lt;/a&gt;: “Add Debian 11 facts”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/184" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#184&lt;/code&gt;&lt;/a&gt;: “Add more FreeBSD facts”, thanks to &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/183" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#183&lt;/code&gt;&lt;/a&gt;: “Add Oracle Linux 8 facts”, thanks to &lt;a href="https://github.com/as0bu" rel="noopener noreferrer"&gt;as0bu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/181" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#181&lt;/code&gt;&lt;/a&gt;: “Adding puppet7 facter4.2 facts for centos7/8 and debian9/10”, thanks to &lt;a href="https://github.com/jacobmw" rel="noopener noreferrer"&gt;jacobmw&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/kenyon" rel="noopener noreferrer"&gt;kenyon&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/176" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#176&lt;/code&gt;&lt;/a&gt;: “Adds Rocky Linux vagrant image, facts and get_facts.sh support”, thanks to &lt;a href="https://github.com/fuero" rel="noopener noreferrer"&gt;fuero&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ghoneycutt" rel="noopener noreferrer"&gt;ghoneycutt&lt;/a&gt;, &lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet_litmus/pull/425" rel="noopener noreferrer"&gt;&lt;code&gt;puppet_litmus#425&lt;/code&gt;&lt;/a&gt;: “Added options to idempotent_apply”, thanks to &lt;a href="https://github.com/ZloeSabo" rel="noopener noreferrer"&gt;ZloeSabo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-accounts" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-accounts&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-package" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-package&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-reboot" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-reboot&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-haproxy" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-haproxy&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-concat" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-concat&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DevX Updates
&lt;/h2&gt;

&lt;p&gt;We released &lt;a href="https://github.com/puppetlabs/pdkgo/releases/tag/0.3.0" rel="noopener noreferrer"&gt;version &lt;code&gt;0.3.0&lt;/code&gt; of the PCT tool&lt;/a&gt; last Friday. This introduces the ability to package up and &lt;a href="https://github.com/puppetlabs/pdkgo#sharing-templates" rel="noopener noreferrer"&gt;share content templates&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instructions on how to install the PCT tool can be &lt;a href="https://github.com/puppetlabs/pdkgo#installing" rel="noopener noreferrer"&gt;found here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community Day
&lt;/h2&gt;

&lt;p&gt;As no summer can end without a holiday, some of our our team members are on a short PTO . Next Monday is a bank holiday in EMEA, therefore community day will be quieter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debian 11 Support
&lt;/h2&gt;

&lt;p&gt;We added support for Debian 11 across all our supported modules and started releasing the modules with Debian 11 support.&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>pct</category>
      <category>debian11</category>
    </item>
    <item>
      <title>IAC &amp; DevX Updates; brace yourselves, Debian 11 is coming</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 16 Aug 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-brace-yourselves-debian-11-is-coming-2c7j</link>
      <guid>https://forem.com/puppet/iac-devx-updates-brace-yourselves-debian-11-is-coming-2c7j</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-accounts/pull/388" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-accounts#388&lt;/code&gt;&lt;/a&gt;: “MODULES-11100 - Add sk-ecdsa public key support, and implement tests for sk-ecdsa and ecdsa keys”, thanks to &lt;a href="https://github.com/vollmerk" rel="noopener noreferrer"&gt;vollmerk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes/pull/530" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes#530&lt;/code&gt;&lt;/a&gt;: “Enable live-restore for Docker daemon.”, thanks to &lt;a href="https://github.com/peteroruba" rel="noopener noreferrer"&gt;peteroruba&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-mysql/pull/1427" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-mysql#1427&lt;/code&gt;&lt;/a&gt;: “MODULES-8373 Fix mysql_grant resource to be idempodent on MySQL 8+”, thanks to &lt;a href="https://github.com/theq86" rel="noopener noreferrer"&gt;theq86&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1291" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1291&lt;/code&gt;&lt;/a&gt;: “[IAC-1735] Fix test suite”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/smortex" rel="noopener noreferrer"&gt;smortex&lt;/a&gt;, &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1196" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1196&lt;/code&gt;&lt;/a&gt;: “Flip installed and present in Function ensure_packages”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;, &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/443" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#443&lt;/code&gt;&lt;/a&gt;: “Only auto release if the changelog is updated”, thanks to &lt;a href="https://github.com/jarretlavallee" rel="noopener noreferrer"&gt;jarretlavallee&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/metadata-json-lint/pull/118" rel="noopener noreferrer"&gt;&lt;code&gt;metadata-json-lint#118&lt;/code&gt;&lt;/a&gt;: “release 3.0.1”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-java" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-java&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-accounts" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-accounts&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-package" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-package&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pdksync" rel="noopener noreferrer"&gt;&lt;code&gt;pdksync&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;0.6.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Debian 11 Support
&lt;/h2&gt;

&lt;p&gt;We are currently adding support for Debian 11 across our modules and will release them over the next few weeks.&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>java</category>
      <category>pdksync</category>
    </item>
    <item>
      <title>IAC &amp; DevX Updates; best of luck to James 🎉</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 09 Aug 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-best-of-luck-to-james-732</link>
      <guid>https://forem.com/puppet/iac-devx-updates-best-of-luck-to-james-732</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker/pull/764" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker#764&lt;/code&gt;&lt;/a&gt;: “Remove stderr empty check to avoid docker_params_changed failures when warnings appear”, thanks to &lt;a href="https://github.com/cedws" rel="noopener noreferrer"&gt;cedws&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-docker/pull/763" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-docker#763&lt;/code&gt;&lt;/a&gt;: “Duplicate declaration statement: docker_params_changed is already declared”, thanks to &lt;a href="https://github.com/basti-nis" rel="noopener noreferrer"&gt;basti-nis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-mysql/pull/1420" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-mysql#1420&lt;/code&gt;&lt;/a&gt;: “Set ordering of acceptance tests”, thanks to &lt;a href="https://github.com/ghoneycutt" rel="noopener noreferrer"&gt;ghoneycutt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-stdlib/pull/1196" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-stdlib#1196&lt;/code&gt;&lt;/a&gt;: “Fix ensure_packages”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/180" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#180&lt;/code&gt;&lt;/a&gt;: “release 1.8.0”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-docker/pull/34" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-docker#34&lt;/code&gt;&lt;/a&gt;: “(MAINT) Update bionic image tag to use date-based tag”, thanks to &lt;a href="https://github.com/nkanderson" rel="noopener noreferrer"&gt;nkanderson&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/rspec-puppet/pull/11" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet#11&lt;/code&gt;&lt;/a&gt;: “Add Ruby 3 support”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/metadata-json-lint/pull/117" rel="noopener noreferrer"&gt;&lt;code&gt;metadata-json-lint#117&lt;/code&gt;&lt;/a&gt;: “Update rubocop requirement from ~&amp;gt; 0.50.0 to ~&amp;gt; 0.57.2”, thanks to &lt;a href="https://github.com/apps/dependabot" rel="noopener noreferrer"&gt;dependabot[bot]&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/metadata-json-lint/pull/116" rel="noopener noreferrer"&gt;&lt;code&gt;metadata-json-lint#116&lt;/code&gt;&lt;/a&gt;: “Add GitHub actions + badges”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.4.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;7.3.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DevX Team Update
&lt;/h2&gt;

&lt;h3&gt;
  
  
  PDK 2.2.0
&lt;/h3&gt;

&lt;p&gt;PDK 2.2.0 was released earlier in the week. This update brings two significant new features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support for OSX 11, Debian 11, Fedora 32 &amp;amp; 34&lt;/li&gt;
&lt;li&gt;Ability to configure skipping validation on certain files within a project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have also bumped the version of Ruby the PDK is running on from 2.4 -&amp;gt; 2.5. Please note, Ruby 2.4 is still available for testing against Puppet 5 environments.&lt;/p&gt;

&lt;p&gt;There are also a number of bug fixes and improvements. Full details can be found &lt;a href="https://puppet.com/docs/pdk/2.x/pdk.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Goodbye James
&lt;/h3&gt;

&lt;p&gt;Unfortunately we have to say goodbye to &lt;a href="https://github.com/jpogran" rel="noopener noreferrer"&gt;James&lt;/a&gt; who is leaving Puppet next Tuesday. No doubt, many of you will be aware of the huge amount of contributions &lt;a href="https://github.com/jpogran" rel="noopener noreferrer"&gt;James&lt;/a&gt; has made to the Puppet ecosystem: James was the architect behind our IIS and DSC modules as well as the new autogenerated DSC modules; he touched nearly every part of Puppet that interacted with Windows across modules, Bolt, Puppet, and tooling; he co-designed and implemented the VSCode extension and language server, vastly improving the lives of everyone writing Puppet code; for the last four months he’s led this team, providing guidance and unifying our vision around what developing and maintaining Puppet content can be. Whether it be Windows content, improving the functionality and experience of Puppet’s products on Windows, the &lt;a href="https://github.com/puppetlabs/puppet-vscode" rel="noopener noreferrer"&gt;Puppet VSCode Plugin&lt;/a&gt;, - it’s no exaggeration to say that his contributions have been many and significant.&lt;/p&gt;

&lt;p&gt;We’d like to thank &lt;a href="https://github.com/jpogran" rel="noopener noreferrer"&gt;James&lt;/a&gt; for his contributions, support and leadership and wish him the very best of luck in the next chapter of his career!&lt;/p&gt;

&lt;h2&gt;
  
  
  github-changelog-generator moved to puppetlabs namespace
&lt;/h2&gt;

&lt;p&gt;We have forked &lt;code&gt;github-changelog-generator&lt;/code&gt; to &lt;code&gt;puppetlabs&lt;/code&gt; namespace .&lt;/p&gt;

&lt;p&gt;This will give more control on adding features and bug fixes which will help us with the supported module release process in the future.&lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>pdk</category>
      <category>vscode</category>
    </item>
    <item>
      <title>IAC &amp; DevX Updates; tons of community fixes</title>
      <dc:creator>Puppet Ecosystem</dc:creator>
      <pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate>
      <link>https://forem.com/puppet/iac-devx-updates-tons-of-community-fixes-3e2m</link>
      <guid>https://forem.com/puppet/iac-devx-updates-tons-of-community-fixes-3e2m</guid>
      <description>&lt;h2&gt;
  
  
  Community Contributions
&lt;/h2&gt;

&lt;p&gt;We’d like to thank the following people in the Puppet Community for their contributions over this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2174" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2174&lt;/code&gt;&lt;/a&gt;: “(MODULES-11075) Improve future version handling for RHEL”, thanks to &lt;a href="https://github.com/mwhahaha" rel="noopener noreferrer"&gt;mwhahaha&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2165" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2165&lt;/code&gt;&lt;/a&gt;: “(maint) Fix puppet-strings docs on apache::vhost”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2164" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2164&lt;/code&gt;&lt;/a&gt;: “Allow custom userdir directives”, thanks to &lt;a href="https://github.com/hunner" rel="noopener noreferrer"&gt;hunner&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache/pull/2157" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache#2157&lt;/code&gt;&lt;/a&gt;: “Add feature to reload apache service when content of ssl files has changed”, thanks to &lt;a href="https://github.com/timdeluxe" rel="noopener noreferrer"&gt;timdeluxe&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/993" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#993&lt;/code&gt;&lt;/a&gt;: “apt::source: pass the weak_ssl param to apt::key”, thanks to &lt;a href="https://github.com/kenyon" rel="noopener noreferrer"&gt;kenyon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt/pull/991" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt#991&lt;/code&gt;&lt;/a&gt;: “[MODULES-9695] - Add support for signed-by in source entries”, thanks to &lt;a href="https://github.com/johanfleury" rel="noopener noreferrer"&gt;johanfleury&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-firewall/pull/998" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall#998&lt;/code&gt;&lt;/a&gt;: “add compatibility with Rocky Linux”, thanks to &lt;a href="https://github.com/vchepkov" rel="noopener noreferrer"&gt;vchepkov&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes/pull/528" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes#528&lt;/code&gt;&lt;/a&gt;: “Support for kubernetes dashboard version 2.0.0 and onwards”, thanks to &lt;a href="https://github.com/danifr" rel="noopener noreferrer"&gt;danifr&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-postgresql/pull/1282" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-postgresql#1282&lt;/code&gt;&lt;/a&gt;: “Do not add version component to repo definition”, thanks to &lt;a href="https://github.com/weastur" rel="noopener noreferrer"&gt;weastur&lt;/a&gt; and &lt;a href="https://github.com/x1e" rel="noopener noreferrer"&gt;x1e&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-tomcat/pull/454" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-tomcat#454&lt;/code&gt;&lt;/a&gt;: “Accept Datatype Sensitive for Secrets”, thanks to &lt;a href="https://github.com/cocker-cc" rel="noopener noreferrer"&gt;cocker-cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/175" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#175&lt;/code&gt;&lt;/a&gt;: “Release 1.7.0”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/174" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#174&lt;/code&gt;&lt;/a&gt;: “Fixes #173 - Add AlmaLinux”, thanks to &lt;a href="https://github.com/maccelf" rel="noopener noreferrer"&gt;maccelf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/facterdb/pull/171" rel="noopener noreferrer"&gt;&lt;code&gt;facterdb#171&lt;/code&gt;&lt;/a&gt;: “Introduce cache to speed things up and cleanup method”, thanks to &lt;a href="https://github.com/lzap" rel="noopener noreferrer"&gt;lzap&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;, &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/rspec-puppet-facts/pull/131" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet-facts#131&lt;/code&gt;&lt;/a&gt;: “Move facterversion_obj declaration out of the loop”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/rspec-puppet-facts/pull/130" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet-facts#130&lt;/code&gt;&lt;/a&gt;: “release 2.0.2”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxpupuli/rspec-puppet-facts/pull/129" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet-facts#129&lt;/code&gt;&lt;/a&gt;: “Implement github action testing and codecov coverage reporting”, thanks to &lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/iac/pull/286" rel="noopener noreferrer"&gt;&lt;code&gt;iac#286&lt;/code&gt;&lt;/a&gt;: “Bump addressable from 2.7.0 to 2.8.0”, thanks to [dependabot[bot]][dependabot[bot]]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/litmus/pull/24" rel="noopener noreferrer"&gt;&lt;code&gt;litmus#24&lt;/code&gt;&lt;/a&gt;: “Bump addressable from 2.7.0 to 2.8.0”, thanks to [dependabot[bot]][dependabot[bot]]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/litmusimage/pull/33" rel="noopener noreferrer"&gt;&lt;code&gt;litmusimage#33&lt;/code&gt;&lt;/a&gt;: “Adds Rocky Linux &amp;amp; Alma Linux”, thanks to &lt;a href="https://github.com/fuero" rel="noopener noreferrer"&gt;fuero&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/pdk-templates/pull/441" rel="noopener noreferrer"&gt;&lt;code&gt;pdk-templates#441&lt;/code&gt;&lt;/a&gt;: “Run validation steps prior to the matrix build”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet-strings/pull/285" rel="noopener noreferrer"&gt;&lt;code&gt;puppet-strings#285&lt;/code&gt;&lt;/a&gt;: “(FIXUP) Check for nil before injecting provider param into Types”, thanks to &lt;a href="https://github.com/scotje" rel="noopener noreferrer"&gt;scotje&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs_spec_helper/pull/340" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs_spec_helper#340&lt;/code&gt;&lt;/a&gt;: “Use Rubocop’s Github Actions formatter if possible”, thanks to &lt;a href="https://github.com/ekohl" rel="noopener noreferrer"&gt;ekohl&lt;/a&gt; and the following people who helped get it over the line (&lt;a href="https://github.com/bastelfreak" rel="noopener noreferrer"&gt;bastelfreak&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check &lt;a href="///iac/team/2021/01/20/reaching-out.html"&gt;all the ways to reach us&lt;/a&gt; if you want to directly contact us about anything module related.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Module / Gem Releases
&lt;/h2&gt;

&lt;p&gt;The following modules were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apt" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apt&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;8.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-apache" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-apache&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.4.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://github.com/puppetlabs/puppetlabs-firewall" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-firewall&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;3.1.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://github.com/puppetlabs/puppetlabs-mysql" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-mysql&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;12.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-tomcat" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-tomcat&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs-kubernetes" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs-kubernetes&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;6.2.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following gems were released this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet-lint" rel="noopener noreferrer"&gt;&lt;code&gt;puppet-lint&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.5.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/rspec-puppet" rel="noopener noreferrer"&gt;&lt;code&gt;rspec-puppet&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;2.10.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppetlabs_spec_helper" rel="noopener noreferrer"&gt;&lt;code&gt;puppetlabs_spec_helper&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;4.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Puppet.Dsc Stable Release!
&lt;/h2&gt;

&lt;p&gt;This week we pushed our &lt;a href="https://github.com/puppetlabs/Puppet.Dsc" rel="noopener noreferrer"&gt;Puppet.Dsc PowerShell module&lt;/a&gt; to the &lt;a href="https://www.powershellgallery.com/packages/Puppet.Dsc/1.0.0" rel="noopener noreferrer"&gt;PowerShell Gallery at version &lt;code&gt;1.0.0&lt;/code&gt;&lt;/a&gt;! This represents more than a year of work bringing us confidence and stability in the auto-generated modules which Puppetize PowerShell DSC Resources. That done, not much &lt;em&gt;actually&lt;/em&gt; changed in this release - a &lt;em&gt;ton&lt;/em&gt; of added testing and validation, but the features were already very solid. As always we’ll continue to take bug reports and address them but our attention turns now to the long-promised automation; We’re working through the auto-publishing of PowerShell modules with DSC Resources to the Puppet Forge! Very soon, there will be less than a 24 hour delay between when a new module (or new version of an existing module) with DSC Resources lands on the PowerShell Gallery and when it arrives, Puppetized, on the Forge!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;rpsec-puppet&lt;/code&gt;, &lt;code&gt;puppet-lint&lt;/code&gt; moved to &lt;code&gt;puppetlabs&lt;/code&gt; namespace
&lt;/h2&gt;

&lt;p&gt;We have moved &lt;code&gt;puppet-lint&lt;/code&gt;, &lt;code&gt;rspec-puppet&lt;/code&gt; to the namespace and released &lt;code&gt;puppet-lint&lt;/code&gt; &lt;code&gt;2.5.0&lt;/code&gt; and &lt;code&gt;rspec-puppet&lt;/code&gt; &lt;code&gt;2.10.0&lt;/code&gt;. This will help facilitate more frequent releases of these gems in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dropsonde update
&lt;/h2&gt;

&lt;p&gt;The IAC team have completed all development tasks on both the Dropsonde module and Gem. Next, the team will be working on getting both module and gem package up as part of Puppet server. Read about our &lt;a href="https://binford2k.com/2020/05/15/telemetry-that-doesnt-suck/" rel="noopener noreferrer"&gt;content telemetry story&lt;/a&gt; and how it can improve the ecosystem, then see some more examples of &lt;a href="https://binford2k.com/2020/12/11/slicing-and-dicing-forge-usage-data/" rel="noopener noreferrer"&gt;ways to use our existing module data&lt;/a&gt; already. &lt;/p&gt;

</description>
      <category>team</category>
      <category>status</category>
      <category>rspecpuppet</category>
      <category>puppetlint</category>
    </item>
  </channel>
</rss>
