Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make facts export optional #90

Open
deric opened this issue Aug 3, 2022 · 6 comments · May be fixed by #91
Open

Make facts export optional #90

deric opened this issue Aug 3, 2022 · 6 comments · May be fixed by #91
Labels
enhancement New feature or request

Comments

@deric
Copy link

deric commented Aug 3, 2022

  • Module version: 3.2.0

On a Debian installation I'm currently seeing almost 1k facts from kmod module

$ facter -y --puppet kmods | wc -l
973

Puppet 7 is preconfigured with soft limit for facts set to 2048.

$ facter -y | wc -l
1380

Combining default puppet facts with kmod facts can easily exceed this soft limit. Of course the limit can be increased, but I guess the main reason is performance. Currently I find little usage kmod facts. E.g. would it be possible to export only managed modules?

@squaricdot
Copy link

wanted to make an issue for this, but found it :)

yes puppet is now complaining because of too many facts. this module seems to be the culprit (for me)

please make it optional as not really needing it, by default.

@kenyon kenyon added the enhancement New feature or request label Mar 3, 2023
@dekonnection
Copy link

Hi and thanks for your work on this module :)

We also encountered this issue here:

Warning: The current total number of facts: 2121 exceeds the number of facts limit: 2048

I agree with the previous messages, it would be really nice to be able to restrict facts to managed modules, or even completely disable these facts with a parameter.

@treydock
Copy link

Facts can not be enabled/disabled using parameters. Once you include a module with a custom fact it will get deployed to all Puppet agents using plugin sync. That is not something you can turn off selectively. Generally speaking facts don't know what's managed and unmanaged in Puppet so only doing modules that are part of Puppet isn't really possible either.

There are a few options.

One you could increase the number of facts your system allows: https://www.puppet.com/docs/puppet/7/configuration.html#number-of-facts-soft-limit

Another option is to attempt to disable the facts on the Puppet agent host using block list: https://www.puppet.com/docs/puppet/7/configuring_facter.html#configuring_facter-facter-conf-facts

@deric
Copy link
Author

deric commented Mar 13, 2023

Facts can not be enabled/disabled using parameters.

@treydock Yes not directly, but facter code is processed locally and you can read configuration stored e.g. in a local config file.

@dekonnection
Copy link

Yes @deric , that's exactly what I meant: configuring the fact using a local config file 👍

@tuxmea
Copy link
Member

tuxmea commented Mar 13, 2023

Idea:

  1. Fact: check if a flag/config file exists and only process the kmod facts if the file is available.
  2. The kmod module needs a parameter (default false) to set the flag/config file only if the parameter is set to true.

This means that the kmod facts will be available on a second puppet agent run only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants