This is due to this bug: https://tickets.puppetlabs.com/browse/PUP-3655
The issue is that for pluginsync to work, there must be at least one module in the environment that has a facts.d
directory directly off of the top level of the module.
My work around for this was to create an executable facts.d/README
file at the top level of one of our main internal modules that contained the following:
#!/bin/bash
# This directory is where external fact scripts would go, if we had any. This
# directory exists only because with directory environments puppet will
# complain if there isn't a single module in an environment that doesn't have a
# facts.d directory.
echo "bug=https://tickets.puppetlabs.com/browse/PUP-3655"
exit 0