1. Foreman 3.7 Release Notes

1.1. Headline Features

1.1.1. Plugin translation infrastructure in frontend

With this release it’s possible for plugins to use translations in Javascript. Since the front end is largely moving towards Javascript, this is a great improvement for who care about an internationalized application. Note that having the infrastructure in place doesn’t guarantee everything is translated.

1.1.2. Puma 6

Puma has been updated to version 6, featuring improved performance compared to Puma 5.

1.2. Upgrade Warnings

After a deprecation in Foreman 3.6, Puppet 6 is no longer supported. The installer will require at least 7.0.0. On the Smart Proxy side no changes have been made, but it is still recommended to upgrade. Note that Puppet 6 is end of life and no longer receives security updates.

2. Katello 4.9 Release Notes

2.1. Headline Features

2.1.1. Custom repository sets switching to disabled-by-default

Custom products are now disabled by default in Katello. During the upgrade to Katello 4.9, content overrides will be automatically added so that existing hosts and activation keys have access to the same repositories before and after the upgrade. Going forward, newly created custom products will be disabled by default.

2.1.2. Immediate repository changes on hosts after changing content view or lifecycle environment

When changing a host’s content view environment, you can now update the host’s package profile via REX by checking a checkbox. This will allow the host’s errata and package info to update immediately.

2.1.3. Standardized search bars across UI React pages

The Search input (including Bookmarks) in Katello on React pages has been standardized and now matches the one in Foreman.

2.1.4. Localization improvements

More text in the UI and Hammer should now be translated thanks to updates to translation infrastructure across Foreman plugins.

2.1.5. Content view publish recommendations

Katello now tells users if a content view publish is unnecessary based on changes to repositories and filters. Likewise, new icons in the UI will communicate if a new version should be published to receive new updates.

2.1.6. Content view version filtering history

Content view versions that had filters applied will receive a new flag in the UI. Filters that were applied to previous content view versions are now available to fetch from the API and Hammer.

2.1.7. Incremental update dependency solving option in UI

Dependency solving during incremental updates via the UI is now optional. A checkbox with some information will allow the user to disable it for a potential publishing speed increase.

2.1.8. Repository sets are now filterable by type

You can now filter Repository sets by repository type - Red Hat or Custom.

2.2. Deprecations

2.2.1. Katello Agent

katello-agent will be removed in Katello 4.10.

3. Foreman 3.7.0

A full list of changes is available on Redmine

3.1. Foreman

  • "Add parameter" button's data-ouia-component-id is changing - #36481

3.1.1. Authentication

  • Foreman caps ldap auth source password length at 60 - #36309

3.1.2. DB migrations

  • Upgrade fails on db:seed step with error GraphQL::InvalidNameError: Names must match /^[_a-zA-Z][_a-zA-Z0-9]\*$/ but 'RHEL OpenStack Platform' does not - #36371

3.1.3. Development tools

  • Document ansible-runner-env path config in Ansible development docs - #36339

3.1.4. Facts

  • Drop the socket fact chart - #36058

3.1.5. Host groups

  • Changing OS in hostgroup edit form reset partition table and media even when it is not necessary - #36280

3.1.6. Host registration

  • Register Host contains an invalid field error on user's arrival to the form - #36312

  • Register Host page contains * on non-mandatory fields - #36307

3.1.7. Internationalization

  • Generate locale js files as pretty for smaller diffs on updates - #36419

  • Translated strings are not loaded for plugins into the browser, leading to react-based frontend not having translations - #36330

  • Reduce number of strings to translate - #36321

  • Setting descriptions are not translated - #36088

3.1.8. Inventory

  • Legacy Hosts UI loaded when you navigate from the Host's VMRC Console button - #36450

  • show "not available" for Owner type in host details - #36292

  • 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.9. JavaScript stack

  • Move JS scripts to the layout's Body - #36342

  • Allow to pass custom error handler for submitForm - #36232

  • Replace the PF3 Spinner in common/LoadingPage with a PF4 one - #36199

3.1.10. Packaging

  • Allow apipie-rails 0.9/1.x - #36375

  • Upgrade Puma to 6.x - #36357

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

  • allow newer prometheus-client gem versions - #36262

3.1.11. Parameters

  • Have a fixed-width font (Monospaced) for variables that need correct indentation - #36366

3.1.12. Plugin integration

  • Make translation domain registration part of plugin dsl - #36331

3.1.13. Reporting

  • Host installed packages report includes YAML document separator in CSV - #36408

  • Add installable errata to report templates - #36228

  • Include erratum issued date in Hosts Applied report template - #36190

  • Passing invalid value to infrasturcture_facet search key leads to PG::InvalidTextRepresentation error - #36394

  • Searching hosts should be possible by PXE loader - #35846

3.1.15. Security

  • User without view_provisioning_templates permission is able to see the rendered template - #36097

3.1.16. Settings

  • Missing Tooltip in EditorNavbar - #36192

  • Input field for "Trusted hosts" rejects multiple values - #36017

3.1.17. Templates

  • Replace old buttons with PF4 buttons in template editor - #36050

3.1.18. Unattended installations

  • Ubuntu installs do not enable upgrade repos by default anymore - #36229

  • iPXE provisioning template for Ubuntu autoinstall - #36180

  • Add parameter to install additional packages during kickstart/autoyast - #36177

  • Expired token should return 401 instead of 412 - #35068

3.1.19. VM management

  • Can't query plugin CRs via GraphQL - #36370

3.2. Installer

  • Sunsetting foreman_column_view because functionality being integrated in Foreman itself - #36377

  • Drop Puppet 6 support - #36345

  • Install Foreman Proxmox plugin using foreman-installer - #36319

3.2.1. Foreman modules

  • configure pulpcore-api with --max-requests to recycle workers before they leak too much memory - #36438

  • configure pulpcore gunicorn with --preload - #36437

  • Update documentation for change from puppet master to server - #35933

3.2.2. foreman-installer script

  • Installer --reset-data fails on an external DB setup - #36238

3.3. Packaging

3.3.1. Debian/Ubuntu

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

3.3.2. RPMs

  • Depend on grub2-efi-x64 in foreman_bootdisk - #36223

3.4. Smart Proxy

  • Logging to journal causes duplicate log entries to appear - #35921

3.4.1. TFTP

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

3.4.2. Templates

  • Return Foreman's API status code instead of 500 for proxies requests - #36243

4. Katello 4.9.0

A full list of changes is available on Redmine

4.1. Katello

  • Use plugin dsl for gettext registration - #36378

  • ACS delete via API returns empty response - #36346

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

  • Calculate needs_publish for composite content views based on component CV needs_publish - #36333

  • Bookmarks button for search in content -> subscriptions is missing - #36324

  • Create an ESlint rule to enforce OUIA IDs - #36323

  • Ensure valid needs_published for old records and CVs with deleted audit records. - #36320

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

  • Make the EventDeamon runner safer to run - #36277

  • Hosts should upload package profile after content view / lifecycle environment change - #36256

  • undefined method \`[]\' for nil:NilClass" or undefined method \`last\' for nil:NilClass" when generating Host - applied errata report - #36182

  • Content -> Errata does not display the year for the dates listed under column "Updated" - #36156

4.1.1. API

  • hammer does not show the how many times the activation key still can be used, also does not show the content host associated with the key - #36237

4.1.2. Alternate Content Sources

  • ACS page shows loading spinner forever after bulk removing ACSs - #36202

  • Simplified ACS products are not removed if the last repository in the product of th ACS's type has its URL removed - #35358

4.1.3. Client/Agent

  • Update katello-agent deprecation warning to show specific removal version - #36429

4.1.4. Container

  • Pulp headers are overwritten incorrectly during manifest pull - #36157

  • Docker tags, manifests, and manifest lists aren't displaying properly - #35710

4.1.5. Content Credentials

  • SSL cert content credential reported on ACS but not SSL key - #35976

4.1.6. Content Views

  • Set needs_publish to true for versions published with a failed task - #36410

  • Needs_publish icon doesn't refresh when publish wizard is closed with task running - #36402

  • Update UI to reflect needs_publish disabled flag for CVs with audits cleaned up - #36397

  • Add filters_applied? to cv version API. - #36322

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

  • Incremental update of the content view takes long time to complete - #36302

  • Missing repository name (image name) in Container tags CVv comparison - #36290

  • Hidden CV version number in CVv comparison - #36289

  • Update UI to reflect needs_publish on CV - #36270

  • Update API, publish action and rabl with "needs_publish" from content view - #36269

  • Add audit to filter and filter rules changes that need a publish of content view - #36268

  • Add audit to repository changes that need a publish of content view - #36267

  • Create a new applied_filters field in CV version table and store filters at time of publish in Human readable format. - #36251

  • Add a link to filters in the review page of CV publish - #36250

  • Content view dropdown should be visible but disabled until you select an environment - #36184

  • Cannot force delete repositories that are included in export content view versions - #36123

4.1.7. Errata Management

  • Improve errata installation templates - #36075

  • "Installable Errata" in report template - #30664

4.1.8. Hosts

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

  • Should not be able to assign LE on the client profile which is not synced on the capsule server - #36316

  • Can't update host with Katello plugin installed - #36137

  • Package upgradable versions are not set correctly based on architecture - #36100

  • Host cloning is broken - #36064

  • Setting a Content Source is not persistent - #35834

  • \'System purpose\' modal doesn't reset after switching hosts with switcher - #35324

  • Global registration form needs call-to-action link when there are no activation keys created - #35310

4.1.9. Inter Server Sync

  • Importing incremental content not recreating metadata properly - #36164

4.1.10. Localization

  • Update webpack translations and edit mo-files command to ignore .gitignore - #36409

  • migrate transifex configuration - #36335

4.1.11. Repositories

  • Can't remove GPG and SSL Keys from existing Product using the API - #36497

  • Make metadata_expire field optional - #36435

  • useless redirect when fetching pulp3 status - #36425

  • Bring back the option to Republish Repository\CV Version metadata in web UI - #36417

  • Add ability to skip syncing treeinfo files - #36411

  • Add metadata expire option for custom repo to UI and hammer - #36373

  • Container images Repository Discovery against v2-only API always reports "No discovered repositories" - #36362

  • [RFE] Allow updating metadata_expire for custom repositories - #36352

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

  • ACS Products in details should present a better empty view rather than blank. - #36176

  • Update ssl cert error message for ACS to include "Simplified" - #36174

  • Need to update Recommended Repositories page with Satellite 6.13 repos - #36158

  • use-http-proxy switch does not work properly - #36102

  • Add an easy way to enable/disable all custom repos on activation keys - #35722

4.1.12. Subscriptions

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

  • Test Candlepin 4.3.1 and tag to nightly - #36287

  • Add simple-content-access param to organization update command - #36197

  • Add an easy way to enable/disable all custom repos on a host - #36178

  • Custom products should be disabled by default - #36120

4.1.13. Tests

  • Re-record VCR cassettes once artifact structure is reverted in pulp_rpm 3.19 - #36205

4.1.14. Tooling

  • Sync redhat-uep.pem with subscription-manager-rhsm-certificates - #36326

  • Use Node 14 for katello CI - #36285

  • Using pulp with S3-storage throws exception on smartproxy overview-page - #36094

4.1.15. Web UI

  • Hostgroup edit form does not refresh operating system on LCE change if there is only 1 hostgroup - #36278

  • Clear search link doesn't work in any tables except maybe Host details - #36220

  • Refine empty states for CV UI - #36204

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

  • Change default status of shown repositories in content view - #36035

  • move system statuses from deface to react - #26434

Appendix A: Foreman Contributors

We’d like to thank the following people who contributed to the Foreman {{page.version}} release:

Adam Ruzicka, Alex Fisher, Amit Upadhye, Anthony Somerset, Bastian Schmidt, Bernhard Suttner, Chris Roberts, Christian Ruppert, Dirk Götz, Dirk Heinrichs, Dyrkon, Eric D. Helms, Evgeni Golov, Ewoud Kohl van Wijngaarden, Frank Adaemmer, Ian Ballou, Jeremy Lenz, Jonas Trüstedt, Kamil Szubrycht, Karolina Malyjurkova, Leos Stejskal, Lior Keren, Lucy Fu, Lukáš Zapletal, Manuel Laug, Marcel Kühlhorn, Marek Hulán, Maria Agaphontzev, Matt Darcy, Matěj Mudra, Nofar Alfassi, Oleh Fedorenko, Partha Aji, Pat Riehecky, Pavel Moravec, Peter Koprda, Quirin Pamp, Ron Lavi, Samir Jha, Sayan Das, Shim Shtein, William Clark, benjamin-robertson, kobybr, timdeluxe, Štefan Németh

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

Appendix B: Katello Contributors

Adam Ruzicka Amir Fefer Bernhard Suttner Chris Roberts Evgeni Golov Ewoud Kohl van Wijngaarden Hao Yu Ian Ballou Jeremy Lenz Karolína Małyjurková Lucy Fu Partha Aji Quinn James William Clark Markus Bucher stbergmann Trevor Allison