Hi Eirik,
Facter 4 is the successor of Facter 3. Facter 3 was written in C++, and Facter 4 is implemented from scratch in Ruby.
Facter 4 is a "big deal" :D because:
- it aim for 100% compatibility with Facter 3
- as Facter 4 is written in Ruby, it is packaged as a Gem and can replace Facter 2.x in many CI tests that were not using Facter 3 because it was not packaged as a Gem.
- although our most important target is to reach compatibility with Facter 3, we already added new features like:
- granular fact blocking and caching (you are able to cache/block almost any fact, from any level of the hierarchy);
- custom fact groups can be defined in facter.conf. You can use these groups to cache or block all the facts in the specific group;
- structured facts, in custom facts. You are able to write custom facts with dot in their name and Facter 4 will automatically create the hierarchy for you.
Facter 4 is already provided as a
gem on Rubygems and is intended to replace Facter 2.x in most deployment. If you are using the latest
puppet as a gem, then you are already using Facter 4 :)
Facter 4 is also packaged with puppet-agent AIO and can be enabled via a feature flag `puppet config set facterng true`. As we are still under development we recommend that the feature flag be enabled only for testing purposes and not for production.
And, you are not blind :D, currently there is no documentation for Facter 4, except the
changelog. We will provide more details once Facter 4 is ready to fully replace Facter 3.
Best regards,
Bogdan Irimie