Topics

Facter 4 pre-release

Bogdan Irimie
 

Hi,


We are very happy to inform you that in the last week we have deployed a pre-release version of Facter 4 to rubygems. Facter 4 is still under development and our first goal is to replace Facter 2.x in Puppet gem with Facter 4.


Starting with Puppet 6.13.0 gem users can opt in to use Facter 4.

To try out Facter 4 you can run: gem install facter –pre


We are planning to do a full release of Facter 4 gem on the 11th of March 2020. 


Impact:

  • Module tests that have been converted to Limus and run with Puppet as a gem will work once https://tickets.puppetlabs.com/browse/IAC-551 is resolved.

  • Modules converted to litmus that use litmus:install_agent or beaker with agent provisioning will not be affected as we still plan to provide Facter 3 as the default facter in Puppet Agent AIO.


 

If you have any questions or feedback, please feel free to reach out on slack or open a ticket on https://tickets.puppetlabs.com/projects/FACT with facter-ng label. 


Ewoud Kohl van Wijngaarden
 

On Wed, Feb 26, 2020 at 04:00:03PM +0200, Bogdan Irimie wrote:
We are very happy to inform you that in the last week we have deployed a
pre-release version of Facter 4 to rubygems. Facter 4
<https://github.com/puppetlabs/facter-ng> is still under development and
our first goal is to replace Facter 2.x in Puppet gem with Facter 4.

Starting with Puppet 6.13.0 gem users can opt in to use Facter 4.

To try out Facter 4 you can run: *gem install facter –pre*

We are planning to do a full release of Facter 4 gem on the 11th of March
2020.

Impact:

-

Module tests that have been converted to Limus and run with Puppet as a
gem will work once https://tickets.puppetlabs.com/browse/IAC-551 is
resolved.
-

Modules converted to litmus that use litmus:install_agent or beaker with
agent provisioning will not be affected as we still plan to provide Facter
3 as the default facter in Puppet Agent AIO.
What I miss is what the impact for me as a module author. This only mentions litmus (which I don't use), so there's no impact? The README states it's a 100% compatible drop-in replacement. Does that mean that legacy facts are also still supported?

We're heavy users of https://github.com/mcanevet/rspec-puppet-facts and it would be nice if there were simple instructions to verify modules with Facter 4 facts.

Bogdan Irimie
 
Edited

This pre-release does not affect you in any way. You can verify modules with Facter 4 by setting 'FACTER_GEM_VERSION=4.0.9.pre' if you are using https://github.com/mcanevet/rspec-puppet-facts .
On 11th of March we will release Facter 4. Once we release Facter 4, all modules that use https://rubygems.org/gems/rspec-puppet-facts will be impacted because they will migrate to Facter 4 (rspec-puppet-facts depends on facter >=0). You can opt out by setting an older version of Facter in FACTER_GEM_VERSION. 
Facter 4 supports legacy facts.

The release of Facter 4 will impact people that use Puppet as a gem. Puppet AIO is not affected by the release.

Bogdan Irimie
 

Just a small clarification. We have already tested Facter 4 with some modules (list is bellow) that use Puppet as a gem and the acceptance tests pass. The impact should be minimal, but I encourage you to try out Facter 4 with your modules and provide feedback. If your modules don't work with Facter 4, you can always set FACTER_GEM_VERSION to an older version of Facter.

Modules tested: puppetlabs-acl, puppetlabs-bootstrap, puppetlabs-chocolatey, puppetlabs-concat, puppetlabs-exec, puppetlabs-java_ks, puppetlabs-motd, puppetlabs-registry, puppetlabs-resource, puppetlabs-scheduled_task, puppetlabs-service, puppetlabs-stdlib, puppetlabs-wsus_client.

Corey Osman
 

I am going to test with the puppet debugger gem.  Which basically uses the puppet facts API to retrieve facts.  So as long as puppet works with facter4 I would expect it to work in the debugger gem.

Has it been tested with the vscode puppet extension that uses similar API calls?



---- On Mon, 09 Mar 2020 12:46:14 -0500 bogdan.irimie@... wrote ----

Just a small clarification. We have already tested Facter 4 with some modules (list is bellow) that use Puppet as a gem and the acceptance tests pass. The impact should be minimal, but I encourage you to try out Facter 4 with your modules and provide feedback. If your modules don't work with Facter 4, you can always set FACTER_GEM_VERSION to an older version of Facter.

Modules tested: puppetlabs-acl, puppetlabs-bootstrap, puppetlabs-chocolatey, puppetlabs-concat, puppetlabs-exec, puppetlabs-java_ks, puppetlabs-motd, puppetlabs-registry, puppetlabs-resource, puppetlabs-scheduled_task, puppetlabs-service, puppetlabs-stdlib, puppetlabs-wsus_client.