1. Headline Features

1.1. Foreman on Debian 11 (Bullseye)

It is now possible to run Foreman on Debian 11. Users are encouraged to upgrade.

2. Upgrade Warnings

2.1. require_ssl_smart_proxies setting dropped

The require_ssl_smart_proxies setting has been dropped and Foreman now behaves as if the value was true (the default). This means it’s no longer possible to use reverse DNS instead of client certificates over HTTPS connections. Upgrading users should ensure a valid Public Key Infrastructure (PKI) exists.

For more information see the RFC and PR.

3. Deprecations

3.1. Running Foreman on EL7

Foreman 3.4 will drop EL7 support. For fresh installations, it is advisable to install on EL8. Existing installations should start thinking about a migration plan.

Note that this support statement refers to running Foreman and Foreman Smart Proxy themselves on EL7. Managing EL7 hosts remains supported. See the RFC for more information.

3.2. Running Foreman on Debian 10

Now that Debian 11 is supported, Debian 10 support is deprecated and will be dropped with Foreman 3.4

Note that this support statement refers to running Foreman and Foreman Proxy themselves on Debian 10. Managing Debian 10 hosts remains supported. See the RFC for more information.

4. Foreman 3.2.1

A full list of changes is available via Redmine

4.1. Foreman

4.1.1. JavaScript stack

  • Adding the host parameters clears the values of the prior line - #34747

4.1.2. Reporting

  • Remove reports deprecation from develop and 3.2 - #34744

  • Prepare Foreman core for Host Reports migration - #34360

4.1.3. TFTP

  • Make the operatingsystem.bootfile usable in Jail - #34689

4.1.4. Host registration

  • The registration database migration could fail when the template is not available - #34661

4.1.5. Web Interface

  • Breadcrumb switcher doesnt work with Katello contentt work with Katello content - #34495

4.2. Installer

  • Installer does not restart foreman.service when changing Puma configuration - #34824

4.3. Packaging

4.3.1. Debian/Ubuntu

  • Updates oauth Gem installed by puppet-agent-oauth under Debian to a newer version (0.5.1 produces lots of warnings about URI.escape) - #34681

4.4. SELinux

4.4.1. Plugins

  • Syncing the git templates on RHEL8 raise SElinux errors - #34726

4.5. Smart Proxy

  • Set the MALLOC_ARENA_MAX variable to counter memory bloating in production environments - #34624

5. Foreman 3.2.0

A full list of changes is available via Redmine

5.1. Foreman

  • Add Safemode jail definition for ActiveSupport::TimeWithZone - #34571

  • Helper logging method how_long - #34091

5.1.1. Security

  • Settings defined by DSL are not properly encrypted - #34573

  • The login page exposes version of the foreman - #33417

5.1.2. Inventory

  • The Submit button on a host form redirects to an invalid page - #34572

5.1.3. Web Interface

  • Add pagelet mountpoints for hosts list table - #34543

  • Default variant prop is missing from the pagination component - #34410

  • Remove the experimental banner in new host page - #34293

  • Ignore URL query params when setting active tab - #34271

  • Add slot for rex dropdown in new host page - #34259

  • New host details link should be removed from hosts index page - #34254

  • Use the Patternfly 4 pagination - #34185

  • Use the new host page by default - #34166

  • Core cards in overview tab should be arrangeable - #34142

  • Hosts UI - UX Review - Spacing - #34129

  • New Host detail page - small screen cant see build modalt see build modal - #33955

  • New host detail page shows IP address over multiple lines - #33948

  • The new host page lacks an empty state - #33862

  • Delete the unused react_pagination_props - #33681

  • Host Detail Graphs VERY slow to load after upgrade to 3.0.0-rc1 - #33310

5.1.4. Templates

  • Ensure that the insights snippet is being called by honoring the value of host_registration_insights parameter - #34525

  • Allow puppet setup to be skipped even if you set a puppet master - #34388

  • Update examples for truthy? and falsy? macros - #34365

  • Associate redhat templates with CentOS_Stream OS name - #34302

  • Upgrade fails during db:seed with ActiveRecord::RecordNotDestroyed: Failed to destroy the record - #34299

  • The pxe_kernel_options are not handled in Preseed PXE templates - #34292

  • More Anaconda kernel boot parameters without inst.' prefix template changesinst. prefix template changes prefix template changes - #34265

  • Puppet aio detection is broken in Foreman 3.1 provisioning templates, PR#8899 is full of typos - #34214

  • Introduce is_true? & is_false? template helpers - #34213

  • Rename enable-puppetlabs-puppetX-repo to enable-puppetofficial-puppetX-repo - #34088

  • Rename Job Invocation template - #34068

  • Include Tower extra vars feature when calling the API callback - #33942

  • Add current date macro - #33907

  • Include Puppet 7 repository support in provisioning snippets - #32602

5.1.5. Users, Roles and Permissions

  • Infer of permission name for isolated namespace controllers doesnt work - #34506

  • The Mail enabled' setting cannot be switched with the hammer user command.Mail enabled setting cannot be switched with the hammer user command. setting cannot be switched with the hammer user command. - #34123

5.1.6. Compute resources - VMware

  • Latest Hardware version for VMware vSphere 7.0 U2 and U3 is not available - #34499

  • CentOS9 and RHEL9 Guest OS are missing - #34498

  • Unable to create compute profile for specific vmware compute resource - #30550

  • Cannot view Compute-Profiles from a specific Compute-Resource - #28155

5.1.7. Facts

  • Normalize fact parsers to use CentOS instead of centos - #34450

  • Identifying CentOS Stream as CentOS_Stream breaks in upgrades - #34409

  • Fix IPv6 support in rhsm fact facter - #34330

  • Add Oracle hypervisor virtual interface naming pattern to the ignore list - #34315

  • Improve the fact_values api performance when loading a large number of facts - #34160

  • Remove the deprecated Host#import_facts method - #34063

  • New OS created due to facts mismatch for operatingsystem for RHSM, Puppet and Ansible - #33981

  • Support ? for setting wildcards - #33775

  • Cloned viewer role cannot view facts - #33656

  • Support CentOS Stream 8 detection based on all facts - #33470

  • Use modern Facter 3 facts - #27906

5.1.8. Organizations and Locations

  • Organization context fails to change in web UI - #34416

5.1.9. API

  • Change example for --order - #34381

5.1.10. Plugin integration

  • Facets do not allow emptying their relations through mass assignment - #34375

  • GraphQL types touch database in migration rakes - #34366

  • Allow Site manager role to be extended from plugins - #34351

  • Allow specific permissions to be excluded from being added to default roles - #34329

  • Add medium_providers_registry instance method - #34002

  • Clean up the deprecated methods for foreman 3.2 - #33996

  • Enable Salt Autosign via Grains for Provisioning Template - #32919

5.1.11. Host creation

  • Host form redirect does not work for unmanaged host - #34371

  • Host form redirect relies on the primary interface being the first interface - #34300

  • Remove workaround for root_password encoding - #34289

  • Ubuntu Autoinstall support - #32632

5.1.12. Tests

  • Improve api/settings_controller test coverage - #34349

  • ParameterFilterTest accidentally modifies Mocha::Mock - #34064

  • Update minitest plugin for junit-XML generation - #26968

  • Update minitest to > 5.10 - #22110

5.1.13. Host registration

  • Insights snippet - remove connection test - #34340

  • Missing example for "Install packages" field - #34252

  • Grammatical errors with Insecure help text at Host Registration - #34250

  • Host facts are not uploaded to Foreman when host is registered with global registration - #34249

  • Fix bool params in global registration template - #34206

  • Preview of registration and host_init_config templates - #34198

  • Fix name & path to OS host_init_config template - #33979

5.1.14. Settings

  • The Setting defaults are never updated - #34323

  • Speed up settings index page - #33935

  • Drop the fix_db_cache setting - #33906

  • Deprecate the old setting definitions without "default_settings" - #33781

5.1.15. Network

  • Add `ip_include?\` method to IPAM::Base that uses `IPAddr#include?\` method - #34280

5.1.16. Smart Proxy

  • Drop require_ssl_smart_proxies setting - #34236

  • Do not warn on HTTP connection from Smart proxy - #34234

5.1.17. Audit Log

  • Recent audits card in new host page is missing username - #34223

5.1.18. Packaging

5.1.19. Rails

  • Require code from lib folder - #34165

  • Audit human class name is translated twice - #34151

  • Move services from lib/foreman to app/services/foreman - #34146

  • Move Foreman::Renderer from lib/ to app/services - #34139

  • Autoload ProxyAPI files from /app/services - #34138

  • Add initialization method to RbacRegistry - #34010

  • Add plugin after_initialize hook - #34009

  • Plugin and its rbac_support are using Role and Permission models too early - #34006

  • Drop the truncate_bytes method - #33992

  • Require /lib dependencies in initializers/foreman.rb - #33991

  • Delay Initialization of ApiPie that depends on Model classes - #33989

  • Hostmix to use class_methods - #33987

  • Move Callback classes to separate files - #33986

  • Move identification methods to ApplicationRecord - #33985

  • Remove custom update methods - #33984

  • Fix loading of Foreman::Telemetry in initializers - #33968

  • Move basic ActiveRecord::Base custom extensions to ApplicationRecord - #33967

  • Load Menu::Loader in to_prepare’to_prepare - #33964

  • Require Foreman::Util in initializers - #33957

  • Fix early load of ForemanInternal in initializer - #33950

  • Fix early load of plugin fact parsers - #33949

  • Postpone setting validations to to_prepare - #33892

  • Require foreman/gettext directly - #33890

  • Remove usage of content_tag_for & div_for helpers so we can drop record_tag_helper - #28571

  • Do not use string interpolation when composing SQL queries. - #23300

5.1.20. JavaScript stack

  • Use PF4 pagination as default - #34133

  • Use the FormattedMessage instead of a dangerouslySetInnerHTML - #33946

  • Allow 2 search with bookmark in one page - #33736

5.1.21. Monitoring

  • Report disallowed metric labels as "other" - #34122

  • The forget_status doesnt update the global host’s statet update the global hosts states state - #33882

5.1.22. Rake tasks

  • Remove legacy models:consolidate task - #34117

5.1.23. TFTP

  • Misspelled word in tooltip "Toggel" instead of "Toggle"

5.1.24. Internationalization

  • Strings with enter dont get extracted for translationt get extracted for translation - #34058

  • Drop translations for languages with low translation rate - #33920

5.1.25. Reporting

  • Importing puppet report via the API does not authorize - #34026

  • Report Template "Applicable Errata" fails for large numbers of Content Hosts - #29970

5.1.26. DB migrations

  • Clean up old data migrations from Foreman < 2.0 - #33909

5.1.27. Development tools

  • API Development Guidelines - #33865

  • Make ordering by id possible for more models - #33842

5.1.29. Host groups

  • Reprovisioning a host using new HostGroup does not inherit root password from the new HostGroup - #33811

5.1.30. Unattended installations

  • Ruby warning: URI.escape is obsolete after the host is provisioned - #33801

  • Add ct/fcct transpiler macro support - #31027

5.1.31. Authentication

  • Support ADFS-style JWTs - #33055

5.2. Installer

  • The katello-rhsm-consumer scripts subscription-manager version detection depends on subscription-manager rpm being installeds subscription-manager version detection depends on subscription-manager rpm being installed - #34406

  • The Installer does not restart foreman.service when changing puma configuration - #33973

  • Add iPXE bootstrap to the dhcpd.conf - #33549

5.2.1. foreman-installer script

  • Run the foreman-rake upgrade:run only conditionally - #34440

5.2.2. Foreman modules

  • Dynflow doesnt properly come back if the DB is unavailable for a brief period of timet properly come back if the DB is unavailable for a brief period of time - #34394

  • Create the Pulp group as system group - #34379

  • Enable the redis cache for pulp content server by default - #34325

  • [Custom Certs] - Failed to install the custom certs on Katello 4.3, works on 4.1 - #34317

  • Seed may not be triggered after migration - #34308

  • Support the KEEP_CHANGELOG_LIMIT option with pulpcore - #34298

  • Candlepin errors when using an encrypted key generated with genpkey or on a FIPS enabled machine - #34189

  • Katello 4.2 to 4.3 upgrade doesnt trigger apipie:cache:index, breaking some new hammer commandst trigger apipie:cache:index, breaking some new hammer commands - #34161

  • The foreman-proxy-content-enable-ostree true doesnt refresh the proxy features, leading to ostree being unavailablet refresh the proxy features, leading to ostree being unavailable - #34154

  • Puppet module puppet-foreman missing parameter for :trusted_proxies: - #34089

  • Set permissions on Candlepin config files to be owned by root:tomcat - #30366

5.3. Smart Proxy

  • Bump version to 3.2.0-develop - #33915

5.3.1. DHCP

  • DHCP error with wrong number of arguments for validate_supported_address - #34359

  • Improve expired lease parser tests - #33772

5.3.2. DNS

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

5.3.3. Plugins

  • Add an enum plugin validator - #34164

  • The validate_presence and validate_readable with predicate broken - #34141

Appendix A: Foreman Contributors