1. Headline features

1.1. User interface & experience

  • All Hosts Page Redesign - Continued modernization of the All Hosts page with enhanced functionality, including changing owner, location/organization, disassociating VMs, and other improvements.

1.2. Infrastructure & platform updates

  • NodeJS 22 Upgrade - Updated UI build stack to NodeJS 22, extending lifecycle support to April 2027

  • PatternFly 5 Migration - Modernization of UI components by upgrading our PatternFly 4 UI components to PatternFly 5.

1.3. Networking & connectivity

  • Dual-Stack IPv4/IPv6 Registration Support - Full support for client registration in dual-stack environments, enabling seamless registration over both IPv4 and IPv6 networks.

1.4. Documentation & tooling

  • Provisioning Documentation Improvements - Enhanced documentation for provisioning workflows and best practices.

1.5. Resource Quota plugin

If you use the Resource Quota plugin on Foreman 3.15, Foreman will automatically assign all existing hosts to the Unassigned resource quota during the upgrade to Foreman 3.16. For more information, see Limiting host resources in Administering Foreman.

2. Upgrade warnings

2.1. RHV/oVirt support removal

RHV/oVirt Support Completely Removed - Red Hat Virtualization (RHV) and oVirt compute resource support has been fully removed in Foreman 3.16.

  • Previous Deprecation: Feature was deprecated in Foreman 3.15

  • Impact: Users with RHV/oVirt compute resources will lose this functionality unless they install the new ForemanOvirt plugin

  • Alternative Solution: Install the new ForemanOvirt plugin to maintain oVirt functionality

  • Action Required: If using RHV compute resources, plan migration to alternative platforms or install the ForemanOvirt plugin before upgrading. Users who want to keep oVirt support must install the ForemanOvirt plugin before upgrading. Users who do not want oVirt support are advised to run foreman-rake ovirt:drop before upgrading.

3. Deprecations

3.1. UI component phase-outs

  • Legacy AngularJS Pages - Continued elimination of AngularJS-based UI components as part of All Hosts page redesign

4. Foreman 3.16.0

A full list of changes is available on Redmine

4.1. Foreman

  • Use GPG key for SLES during host registration - #38608

  • Settings UI fixes - #38606

  • remove react-ellipsis-with-tooltip in foreman - #38601

  • Update Foreman Dev Setup guide in developer docs - #38580

  • Host registration on Debian based systems fail because dpkg options are improperly formatted - #38554

  • Tooltip for "Specify Matchers" misleading - #38552

  • parameter for NTP server for Debian and ubuntu is ignored - #38551

  • Make the new host overview page default - #38543

  • Correctly set line breaks in reports - #38529

  • cloud-init passes users as a dict instead of a list - #38519

  • Update BookmarkForm + Modal to PF5 - #38475

  • Notification cleanup rake task fails - #38473

  • HTTP Proxy "test connection" ignores passwords - #38469

  • common/DocumentationLink deprecate - #38464

  • As a user I want to be able to disassociate multiple hosts - #38456

  • ISE when incorrect content-type used for organization creation through API - #38439

  • dont show select2 tooltips - #38435

  • Render template on host page doesn't respect safemode setting - #38417

  • Add ForemanSetContext to test_setup.js - #38394

  • Add @testing-library/user-event to devDependencies - #38393

  • GET request for /api/v2/hosts/:id/enc fails after adding a new interface to an existing host - #38391

  • Password from HTTP(S) proxy Setting is logged in plaintext to production.log - #38386

  • Remove oVirt / RHV integration - #38266

  • update SettingUpdateModal to pf4 -> update settings page to pf5 - #38255

  • update EditorModal to use pf5 - #38249

  • Packages wizard on new "All Hosts Page" removes host filter if hosts are re-sorted - #38216

  • New host overview page: Make Last Report a link to the report page - #37956

  • Hosts breadcrumb doesn't respect new host overview Setting - #37196

4.1.1. Authentication

  • When using foreman-rake command to reset the password, if the user is not a valid account, the same will be created with admin privileges - #38619

4.1.2. Compute resources - VMware

  • Getting "uninitialized constant Fog::Vsphere::Compute::ResourcePool" error - #38509

4.1.3. Compute resources - libvirt

  • image_exists? for Libvirt compute resource - #38535

4.1.4. Host creation

  • Host form - Selecting the image resets the volume type - #38511

  • Create Host Form - Improvements for templates resolve - #38423

  • Use the system's SSH instead of net/ssh for provisioning - #38361

4.1.5. Host registration

  • Host Registration - use --fail-with-body for curl - #38458

  • Add support for setting up container certs during global registration. - #38454

  • Host Registration Form - Permission denied - #38403

4.1.6. Internationalization

  • Update locales for 3.16 - #38643

4.1.7. Inventory

  • Host details kebab inconsistent ui - #38663

  • Properly translate host details status - #38575

  • As a user I want to be able to change the location and organization of multiple hosts - #38416

4.1.8. JavaScript stack

  • Update pf charts to Patternfly 5 - #38581

  • adding scalprum to shared webpack - #38570

  • pass args to plugin lint proccess - #38501

  • fail js plugins test process on error - #38500

  • Remove unused code in late_load.js - #38485

  • Support node22 - #38459

  • move css from vendor to foreman - #37904

  • Remove @theforeman/vendor - #37882

  • Use own lint instead of @theforeman/eslint-plugin-foreman - #37639

  • Test plugins from foreman core - #37637

  • remove "@theforeman/test" imports - #37636

  • Replace all PF3 components in AuditsList with PF5 components - #36200

4.1.9. Orchestration

  • Host Orchestration - Renderability checks for templates - #38422

4.1.10. Rails

  • Host form - Update of host without hostname fail in ugly error - #38622

4.1.11. Rake tasks

  • Command rake apipie:static raises an error - #38434

4.1.12. Settings

  • In setting value error, show error.errors.value instead of full_messages - #38661

  • settings error on url values - #38633

4.1.13. Templates

  • preseed network setup gateway differs between IPv4 and IPv6 - #38524

  • Add '/EFI/os/shimx64.efi/ paths to pxegrub2 chainload template - #38462

  • cloud-init template YAML is invalid if realm feature is enabled - #38442

4.1.14. Tests

  • fix FiltersForm.test.js - #38472

4.1.15. Unattended installations

  • Provisioning templates use host_enc macro to determine the realm - #38688

  • Kickstart default - kdump-options does not work - #38564

  • Support timesource --ntp-pool for kickstart - #38172

4.1.16. Users, roles and permissions

  • Users are not added to groups based on LDAP group membership - #9494

4.1.17. Web UI

  • If Login page footer text(login_text attribute in admin settings) is too lengthy white block appears and cuts off footer message - #38627

  • Inconsistent Collapse/Expand Behavior Caused by "Config Management" in Left Navigation - #38616

  • Error on build host modal open - #38563

  • As a user I want to be able to change the owner of multiple hosts - #38538

  • As a user I want to be able to see the virtual column on the new hosts UI - #38520

  • Only load Statuses which are "relevant" in Hosts Status Page - #38505

4.2. Installer

  • Configure Redis timeout for idle connections - #38553

  • Remove oVirt installer options - #38293

4.2.1. Foreman modules

  • Installer sets up deprecated ANSIBLE_COLLECTIONS_PATHS env var instead of ANSIBLE_COLLECTIONS_PATH - #38642

  • Support setting key-algorithm for DHCP - #38567

  • Redis isn't started before running db:migrate - #38517

4.2.2. foreman-installer script

  • Database reset fails on external DB when evr extension is present - #38533

  • Passing --certs-certs without --certs-update-server doesn't reset Apache and Foreman Proxy certs - #38516

  • Printing output in profile.d breaks local DB detection - #38492

4.3. Packaging

  • Add sshpass as a dependency - #38375

4.4. SELinux

  • Allow mounting postgres as socket to container - #38583

4.5. Smart Proxy

  • Send HSTS header to satisfy braindead "security" scanners - #38432

  • Smart Proxy Userdata API does not implement MAC-based endpoint - #38241

4.5.1. DHCP

  • Support setting key-algorithm for ISC DHCP - #36325

4.5.2. Hammer CLI

  • Update field documentation to reflect replaced_by translation #38427

4.5.3. Hammer CLI - Foreman

Appendix A: Foreman contributors

We’d like to thank the following people who contributed to the Foreman 3.16 release:

Adam Lazik, Adam Růžička, Alin Cociorvan, Arvind Jangir, Bastian Blank, Bastian Schmidt, Bernhard Suttner, Chris Roberts, Cole Higgins, Corporte Gadfly, David Ochner, Eric Helms, Evgeni Golov, Ewoud Kohl van Wijngaarden, Francesco Di Nucci, Frank Wall, Hao Yu, Ian Ballou, Jonathon Turel, Leos Stejskal, Lucy Fu, Lukas Jezek, Lukáš Hellebrandt, Macley, Maria Agaphontzev, Markus Bucher, Matt Darcy, Maximilian Kolb, Nofar Alfassi, Nomen Nescio, Odilon Sousa, Oleh Fedorenko, Ondřej Gajdušek, Pablo Fernández Rodríguez, Partha Aji, Pat Riehecky, Ruediger Pluem, Samir Jha, Shimon Shtein, Usman Sunyaev, Viliam Krizan

As well as all users who helped test releases, report bugs and provide feedback on the project.

Report issue