Getting "Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter provider on Vcsrepo" while using puppet providers with multiple environments on satellite 6.1

Solution In Progress - Updated -

Issue

  • Problem using puppet providers with multiple environments.

  • A bug exists in Puppet that causes issues when attempting to use modules that make use of custom providers in combination with multiple environments:

 https://tickets.puppetlabs.com/browse/PUP-1515

This bug manifests itself prominently in Satellite, due to the extensive use of environments through Content Views.

  • A manifest with the following code (using vcsrepo) triggers this issue:
  vcsrepo { '/opt/git/hosdep-scripts':
    ensure   => latest,
    provider => git,
    require  => [ Package["git"], File["/opt/git/ssh/id_rsa"] ],
    source   => 'git@eicilll009:hosdep.test.git',
    identity => '/opt/git/ssh/id_rsa'
  }

with the following output on a puppet run:

# puppet agent -t -v
Info: Retrieving plugin
Info: Loading facts in /var/lib/puppet/lib/facter/staging_http_get.rb
Info: Loading facts in /var/lib/puppet/lib/facter/ip6tables_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/apt_reboot_required.rb
Info: Loading facts in /var/lib/puppet/lib/facter/service_provider.rb
Info: Loading facts in /var/lib/puppet/lib/facter/mysql_server_id.rb
Info: Loading facts in /var/lib/puppet/lib/facter/staging_windir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/apt_update_last_success.rb
Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/apt_updates.rb
Info: Loading facts in /var/lib/puppet/lib/facter/package_provider.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rh_certificates.rb
Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/iptables_persistent_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/haproxy_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/iptables_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppetgem.rb
Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rsyslog_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/gemhome.rb
Info: Loading facts in /var/lib/puppet/lib/facter/mysql_version.rb

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter provider on Vcsrepo[/opt/git/hosdep-scripts] at /etc/puppet/environments/KT_European_Parliament_Lab_RHEL7_x86_64_2/modules/ep_base/manifests/ep_gitclone.pp:29 on node rhlinux02.ep.parl.union.eu
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
  • The work around for this issue is manually applying the patch proposed here:
 https://github.com/puppetlabs/puppet/pull/2963/files

This change works well for specific use case. This fix will be included in Puppet 3.7.5 according to the bugreport.

  • Can this be backported ?

Environment

  • Red Hat Satellite 6.1
  • Puppet 3.7.5

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content