1. Headline Features

1.1. Redis cache can now be managed by the installer

By default Foreman uses a file-based cache on tmpfs, but Foreman 2.1 added support for Redis caching. Rails mentions that the file-based cache should not be used in production. There are known issues with (very) large installations with loads of concurrent requests.

Now switching over is as easy as foreman-installer --foreman-rails-cache-store type:redis. This will likely become the default in a future version.

1.2. New installations will disable Puppetserver’s telemetry by default

The Foreman project has always taken a position where we want to respect user’s privacy and telemetry goes against that. Puppetserver 7 has started to send telemetry by default.

Foreman 3.4 introduced an installer parameter to disable it (--puppet-server-puppetserver-telemetry false), but it kept the Puppetserver built in default.

The Foreman installer will now default to disabling telemetry for new installations. Upgrading users will need to explicitly disable telemetry.

For more information, see Puppetserver’s telementry documentation.

1.3. Foreman Ansible plug-in

1.3.1. New option to enable the callback plugin for Ansible jobs

Previously, the callback plug-in was enabled only for the Ansible Roles - Ansible Default playbook. In this release, a new feature has been added, giving users the ability to enable the callback plug-in for each Ansible job template individually.

1.3.2. Fix Ansible config report 500 error

Previously, in certain scenarios, the failure of an Ansible job led to a 500 error code on the config report page. This issue has been resolved, and presently, in the event of an unsuccessful Ansible job execution, the error message will be presented in the config report user interface.

2. Upgrade Warnings

3. Deprecations

3.1. Puppet 6 is EOL

Starting 2023-03-01 Puppet 6 is end of life. Users should upgrade to Puppet 7.

4. Foreman 3.6.2

A full list of changes is available on Redmine

4.1. Foreman

4.1.1. Host registration

  • global registration should not create hosts as "managed" or "to be built" - #36393

4.1.2. Inventory

  • Redirect when editing a host is not reliable - #36265

  • hosts names are hidden in small screens - #36263

  • Host Detail button landed to old Host UI page - #36225

4.1.3. Packaging

  • Pin sass version to 1.60.z to avoid node 14 dependency - #36305

4.1.4. Tests

  • Pin minitest < 5.19 to resolve test failures - #36617

4.2. Installer

4.2.1. foreman-installer script

  • katello-certs-check does not cause the installer to halt execution on failure - #36567

4.3. Packaging

4.3.1. Debian/Ubuntu

  • ruby-foreman-templates DEB package includes old versions of git and diffy GEMs - #36405

5. Foreman 3.6.1

A full list of changes is available on Redmine

5.1. Installer

5.1.1. foreman-installer script

  • Upgrade from Foreman 3.5.2 to 3.6 shows class Certs::Puppet is already declared - #36217

5.2. Smart Proxy

5.2.1. TFTP

  • tftp initrd/vmlinux generation: curl malformed - #36209

6. Foreman 3.6.0

A full list of changes is available on Redmine

6.1. Foreman

6.1.1. API

  • Parameter 'search' on fact_value API endpoint results in internal server error - #35990

  • Unnecessary API calls for power column - #35908

6.1.2. Audit Log

  • Compatibility with audited 5.1.0 - #35893

6.1.3. Compute resources

  • "Back to host" in vnc/spice console does not respect old/new host details setting - #36139

  • Console button is shown, even if Compute Resource doesn't support consoles - #32521

6.1.4. Compute resources - VMware

  • Update fog-vsphere version to use rbvmomi2 - #35862

6.1.5. Compute resources - libvirt

  • nic network/bridge comparison can be nil - #35797

6.1.6. DB migrations

  • Statistics migrations are purged even if foreman_statistics is present - #35871

6.1.7. Dashboard

  • Dashboard widgets linking to host do not respect new/old host page setting - #36135

  • Take possibilty of report origin related settings not being there - #36107

6.1.8. Development tools

  • Environment variable FOREMAN_RAILS_CACHE_STORE_URLS is not set correctly in docker-compose file - #35902

  • Wrong syntax used in docker-compose.yml for specifying queues - #35898

  • Change container image to CentOS 8 Stream - #35593

6.1.9. Facts

  • Support new Debian unstable OS facts - #35865

6.1.10. Host registration

  • Registration - Unregister host before CA change - #36071

6.1.11. Internationalization

  • i18n automation failing due to internationalization of locators - #35630

6.1.12. Inventory

  • Columns are overlapping while adding columns through "Manage columns" tab in "All Hosts" - #36129

  • Host Details page doesn't have static UUIDs for the tabs and generate new UUID every time on page load - #36000

  • Host list interpretes HTML from comment-field - #35977

  • Windows password-encryption code changes input-value - #35946

  • Searching hosts should be possible by all reported data - #35845

  • Column selector displays on the empty host index page - #35837

  • Boot time column should show up as empty when there's no data - #35823

  • Some selectable columns on host list should have shorter headers - #35820

  • host details - Details tab cards have horizontal scroll - #35819

  • Move fields between categories on the host detail page - #35786

  • Add BIOS fields to reported data on host index page - #35785

  • Add 'Last configuration report' to 'Recent communication' card - #35764

  • No host found error after editing host's address - #35762

  • Export button does not use selectable columns - #35701

  • Details tab - Virtualization card - #35649

  • New UI shows creator of host as the 'Host owner' not who actually created - #35642

  • New hosts detail page doesn't show global and host parameters - #35255

6.1.13. JavaScript stack

  • Search focuses when writing / in text area - #36111

  • Search should have a name attribute - #35978

  • Allow passing parameters to getControllerSearchProps - #35896

  • Add tag_type parameter to replace_value_control - #35876

  • New host details - Move Details tab out of experimental labs - #35839

  • Host status and personal access token views use magic numbers for per_page - #35802

  • Change autocomplete to be in Patternfly 4 - #35550

6.1.14. Notifications

  • Make RSS notification stick around for 1 month instead of going away after a day - #35866

6.1.15. Packaging

  • Drop old Ruby < 2.5 compatibility with SecureRandom - #35781

  • Depend on RSS gem for Ruby 3 - #35462

6.1.16. Performance

  • Expose puma worker_timeout configuration option - #35641

6.1.17. PuppetCA

  • "change Puppet Master" option does not work - #35949

6.1.18. Rake tasks

  • Add support for journald into errors:fetch_log rake task - #35903

6.1.19. Reporting

  • Update report templates for multi-CV - #35660

  • template autocomplete has incorrect props - #35912

  • Configuration status is named as "status" in the search syntax, which is confusing and inconsistent with other stats - #35843

6.1.21. Settings

  • Foreman.settings.load_values is not able to pick settings which transitioned from a non-default to default value - #35894

  • Improve setting definition DSL and move setting registry to memory - #29939

6.1.22. Templates

  • host_puppet_environment ignores host param - #36153

  • Add pagelet mountpoints to form template to make it extensible in plugins - #35726

6.1.23. Unattended installations

  • Remove Puppet host_param options from template - #36131

  • Pass URL parameters to foreman_url as hash - #36019

  • Kickstart default - remove @core group - #36014

  • Add custom boot arguments for kickstart hosts - #35969

  • Windows default iPXE httpboot template - #35909

  • Kickstart default fails with Katello - #35900

  • Provisioning registered RHEL hosts is impossible without Katello installed - #35868

  • Install chrony on RHEL 7 machines - #35840

  • Ubuntu Autoinstall enable offline and online installation - #35719

  • pkg_manager.erb - support AmazonLinux 2 & 2022 - #35670

  • Use Host registration with subscription-manager on SUSE - #35645

  • New PXEGrub2 template required in order to deploy Ubuntu 22 on EFI systems - #35286

6.1.24. Web Interface

  • Http proxy url text overflows in next row. - #36018

  • Template form popovers stick around even after changing tabs - #35957

  • Host form popovers stick around even after changing tabs - #35956

6.2. Installer

  • Move katello certificate integration into puppet-puppet - #35985

6.2.1. Foreman modules

  • Manage Redis service when the cache store is set to Redis - #36037

  • Enable the HStore module in postgres for pulpcore 3.22 upgrade - #36030

  • assets are not compressed during delivery anymore - #36028

  • Permit recursive ownership/permissions for environments dir - #35983

  • Permit setting default_schedules to true - #35932

  • ansible is not able to detect if the remote host just stops responding - #35925

  • Expose new sp-rex-ssh tunables - #35899

  • mod_expires is not loaded - #35870

  • Disable Puppetserver telemetry by default - #35728

6.2.2. foreman-installer script

  • Foreman-installer purges custom powerdns-plugin settings in /etc/foreman-proxy/settings.d/dns_powerdns.yml - #36211

  • Drop support for the memcache plugin - #36170

6.3. Packaging

6.3.1. RPMs

  • rubygem-openscap (and thus foreman_openscap) can't be installed on CentOS Stream 8 - #36086

  • Legacy rex form is missing options for future or recurring execution - #35997

  • Drop foreman_spacewalk plugin - #35767

  • Introduce foreman-obsolete-packages to remove old packages - #35743

6.4. SELinux

6.4.1. Packaging

  • Drop DISTRO variable in Makefile - #35971

6.5. Smart Proxy

  • Invalid syntax for curl --time-cond - #36138

  • Smart proxy settings.yml.example does not mention JOURNAL as available log_file value - #35920

6.5.1. DNS

  • Windows DNSCMD no implicit conversion of nil into String again - #35979

Appendix A: Foreman Contributors

Adam Ruzicka, Alexander Olofsson, Bastian Schmidt, Ben Magistro, Bernhard Suttner, Chris Roberts, Dan R. K. Ports, Elkin Aguas, Eric D. Helms, Evgeni Golov, Ewoud Kohl van Wijngaarden, Hao Chang Yu, Jannis Warnat, Jeremy Lenz, Johann Grabmann, Joniel Pasqualetto, Joshua Hoblitt, Kamil Szubrycht, Karolina Malyjurkova, Leos Stejskal, Lucy Fu, Marcel Kuehlhorn, Marcel Kühlhorn, Marek Hulán, Maria Agaphontzev, Markus Bucher, Maximilian Herrmann, Nagoor Shaik, Nofar Alfassi, Oleh Fedorenko, Ondrej Ezr, Pat Riehecky, Patrick Brideau, Paul Donohue, Peter Koprda, Romain Tartière, Ron Lavi, Samir Jha, Sayan Das, Shim Shtein, Usman Sunyaev, William Dixon