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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In