Upgrade from 3.2/4.4 to 3.3/4.5 fails with dependency problem

So tried to upgrade from Foreman 3.2/Katello 4.4 to Foreman 3.3/Katello 4.5 on AlmaLinux 8.6 with:

dnf update -y https://yum.theforeman.org/releases/3.3/el8/x86_64/foreman-release.rpm
dnf update -y https://yum.theforeman.org/katello/4.5/katello/el8/x86_64/katello-repos-latest.rpm
dnf clean all
dnf -y update

and I get this problem:

Error:
 Problem: package rubygem-foreman_remote_execution-7.1.0-1.fm3_3.el8.noarch requires foreman >= 3.3.0, but none of the providers can be installed
  - cannot install the best update candidate for package rubygem-foreman_remote_execution-6.0.0-1.fm3_2.el8.noarch
  - package foreman-3.3.0-0.5.rc1.el8.noarch is filtered out by modular filtering
  - package foreman-3.3.0-0.5.rc2.el8.noarch is filtered out by modular filtering
  - package foreman-3.3.0-1.el8.noarch is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

With -nobest I get:

[root@foreman yum.repos.d]# dnf update --nobest
Last metadata expiration check: 0:08:34 ago on Thu 30 Jun 2022 08:38:33 AM UTC.
Dependencies resolved.

 Problem: package rubygem-foreman_remote_execution-7.1.0-1.fm3_3.el8.noarch requires foreman >= 3.3.0, but none of the providers can be installed
  - cannot install the best update candidate for package rubygem-foreman_remote_execution-6.0.0-1.fm3_2.el8.noarch
  - package foreman-3.3.0-0.5.rc1.el8.noarch is filtered out by modular filtering
  - package foreman-3.3.0-0.5.rc2.el8.noarch is filtered out by modular filtering
  - package foreman-3.3.0-1.el8.noarch is filtered out by modular filtering
====================================================================================================================================================================
 Package                                                    Architecture             Version                              Repository                           Size
====================================================================================================================================================================
Upgrading:
 ansible-collection-theforeman-foreman                      noarch                   3.3.0-1.el8                          foreman-plugins                     169 k
 candlepin                                                  noarch                   4.1.11-1.el8                         katello-candlepin                    64 M
 candlepin-selinux                                          noarch                   4.1.11-1.el8                         katello-candlepin                   457 k
 rubygem-foreman-tasks                                      noarch                   6.0.2-1.fm3_3.el8                    foreman-plugins                     2.1 M
 rubygem-foreman_ansible                                    noarch                   7.1.0-3.fm3_3.el8                    foreman-plugins                     2.2 M
 rubygem-foreman_openscap                                   noarch                   5.2.2-2.fm3_3.el8                    foreman-plugins                     2.0 M
 rubygem-foreman_remote_execution                           noarch                   6.2.0-3.fm3_3.el8                    foreman-plugins                     2.2 M
 rubygem-smart_proxy_ansible                                noarch                   3.4.0-1.fm3_3.el8                    foreman-plugins                      34 k
 rubygem-smart_proxy_dynflow                                noarch                   0.8.1-1.fm3_3.el8                    foreman-plugins                      45 k
 rubygem-smart_proxy_openscap                               noarch                   0.9.1-3.fm3_3.el8                    foreman-plugins                      39 k
 rubygem-smart_proxy_pulp                                   noarch                   3.2.0-3.fm3_3.el8                    foreman-plugins                      25 k
 rubygem-smart_proxy_remote_execution_ssh                   noarch                   0.7.0-1.fm3_3.el8                    foreman-plugins                      46 k
Skipping packages with broken dependencies:
 rubygem-foreman_remote_execution                           noarch                   7.1.0-1.fm3_3.el8                    foreman-plugins                     2.3 M

Transaction Summary
====================================================================================================================================================================
Upgrade  12 Packages
Skip      1 Package

Total download size: 74 M
Is this ok [y/N]:

Since the Foreman package is filtered out I assume this is not a good path to take.
Did I miss something?

Hi @tedevil !

Since Foreman 3.3 / Katello 4.5 it’s needed to enable the module streams:

dnf module enable foreman
dnf module enable katello
dnf module enable pulpcore

Without that it won’t find the correct packages.

Please be also aware of that Katello 4.5 is still in the RC phase!

I have wrote a bit about that here:

ohh, thought 4.5 was GA since it was in the update procedure at: Upgrading and Updating Foreman
Reverted back the Katello 4.4 repo and enabled the foreman, katello and pulpcore modules.

dnf module list --enabled
Katello 4.4                                                                                                                         3.8 MB/s | 769 kB     00:00
Candlepin: an open source entitlement management system.                                                                             60 kB/s |  15 kB     00:00
pulpcore: Fetch, Upload, Organize, and Distribute Software Packages.                                                                1.8 MB/s | 308 kB     00:00
AlmaLinux 8 - AppStream
Name                             Stream                    Profiles                               Summary
ant                              1.10 [d][e]               common [d]                             Java build tool
httpd                            2.4 [d][e]                common [d], devel, minimal             Apache HTTP Server
javapackages-runtime             201801 [d][e]             common [d]                             Basic runtime utilities to support Java applications
maven                            3.5 [d][e]                common [d]                             Java project management and project comprehension tool
perl                             5.26 [d][e]               common [d], minimal                    Practical Extraction and Report Language
perl-IO-Socket-SSL               2.066 [d][e]              common [d]                             Perl library for transparent TLS
perl-libwww-perl                 6.34 [d][e]               common [d]                             A Perl interface to the World-Wide Web
pki-core                         10.6 [e]                                                         PKI Core module for PKI 10.6 or later
pki-deps                         10.6 [e]                                                         PKI Dependencies module for PKI 10.6 or later
postgresql                       12 [e]                    client, server [d]                     PostgreSQL server and client module
python36                         3.6 [d][e]                build, common [d]                      Python programming language, version 3.6
python38                         3.8 [d][e]                build, common [d]                      Python programming language, version 3.8
redis                            5 [d][e]                  common [d]                             Redis persistent key-value database
ruby                             2.7 [e]                   common [d]                             An interpreter of object-oriented scripting language
virt                             rhel [d][e]               common [d]                             Virtualization module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

After enabled the 3 modules:

[root@foreman ~]# dnf module list --enabled
Last metadata expiration check: 0:02:43 ago on Thu 30 Jun 2022 11:51:43 AM UTC.
AlmaLinux 8 - AppStream
Name                             Stream                    Profiles                               Summary
ant                              1.10 [d][e]               common [d]                             Java build tool
httpd                            2.4 [d][e]                common [d], devel, minimal             Apache HTTP Server
javapackages-runtime             201801 [d][e]             common [d]                             Basic runtime utilities to support Java applications
maven                            3.5 [d][e]                common [d]                             Java project management and project comprehension tool
perl                             5.26 [d][e]               common [d], minimal                    Practical Extraction and Report Language
perl-IO-Socket-SSL               2.066 [d][e]              common [d]                             Perl library for transparent TLS
perl-libwww-perl                 6.34 [d][e]               common [d]                             A Perl interface to the World-Wide Web
pki-core                         10.6 [e]                                                         PKI Core module for PKI 10.6 or later
pki-deps                         10.6 [e]                                                         PKI Dependencies module for PKI 10.6 or later
postgresql                       12 [e]                    client, server [d]                     PostgreSQL server and client module
python36                         3.6 [d][e]                build, common [d]                      Python programming language, version 3.6
python38                         3.8 [d][e]                build, common [d]                      Python programming language, version 3.8
redis                            5 [d][e]                  common [d]                             Redis persistent key-value database
ruby                             2.7 [e]                   common [d]                             An interpreter of object-oriented scripting language
virt                             rhel [d][e]               common [d]                             Virtualization module

Foreman 3.3
Name                             Stream                    Profiles                               Summary
foreman                          el8 [e]                   installer                              Foreman module

Katello 4.4
Name                             Stream                    Profiles                               Summary
katello                          el8 [e]                   installer                              Katello module

pulpcore: Fetch, Upload, Organize, and Distribute Software Packages.
Name                             Stream                    Profiles                               Summary
pulpcore                         el8 [e]                                                          Pulpcore module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

So tried to update again but got even more problems:

[root@foreman ~]# dnf clean all
93 files removed
[root@foreman ~]# dnf update
CentOS Configmanagement SIG - ansible-29                                                                                            1.9 MB/s | 2.1 MB     00:01
AlmaLinux 8 - BaseOS                                                                                                                1.7 MB/s | 2.8 MB     00:01
AlmaLinux 8 - AppStream                                                                                                             4.6 MB/s | 9.2 MB     00:02
AlmaLinux 8 - Extras                                                                                                                 31 kB/s |  18 kB     00:00
AlmaLinux 8 - PowerTools                                                                                                            1.2 MB/s | 2.6 MB     00:02
Ansible runner                                                                                                                       12 kB/s | 8.3 kB     00:00
Foreman 3.3                                                                                                                         6.5 MB/s | 1.6 MB     00:00
Foreman plugins 3.3                                                                                                                 8.4 MB/s | 1.9 MB     00:00
Katello 4.4                                                                                                                         4.3 MB/s | 769 kB     00:00
Candlepin: an open source entitlement management system.                                                                            103 kB/s |  15 kB     00:00
pulpcore: Fetch, Upload, Organize, and Distribute Software Packages.                                                                1.8 MB/s | 308 kB     00:00
Puppet 7 Repository el 8 - x86_64                                                                                                   2.7 MB/s |  13 MB     00:04
Error:
 Problem 1: package rubygem-katello-4.4.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - cannot install both foreman-3.3.0-1.el8.noarch and foreman-3.2.1-1.el8.noarch
  - cannot install the best update candidate for package rubygem-katello-4.4.1-1.el8.noarch
  - cannot install the best update candidate for package foreman-3.2.1-1.el8.noarch
 Problem 2: package katello-4.4.1-1.el8.noarch requires rubygem-katello, but none of the providers can be installed
  - package rubygem-katello-4.4.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-0.4.rc2.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0.2-2.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-0.2.rc1.20220216202508gitc22cf52.el8.noarch requires rubygem(pulp_rpm_client) < 3.17.0, but none of the providers can be installed
  - cannot install both foreman-3.3.0-1.el8.noarch and foreman-3.2.1-1.el8.noarch
  - cannot install both rubygem-pulp_rpm_client-3.16.1-1.el8.noarch and rubygem-pulp_rpm_client-3.17.4-1.el8.noarch
  - package foreman-dynflow-sidekiq-3.3.0-1.el8.noarch requires foreman = 3.3.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package rubygem-pulp_rpm_client-3.17.4-1.el8.noarch
  - cannot install the best update candidate for package katello-4.4.1-1.el8.noarch
  - cannot install the best update candidate for package foreman-dynflow-sidekiq-3.2.1-1.el8.noarch
 Problem 3: problem with installed package rubygem-katello-4.4.1-1.el8.noarch
  - package rubygem-katello-4.4.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - cannot install both foreman-3.3.0-1.el8.noarch and foreman-3.2.1-1.el8.noarch
  - package foreman-postgresql-3.3.0-1.el8.noarch requires foreman = 3.3.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package foreman-postgresql-3.2.1-1.el8.noarch
 Problem 4: problem with installed package katello-4.4.1-1.el8.noarch
  - package katello-4.4.1-1.el8.noarch requires rubygem-katello, but none of the providers can be installed
  - package rubygem-katello-4.4.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-0.2.rc1.20220216202508gitc22cf52.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-0.4.rc2.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0.1-1.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - package rubygem-katello-4.4.0.2-2.el8.noarch requires foreman < 3.3, but none of the providers can be installed
  - cannot install both foreman-3.3.0-1.el8.noarch and foreman-3.2.1-1.el8.noarch
  - package foreman-service-3.3.0-1.el8.noarch requires foreman = 3.3.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package foreman-service-3.2.1-1.el8.noarch
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Tried --allowerasing and noticed it wanted to remove katello and rubygem-katello 4.4.1-1 no no go.
So added Katello 4.5 repo back and this time no issues with broken dependencies.

You always need to run the supported Foreman version together with Katello!
Foreman 3.1 + Katello 4.3
Foreman 3.2 + Katello 4.4
Foreman 3.3 + Katello 4.5

Right, but when I see this in the documentation page I assume I am installing a GA of both Foreman and Katello:
image

Also if modules needs to be enabled before the upgrade, it would be nice to see that in the upgrade documentation. Was not in the one I followed anyway…

I will postpone the upgrade until Katello 4.5 is GA.

Thanks,
Paul

I’m totally with you there, there is room for improvement ^^

I just noticed that recently on upgrading myself, I already promised that I’m sending a PR to add the EL8+ upgrade path to the docs, so yeah hopefully it’s mentioned in there soon :+1:

1 Like