Receiving "No Puppet module parser is installed" error when trying to run foreman-installer upgrade

Problem:
I’m trying to upgrade from katello 3.10 to katello 3.12. I have followed the upgrade procedure.

After adding the new repositories, and running yum update, I had to update puppet to puppet6-release-el-7.noarch.rpm. When I run “foreman-installer --scenario katello --upgrade”, I’m getting this error:

/usr/share/gems/gems/kafo-3.0.0/lib/kafo/puppet_module.rb:69:in parse': No Puppet module parser is installed and no cache of the file /usr/share/foreman-installer/modules/foreman/manifests/plugin/docker.pp is available. Please check debug logs and install optional dependencies for the parser. (Kafo::ParserError) from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/configuration.rb:96:inblock in modules’
from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/configuration.rb:96:in map' from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/configuration.rb:96:inmodules’
from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/configuration.rb:214:in params' from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/configuration.rb:224:inpreset_defaults_from_puppet’
from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/kafo_configure.rb:285:in set_parameters' from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/kafo_configure.rb:100:ininitialize’
from /usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:132:in new' from /usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:132:inrun’
from /usr/share/gems/gems/kafo-3.0.0/lib/kafo/kafo_configure.rb:163:in run' from /sbin/foreman-installer:8:in

Expected outcome:
Successful upgrade.

Foreman and Proxy versions:
1.20.2

Foreman and Proxy plugin versions:
bastion 6.1.16
foreman-tasks 0.14.3
foreman_chef 0.8.1
foreman_discovery 14.0.1
foreman_docker 4.1.0
foreman_remote_excecution 1.6.7
katello 3.10.0

Other relevant data:
[e.g. logs from Foreman and/or the Proxy, modified templates, commands issued, etc]
(for logs, surround with three back-ticks to get proper formatting, e.g.)

logs

It sounds like a mismatch between foreman-installer and foreman-installer-katello. Can you show the output of yum list installed foreman*?

https://yum.theforeman.org/releases/1.22/el7/x86_64/repodata/repomd.xml: [Errno 14] curl#60 - “Peer’s Certificate issuer is not recognized.”
Trying other mirror.
It was impossible to connect to the CentOS servers.
This could mean a connectivity issue in your environment, such as the requirement to configure a proxy,
or a transparent proxy that tampers with TLS security, or an incorrect system clock.
You can try to solve this issue by using the instructions on https://wiki.centos.org/yum-errors
If above article doesn’t help to resolve this issue please use https://bugs.centos.org/.

https://yum.theforeman.org/plugins/1.22/el7/x86_64/repodata/repomd.xml: [Errno 14] curl#60 - “Peer’s Certificate issuer is not recognized.”
Trying other mirror.
https://yum.theforeman.org/rails/foreman-1.22/el7/x86_64/repodata/repomd.xml: [Errno 14] curl#60 - “Peer’s Certificate issuer is not recognized.”
Trying other mirror.
puppet6 | 2.5 kB 00:00:00
puppet6/x86_64/primary_db | 140 kB 00:00:00
Installed Packages
foreman.noarch 1.22.0-1.el7 @foreman
foreman-cli.noarch 1.22.0-1.el7 @foreman
foreman-debug.noarch 1.22.0-1.el7 @foreman
foreman-ec2.noarch 1.22.0-1.el7 @foreman
foreman-installer.noarch 1:1.22.0-1.el7 @foreman
foreman-installer-katello.noarch 1:1.22.0-1.el7 @foreman
foreman-postgresql.noarch 1.22.0-1.el7 @foreman
foreman-proxy.noarch 1.22.0-1.el7 @foreman
foreman-release.noarch 1.22.0-1.el7 installed
foreman-release-scl.noarch 7-2.el7 @foreman
foreman-selinux.noarch 1.22.0-1.el7 @foreman
foreman-vmware.noarch 1.22.0-1.el7 @foreman

That looks like it’s trying to do client certificates which we don’t support on our mirrors.

However, now I more carefully read the message it’s about docker. That’s no longer supported and was removed in:

https://github.com/theforeman/foreman-installer/commit/b0e099a60b067f52d44211eb55dd8a0d8b930143

However, this migration isn’t applied to the Katello scenario because it was never part of that. If you manually added it, then that may be the cause and you should manually remove it.

Thanks, that fixed the issue.