1. Foreman 3.6 Release Notes

1.1. Headline Features

1.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.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.1.3. Foreman Ansible plug-in

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.

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.

1.2. Upgrade Warnings

1.3. Deprecations

1.3.1. Puppet 6 is EOL

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

2. Katello 4.8 Release Notes

2.1. Headline Features

2.1.1. Syncable format for Inter Server Synchronization

Complete export has been supported for syncable format export. The hammer content-export option is only available for full content exports. But the content data managed by Katello can be measured easily over 100GB even TB which makes it time consuming and not efficient for complete exports every time.

Katello 4.8 adds the ability to perform incremental content exports in syncable format. All three content-export options are available in syncable format. hammer content-export incremental version --format=syncable hammer content-export incremental library --format=syncable hammer content-export incremental repository --format=syncable The export rpm files are generated as hardlinks to the actual file on disk to avoid the 2X space we may need for regular importable exports.

2.1.2. Register hosts to multiple Content Views

Allow hosts to register to multiple content view environments using subscription-manager. A new feature in very early stages and you won’t see many changes in the UI yet. It requires subscription-manager 1.29.28 or later on EL8.

The feature is disabled by default. To turn it on, go to Administer > Settings > Content and set "Allow multiple content views" to Yes. For now, the feature will only work with subscription-manager register with a username and password. It will not work with activation keys or with global registration.

Run subscription-manager environments --list to see available environments. Run subscription-manager environments --list-enabled to see environments assigned to the host.

To register a host to multiple environments, run subscription-manager register --environments <environments>, replacing <environments> with a comma-separated list of environments. You must also use a username and password. Example: subscription-manager register --environments Library/cv1,dev/cv2 --username xxx --password xx --org Default_Organization.

The web UI will not reflect that the host is assigned to multiple environments. However, the host details Repository Sets tab will show repositories from the combined environments, even though the banner wording is incorrect. This is expected for now.

If you reassign a host’s content view from the web UI, it will no longer be assigned to multiple environments.

Turning off the "Allow multiple content views" setting will not affect hosts that are already registered.

2.1.3. Over 70 bug fixes.

3. Foreman 3.6.2

A full list of changes is available on Redmine

3.1. Foreman

3.1.1. Host registration

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

3.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

3.1.3. Packaging

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

3.1.4. Tests

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

3.2. Installer

3.2.1. foreman-installer script

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

3.3. Packaging

3.3.1. Debian/Ubuntu

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

4. Katello 4.8.4

A full list of changes is available on Redmine

4.1. Katello

4.1.1. Hosts

  • Error when autoprovision/provision for a discovered host - #36601

4.1.2. Web UI

5. Katello 4.8.3

A full list of changes is available on Redmine

5.1. Katello

5.1.1. Client/Agent

  • tasks Actions::Katello::BulkAgentAction without any sub-plans and stuck in running/pending - #36528

  • Add UI banners warning users about katello-agent removal - #36526

5.1.2. Foreman Proxy Content

  • Optimized capsule sync doesn’t sync recently published/promoted docker repositories - #36523

5.1.3. Hammer

  • hammer host info no longer shows content view and lifecycle environment - #36401

5.1.4. Hosts

  • undefined method `each' for #<Katello::ContentViewEnvironment when running hammer host subscription register - #36524

5.1.5. Inter Server Sync

  • hammer content import fails with undefined method `substitutor' for nil:NilClass during import content if product being imported is not covered by subscriptions on the manifest - #36521

5.1.6. Repositories

  • Upgrade to Katello 4.5 can fail if some on_demand repositories have checksum_type set - #36562

6. Katello 4.8.2

A full list of changes is available on Redmine

6.1. Katello

  • Failed to update host: undefined method `custom_content_labels' for #<Katello::ProductContentFinder> when turning on SCA - #36505

6.1.1. Content Views

  • Content View comparison - RPM packages search missing auto completion - #36516

6.1.2. Hosts

  • undefined method `content_view=' for #<Katello::Host::ContentFacet:0x00007fc530855ac8> - #36504

  • Editing a host results in an error "content_view_id and lifecycle_environment_id must be provided together" - #36498

  • "Host-Registered Content Hosts" Report gives error while generating - undefined method `nvra' for nil:NilClass - #36486

  • Can't add hostgroup to new host - #36462

  • hammer host update fails with "unknown attribute ‘content_view_id’ for Katello::Host::ContentFacet" when you pass a content view / LCE - #36440

  • Arch restriction label missing from Repository sets for repos without URL - #36430

6.1.3. Inter Server Sync

  • Unable to enable any repository in network sync - #36482

7. Katello 4.8.1

A full list of changes is available on Redmine

7.1. Katello

  • DB Migration fails because of missing Setting::Content - #36343

  • Enable tracer on host page (debian os) is always on - #36297

7.1.1. Content Views

  • Getting "NoMethodError undefined method `get_status' for nil:NilClass" when publishing content view - #36303

7.1.2. Hosts

  • Module streams on Content tab is missing for Rocky Linux 8.7 and 9 - #36338

7.1.3. Repositories

  • 20230119003859_ensure_repo_username_password_nil_not_blank.rb tries to update repo.upstream_username rather than repo.root.upstream_username - #36196

7.1.4. Subscriptions

  • Switching on SCA should not give hosts access to new custom repositories - #36301

8. Foreman 3.6.1

A full list of changes is available on Redmine

8.1. Installer

8.1.1. foreman-installer script

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

8.2. Smart Proxy

8.2.1. TFTP

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

9. 4.8.0 Phoenix (2023-03-28)

9.1. Features

9.1.1. Hosts

  • Add support for Erratum release date in Host - Applied Errata report template (#36049, d1b4c553)

9.1.2. Inter Server Sync

9.1.3. Content Views

  • Backend work: As a user I want to be able to assign multiple content views on a content host (#35580, c33da7a3)

9.1.4. Tests

9.1.5. Other

  • Allow installed_debs method (#35886, e630a6e2)

  • Last checkin and Registered columns should show up as empty if there’s no data (#35854, 3920e5a7)

9.2. Bug Fixes

9.2.1. Inter Server Sync

  • Importing incremental content not recreating metadata properly (#36164, df3b102e)

  • Need a better warning message for empty incremental export (#36146, dde55659)

9.2.2. Repositories

  • Need to update Recommended Repositories page with Satellite 6.13 repos (#36158, 48694791)

  • RHEL 9 appstream and baseos kickstart repositories not showing as recommended repositories (#36151, 66d75338)

  • Wrong rake task name in Rails log warning (#36147, 6547094f)

  • hammer repository reclaim-space raises "undefined local variable or method `repositories'" exception (#36142, 6e8274f2)

  • mirror_on_sync is deprecated in favor of mirroring_policy and should be removed in Katello (#36140, b0cafa10)

  • Saving RHUI alternate content source with a malformed Base URL is possible (#36074, 09f69b74)

  • Add some validation for name in Simplified ACS creation via hammer (#36041, 3bdb5ae8)

  • Add validations for Simplified ACS update via hammer (#36038, fdb31151)

  • Upgrade to 4.5 may fail to apply RemoveDrpmFromIgnorableContent migration if erratum is also a ignorable content type for any repo (#35864, 98fe46f4)

9.2.3. Container

  • Pulp headers are overwritten incorrectly during manifest pull (#36157, 501940dc)

  • The "pulp_docker_registry_port" settings is still exposed and set to port 5000 (#35783, b31ae26d)

9.2.4. Hosts

  • Can’t update host with Katello plugin installed (#36137, 0599f930)

  • Host cloning is broken (#36064, 870746dc)

  • Package and Errata actions on content hosts selected using the "select all hosts" option fails. (#35947, 8001e4c3)

  • Repository sets banner shows "" for content view and lifecycle environment (#35878, f07230ec)

  • Registration fails in method: host_setup_extension (#35874, db5a820f)

  • Overriding 25 repo sets to disabled causes error (#35818, 7592f61e)

  • Repository sets not reflecting SCA status on direct load (#35604, 6e500def)

  • Errata tooltip not pluralized (#35046, 5c4b1ef7)

9.2.5. Errata Management

  • Improve wording of errata_status_installable setting (#36124, 1f427adf)

  • Errata search filtered with ID does not work in Web UI (#35752, c51a6897)

  • Improve empty state design when a host has applicable errata but no installable errata (#35707, 53b2a567)

  • Email notification shows incorrect new errata after syncing an Epel repository (#35191, a5e9405a)

9.2.6. Foreman Proxy Content

  • Navigating to an external proxy details displays error "Pulp plugin missing for synchronizable content types: . Repositories containing these content types will not be synced." for few seconds (#36122, 35fcf95e)

  • delete orphans task does not remove pulp3 remotes from capsules when removing repositories (#35965, 9e6cab22)

  • Inspecting an image with skopeo no longer works on smart proxies (#35801, 19370a11)

  • Python content isn’t sychronized to smart proxies (#35091, e1a6974c)

9.2.7. Alternate Content Sources

  • Bulk select/deselect does not work properly on paginated ACS page (#36103, 8cb8f277)

  • ForeignKeyViolation on ACS create when invalid --ssl-* argument is provided (#36051, 19b4a6b6)

  • Add validations for RHUI ACS create and update (#36042, b4340d54)

9.2.8. Hammer

9.2.9. Web UI

9.2.10. Tests

  • Re-enable test_sync_skipped_srpms (#36053, 35fbe9b7)

  • Intermittent docker content type not found error in Actions::Katello::Repository::UploadDockerTest (#35735, 0047bb6d)

  • Uncomment upload tests that were commented while waiting on updated pulp bindings that upgrade Faraday to 1.0.1 (#35395, f0f54d67)

  • Comment upload tests while waiting on updated pulp bindings that upgrade Faraday to 1.0.1 (#35394, 53454eb7)

9.2.11. Content Views

9.2.12. Subscriptions

  • Deb repository using multiple archs is not provided to managed host (#35968, 8d6c1a80)

  • 'Import a Manifest' button displays when a blank manifest is imported (#35963, 04a24695)

  • Registration error: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "katello_available_module_streams_name_stream_context" (#35936, d4c72d2c)

  • consumer uuid differing between candlepin and katello (#35381, a3b1f51e)

9.2.13. API

  • Creating an organization through API does not propagate encountered errors properly (#35954, 94ed9749)

9.2.14. Host Collections

  • minor, help text for HC host list when empty speaks of HG, not HC (#35937, 6b2b86d9)

9.2.15. Tooling

9.2.16. Client/Agent

  • katello-agent use upgrade instead of upgrade-minimal when applying errata in dnf (#35759, 046a17d3)

9.2.17. Other

  • undefined method `[]' for nil:NilClass" or undefined method `last' for nil:NilClass" when generating Host - applied errata report (#36182, 4b34cada)

  • NoMethodError when reassigning hosts while deleting a content view version (#36043, 96c23ce7)

  • Subscription can’t be blank, A Pool and its Subscription cannot belong to different organizations (#36025, a52b58a0)

  • Migration error 'column settings.category does not exist' (#36007, 87ddaf17)

  • deleting of products after a content export ends up in a candlepin error (#35929, 4d2503ad)

  • Stop using #hosts with KTEnvironments (#35863, fa2e5488)

  • RABL templates shouldn’t rely on single_content_view being non-nil (#35857, 2e03fef9)

  • Improve empty state of repo sets with Limit to environment (#35232, a4e03e0a)

10. Foreman 3.6.0

A full list of changes is available on Redmine

10.1. Foreman

10.1.1. API

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

  • Unnecessary API calls for power column - #35908

10.1.2. Audit Log

  • Compatibility with audited 5.1.0 - #35893

10.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

10.1.4. Compute resources - VMware

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

10.1.5. Compute resources - libvirt

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

10.1.6. DB migrations

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

10.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

10.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

10.1.9. Facts

  • Support new Debian unstable OS facts - #35865

10.1.10. Host registration

  • Registration - Unregister host before CA change - #36071

10.1.11. Internationalization

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

10.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

10.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

10.1.14. Notifications

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

10.1.15. Packaging

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

  • Depend on RSS gem for Ruby 3 - #35462

10.1.16. Performance

  • Expose puma worker_timeout configuration option - #35641

10.1.17. PuppetCA

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

10.1.18. Rake tasks

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

10.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

10.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

10.1.22. Templates

  • host_puppet_environment ignores host param - #36153

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

10.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

10.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

10.2. Installer

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

10.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

10.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

10.3. Packaging

10.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

10.4. SELinux

10.4.1. Packaging

  • Drop DISTRO variable in Makefile - #35971

10.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

10.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

Appendix B: Katello Contributors

Adam Růžička, Bernhard Suttner, Chris Roberts, Evgeni Golov, Ewoud Kohl van Wijngaarden, Hao Chang Yu, Ian Ballou, Jeremy Lenz, Lukas Magauer, Leos Stejskal, Lucy Fu, Manisha15, MariaAga, Markus Bucher, Maxim, Nagoor Shaik, Partha Aji, Patrick C. F. Ernzer, Pavel Moravec, Peter Koprda, Quinn James, Quirin Pamp, Samir Jha, Sayan Das, William Bradford Clark