Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-8988

Don't pluginsync vendored modules



    • Bug
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • PUP 6.0.0
    • None
    • None
    • Not Needed
    • This is a behavior change to code that hasn't been released yet, so there won't be any user-facing changes.
    • Needs Assessment


      Currently in puppet#master, we treat vendored modules just like any another module in the environment-specific modulepath, just that they have the least preference.

      This is desirable to ensure that the version of the type we're compiling for, is the same version that the agent uses during catalog application. This is important to ensure the code in the type (title patterns, munge, validate, auto relations) is consistent to prevent subtle and difficult to reproduce bugs. It would also prevent problems likeĀ PUP-2746.

      However, it causes a few problems:

      • it will cause additional pluginsync'ing of types and providers
      • we have to be careful about introducing changes to types that are not compatible with older agents. For example, the yumrepo type now marks the password and proxy_password properties as sensitive, but the Puppet::Parameter#sensitive method is not available in older puppet versions.
      • it is a departure from how puppet currently works

      This ticket proposes we:

      • remove the vendored modules from the module path so that they are not pluginsync'ed automatically
      • add a puppet setting for vendored modulepath
      • add the path to the autoloader search path with least precedence

      This way vendored types can be autoloaded locally, but we never pluginsync (types/providers/facts/files/etc) them.

      /cc ericsorenson, jacob.helwig, melissa, branan


        Issue Links



              josh Josh Cooper
              josh Josh Cooper
              0 Vote for this issue
              5 Start watching this issue



                Zendesk Support