1. Upgrade Warnings

1.1. Running Foreman on EL7

EL7 support is dropped with Foreman 3.4. Users are advised to upgrade to EL8.

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.

1.2. Running Foreman on Debian 10

Debian 10 support is dropped with Foreman 3.4. Users are advised to upgrade to Debian 11.

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.

1.3. Running Foreman on Ruby 2.5

With dropping the support of Debian 10 deployments in Foreman 3.2 (and the removal of support in 3.4), there is no supported platform with Ruby 2.5 anymore. Therefore running Foreman on Ruby 2.5 is dropped in Foreman 3.4. Please switch to Ruby 2.7.

2. Foreman 3.4.1

A full list of changes is available on Redmine

2.1. Foreman

2.1.1. Unattended installations

  • Change puppetlabs_repo snippet to reference puppet-release files from repo root directory - #35466

  • RHEL 9 provisioned host goes into emergency mode after initial reboot - #35331

2.1.2. Compute resources - VMware

  • hammer cannot use the cluster name or id as valid input when clusters are residing inside folders and fails with error fog not found - #35438

2.1.3. Organizations and Locations

  • Taxonomies are being set during extlogin too early, leading to user's default taxonomies being ignored - #34949

2.2. Installer

2.2.1. foreman-installer script

  • Set ansible-runner repository management to false for Debian - #35553

2.2.2. External modules

  • SSO feature settings are not getting enabled and fails with HTTPD CONF issue - #35524

2.3. Packaging

2.3.1. RPMs

  • katello-change-hostname uses removed --disable-system-checks - #35756

2.4. Smart Proxy

2.4.1. Packaging

  • Declare compatible versions of Sinatra - #35507

3. Foreman 3.4.0

A full list of changes is available via Redmine

3.1. Foreman

  • Deprecated use of ERB.new with positional arguments - #35298

  • Extension to inject global http proxy into net/http requests does not set the proxy correctly - #35014

  • Turn off apipie_dsl cache in production - #34978

  • Broken inline help for validator type for puppet/ansible variables - #34971

3.1.1. Templates

  • Restart yggdrasil from kptm if it is already running - #35472

  • host_puppet_\* template macros ignores host_param - #35306

  • SLES 15 SP4 needs changes in the provisioning templates for deployments to work correctly - #35239

  • Permit puppet settings when puppet-plugins are not loaded - #35187

  • Rocky Linux UEFI grub2 chainloading is broken - #35182

  • Expose foreman short version as a macro to be used in templates - #35174

  • Puppet enablement flags are inconsistent - #35066

  • ks= kernel parameter in Kickstart default iPXE causes RHEL9 Anaconda failure to start - #34975

  • Allow setting up rex pull during provisioning and registration - #34969

  • Ubuntu Autoinstall PXELinux template does not reference Smart Proxy correctly - #34941

  • Ubuntu Autoinstall netplan template fails on network identifier - #34718

  • Update grub2 chainboot templates for scsi - #34702

  • Ubuntu Autoinstall template doesnt create root usert create root user - #34700

  • Job report template enhancements - #34396

  • air gapped kickstart are slow down by impossible subscription-manager installation - #33565

  • Expose previous application record revision through safemode - #32881

  • Add some extra metadata to the default kickstart - #32612

3.1.2. Tests

  • Update show_me_the_cookies to 6.x - #35371

  • minitest raises deprecation warnings about global use - #35301

  • Redundant mocha/setup in bmc_test.rb - #35299

  • Use assert_equal in rendered template snapshots - #35196

  • friendly_id gem version 5.4.0 contains backward-incompatible change - #30659

3.1.3. Web Interface

  • Make columns on host index page selectable - #35361

  • Copy to clipboard react component should allow copy icon - #35047

  • Overview tab - Correct card order on host detail page - #35001

  • long breadcrumb switcher is out of view - #34998

  • Models index page does 3 same API requests - #34987

  • New host details - Move expansion carat to right side for Details tab cards - #34961

  • update screenshots in readme file - #26853

3.1.4. Compute resources

  • Can’t assign different networks on 2+ NICs with vNIC profiles selected - #35346

  • Allow newer net-ssh version - #35264

3.1.5. Rails

  • Setting kwargs are ambigous in validation - #35293

  • Allow symbols in YAML columns - #35210

  • ApplicationRecord.<=> undefined method name’name - #35069

  • Allow rabl 0.15.0 - #34939

  • Switch Rails version to 6.1 - #34526

  • Remove usage of Class level methods scope inheritance - #29483

3.1.6. Settings

  • Ignore calico interfaces from Foreman - #35289

  • Refactor config rake to use Setting DSL - #35013

  • Fix the SettingValueException error message - #34921

  • Stop creating settings in the DB - #34305

  • root_pass setting does not enforce minimum length of 8 characters as the host and hostgroups forms do - #32925

3.1.7. Development tools

  • Add debugging with pry to the development setup guide - #35288

  • Use Ruby 2.7 for Rubocop GitHub Action - #35179

  • Adding a development installation guide for Foreman - #35160

  • Tests are broken after rack-test upgrade to 2.0.0+ - #35146

3.1.8. Host registration

  • Install katello-host-tools and tracer during host registration - #35280

  • SLES support for host registration - #35279

3.1.9. Inventory

  • Make columns on host index page selectable - #35274

  • Hide reports "Origin" column when table is already filtered by origin - #35126

  • Host’s power status ping is limited to three seconds - #35083

3.1.10. Compute resources - GCE

  • Pin faraday to version 1.x - #35244

  • Update fog-google to a Ruby 3 compatible version - #32686

3.1.11. API

  • Add options for table preferences to the API - #35212

3.1.12. Host creation

  • Bulk rebuild hosts can not reset the build token - #35203

  • Ubuntu 20.04.3 new installation media path - #34942

  • Ubuntu Autoinstall hostname is not set correctly before finish template execution - #34908

  • as a user, I would like to create a new host from the hostgroup page - #9770

3.1.13. JavaScript stack

  • Failing integration tests - #35173

  • Wrong search props with new TableIndexPage - #35072

  • Details tab - Add Tracer to System properties' cardSystem properties card card - #35017

  • Clean up MountingService - #34881

  • remove pf3 bookmarks - #34791

3.1.14. Host groups

  • Move hostgroups dropdown actions to an extendable helper - #35167

3.1.15. Unattended installations

  • Add installation medium for Stream 9 - #35151

  • GPG key import should use https - #35135

  • userdata controller should be able to look up host by MAC address - #34887

3.1.16. Audit Log

  • Audit page shows "auditable id / Host2" for "Host1" but Host2 does not exist or deleted from the all hosts - #35132

3.1.17. TFTP

  • Migrate discovery and bootdisk templates to Foreman - #35127

3.1.18. Internationalization

  • Add Georgian (ka), Polish (pl) and Catalan (ca) langauges as those are having more than 40% translation rate - #35098

  • 'No matches found' text is untranslated in search bar - #32476

3.1.19. Compute resources - libvirt

  • VM creation is broken with libvirt >= 8.0.0 due to VNC password length - #35035

3.1.20. Notifications

  • Scheduled job "Create RSS notifications" does not use proxy - #35015

  • Drop the notification for hosts without an owner - #34948

3.1.21. Smart Proxy

  • Smart Proxy upgrade/install fails due to proxy configuration in 'HTTP(S) proxy' in settings - #34996

3.1.22. Database

  • "ERROR: relation "application_records" does not exist" when using models inside migrations - #34994

  • Remove updated_at from taxable_taxonomies table - #33672

  • [BUG] The != and ~ search params does not work with os_minor parameter in Satellite 6.9 - #34989

3.1.24. Monitoring

  • new host details Details tab - Add Recent communication' cardRecent communication card card - #34981

3.1.25. Reporting

  • don’t re-evaluate TemplateInputs on every loop iteration - #34938

3.1.26. Facts

  • Details tab - System properties card updates - #34901

3.1.27. Rake tasks

  • foreman-rake permissions:reset should show a warning that it’s required to manually update the password in 'foreman.yml' - #31966

3.1.28. Organizations and Locations

  • It is possible to create taxonomies named 'Any Organization' and 'Any Location' - #28810

3.1.29. Users, Roles and Permissions

  • Users email is not mandatory on creation but it is on update - #4007

3.2. Installer

  • Drop host reports plugin - #35440

  • /etc/pki/katello/certs/katello-server-ca.crt deployed with too strict permissions - #35335

  • Move puppet certs exist hook to hooks/ - #35208

  • Remove `--disable-system-checks\` option - #35149

  • Drop umask check from Katello hooks - #35138

  • Introduce a development tuning profile - #35134

  • Remove VM overcommit hook - #35133

  • Starting or Restarting foreman.socket will raise a harmless "TCP_NODELAY failed: Operation not supported" error in Red Hat Satellite 6.9/6.10/6.11

  • Drop use of pulp_client certificates - #35005

  • Drop apipie_dsl:cache generation - #34977

  • Option --certs-regenerate is stored and thus causes certificate regeneration to happen every run - #34875

  • Missing smart-proxy-salt parameters in foreman-proxy scenario - #31502

3.2.1. Foreman modules

  • Insights client traffic through a Satellite 6.11 Capsule fails - #35278

  • Autoindexing on /pub is broken because apache mod_autoindex is not loaded - #35227

  • Allow configuring cockpit with multiple origins through satellite-installer - #34943

3.2.2. External modules

  • cache-enabled setting for proxy content module isn’t migrated to 'true' properly - #35157

3.2.3. foreman-installer script

  • Capsule certs regeneration fails with an error if the organization has a `\` in the name\` in the name - #34906

3.3. Packaging

  • Sendmail package not present on RHEL8 and needs manual configuration - #35461

  • Leapp upgrade requires foreman-selinux and katello-selinux to be reinstalled - #35198

  • Package foreman-maintain for Debian - #35139

  • Have a foreman-release package for Debian releases - #35113

  • satellite-change-hostname on capsule runs deprecated capsule-installer - #34896

3.3.1. Debian/Ubuntu

  • Have the foreman-release.deb rpm symlinked to latest version - #35349

  • Update sinatra to 2.2.1 to match rack-protection in core - #35258

  • Remove postinst script duplication across OS packages - #7988

3.3.2. RPMs

  • Katello cron job needed to run the alternate content source refresh rake task on a schedule - #34898

3.4. Smart Proxy

3.4.1. DNS

  • dns_dnscmd is missing a require 'timeout' statement - #35384

  • dns_dnscmd_main uses timeout as a global method - #35183

3.4.2. Tests

  • BmcTest requires ipmitool to be installed - #35185

3.4.3. PuppetCA

  • Drop puppetca_puppet_cert provider - #35184

Appendix A: Foreman Contributors

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

Adam Ruzicka, Amit Upadhye, Andrew Teixeira, Antoine Beaupré, Bastian Schmidt, Bernhard Suttner, Chris Roberts, Dirk Götz, Eric D. Helms, Evgeni Golov, Ewoud Kohl van Wijngaarden, Garret Rumohr, Gordon Bleux, Jeremy Lenz, John Mitsch, Jonathon Turel, Justin Sherrill, Kenyon Ralph, Leos Stejskal, Lucy Fu, Lukáš Zapletal, Marcel Kühlhorn, Marek Hulán, Maria Agaphontzev, Markus Bucher, Matěj Mudra, Melanie Corr, Nofar Alfassi, Oleh Fedorenko, Ondřej Ezr, Ondřej Pražák, Pat Riehecky, Patrick Creech, Peter Koprda, Rahul Bajaj, Robert Frank, Romuald Conty, Ron Lavi, Shimon Shtein, Shira Maximov, Tilman Kranz, Tim Meusel, Tomer Brisker, William Clark, Yifat Makias, naveen, pandrieux

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