Foreman 3.2.0 RC1 is available for testing

The first release candidate of Foreman 3.2.0 is now available for testing. Special thanks to everyone who contributed and taken part in making this release ready.

While testing upgrades with plugins on CentOS 8 Stream we observed dependency issue with ansible-core and openscap packages and those should be fixed soon.

Please help by testing and getting it release-ready, and let us know if you hit any issue when upgrading or installing the release candidate either here or on our issue tracker .

There are likely still some updates needed in the installation instructions and other parts of the documentation.

Installation quick start:
https://theforeman.org/manuals/3.2/quickstart_guide.html

Upgrade instructions:
https://theforeman.org/manuals/3.2/index.html#3.6Upgrade

Release notes:
https://theforeman.org/manuals/3.2/index.html#Releasenotesfor3.2

This is also a good time to improve translations for existing locales to ensure full coverage. Help out at: Foreman localization

Packages may be found in the 3.2 directories on both deb.theforeman.org and yum.theforeman.org , and tarballs are on downloads.theforeman.org .

The GPG key used for signing RPMs and tarballs has the following fingerprint:
77F7076DFD4F373EF0F0E9AC8D746ED06DA7EB32

The GPG key used for signing DEBs has been rotated and has the following fingerprint:
5B7C3E5A735BCB4D615829DC0BDDA991FD7AAC8A.

2 Likes

Hello,

I tested the 3.1 upgrade on CentOS 8 Stream on semi-production env, with foreman-ansible, foreman-webhooks, foreman_remote_execution and foreman-tasks installed. All went relatively smooth and the upgrade took ~30 minutes including the installer run, it’s a tiny instance though.

Questions and comments:

1) the dnf upgrade ruby\* foreman\* instruction failed with

Last metadata expiration check: 0:01:21 ago on Thu Feb 24 10:29:49 2022.
Error: 
 Problem 1: package rubygem-sqlite3-1.4.2-2.el8.x86_64 requires libruby.so.2.5()(64bit), but none of the providers can be installed
  - cannot install both ruby-libs-2.7.3-136.module_el8.5.0+813+054ec265.x86_64 and ruby-libs-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64
  - cannot install the best update candidate for package rubygem-sqlite3-1.4.2-2.el8.x86_64
  - cannot install the best update candidate for package ruby-libs-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64
  - package ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64 is filtered out by modular filtering
 Problem 2: package foreman-3.2.0-0.3.rc1.20220214174122git7ccb4f6.el8.noarch requires rubygem(net-ssh) = 4.2.0, but none of the providers can be installed
  - cannot install both rubygem-net-ssh-5.1.0-2.el8.noarch and rubygem-net-ssh-4.2.0-3.el8.noarch
  - cannot install both rubygem-net-ssh-4.2.0-3.el8.noarch and rubygem-net-ssh-5.1.0-2.el8.noarch
  - cannot install the best update candidate for package rubygem-net-ssh-4.2.0-3.el8.noarch
  - cannot install the best update candidate for package foreman-3.1.1-1.el8.noarch
 Problem 3: problem with installed package rubygem-sqlite3-1.4.2-2.el8.x86_64
  - package rubygem-sqlite3-1.4.2-2.el8.x86_64 requires libruby.so.2.5()(64bit), but none of the providers can be installed
  - cannot install both ruby-libs-2.7.3-136.module_el8.5.0+813+054ec265.x86_64 and ruby-libs-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64
  - package ruby-2.7.3-136.module_el8.5.0+813+054ec265.x86_64 requires ruby-libs(x86-64) = 2.7.3-136.module_el8.5.0+813+054ec265, but none of the providers can be installed
  - cannot install the best update candidate for package ruby-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64
  - package ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.5.9-107.module_el8.5.0+811+d98a1657.x86_64 is filtered out by modular filtering
(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)

running that with --nobest helped, it seems besides the newer net-ssh in epel, we now have some issue with ruby-libs.

2) I’m not sure why I was asked to reset the Ruby 2.7 module, wasn’t the enabled already with 3.1?

3) as part of the process (running rake tasks) I’m seeing the apipie cache warning

API controllers newer than Apipie cache! Run apipie:cache rake task to regenerate cache.

should we mention that in upgrade instructions? Shoud we add a step to run foreman-rake apipie:cache. That indeed helps, but from the warning message, it may not be clear what command to run.

I think we’ve been seeing this error for the past few releases. I think we should prioritize this RFC for Foreman 3.3:

While we can improve that in future, I’d say the experience can be improved by providing some additional info or step for 3.2 upgrade notes.

For the RPM modularity: we’re aware of some issues:

Some of that only showed up in the release repository. There we merge RPMs (to keep old versions) while in nightly we only have the latest versions. This has some effect on the metadata.

Once that works, we should update the installation / upgrade instructions.

As for the out of date apipie cache: it would be interesting to see what triggers it. This is the code that emits it:

If you can print the exact file (or files) that is out of date that could help narrow it down. It may be a packaging issue.

If you tell me how, happy to do that. However I already ran the task, so I guess there’s no more warnings. I don’t have other production like setup but if I see it with RC2, happy to test whatever command.