The current default for the `pluginsource` setting is `puppet://$server/plugins`. This works well with a `server` set, but in deployments that utilize 3.0's SRV record feature, the `server` setting is likely not utilized at all for communication with a master, and will often be unset.
If SRV records are in use the `pluginsource` still gets filled in with the contents of the `server` setting - and if it's unset, then the default is `puppet`. This causes failure of the pluginsync process, which is a non-fatal error for the agent run:
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: getaddrinfo: Name or service not known
Error: /File[/var/lib/puppet/lib]: Could not evaluate: getaddrinfo: Name or service not known Could not retrieve file metadata for puppet://puppet/plugins: getaddrinfo: Name or service not known
I believe that changing the default setting for `pluginsource` from `puppet://$server/plugins` to `puppet:///plugins` is functionally equivalent for 'normal' deployments not running `use_srv_records`, while it will cause the pluginsync process to find a working master in cases where `use_srv_records` is utilized.
Simply setting `pluginsource = puppet:///plugins` is an effective workaround for SRV record deployments in the interim.