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

A full list of changes is available on Redmine

3.1. Foreman

  • Wrong initrd extension for preseed_default_ipxe - #36847

3.1.1. Host groups

  • 500 error when loading Hostgroups page for Ansible Roles Manager user - #36703

3.1.2. Host registration

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

3.1.3. JavaScript stack

  • "Scrollbar test exception: TypeError" when loading any page - #36093

3.1.4. Reporting

  • "Applicable errata" and "registered content hosts" reports syntax highlighting broken + applicable errata name needs changing - #36587

3.1.5. Tests

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

  • Add missing ouia-ids to all pf4 components - #36470

3.2. Installer

3.2.1. foreman-installer script

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

4. Katello 4.9.2

A full list of changes is available on Redmine

4.1. Katello

4.1.1. Alternate Content Sources

  • Custom ACS path help text is missing file:// - #36631

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

4.1.3. Content Views

  • undefined method '#single_content_view' for Katello::Host::ContentFacet::Jail (Katello::Host::ContentFacet) (Safemode::NoMethodError) - #36684

  • Re-synchronizing the repository whose sync had failed earlier, the Content View does not display new upgradable packages that are available. - #36622

  • Filter gets applied to all the repository upon removal of repository for which the filter was created. - #36577

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

4.1.4. Errata Management

  • Allow installable errata count methods - #36506

4.1.5. Foreman Proxy Content

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

4.1.6. Hosts

  • Hammer accepts non-existent LCE in host update - #36667

  • Errors due to lack of safe navigation when you try to customize a discovered host - #36608

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

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

  • 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

  • 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

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

4.1.8. Repositories

  • hammer- allow user to run Verify Content Checksum, on container repositories. - #36625

  • Repository details page shouldn't say 'enabled by default' - #36593

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

  • Optimize DockerMetaTag query and CV version deletion to run a single invocation of the method. - #36500

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

4.1.9. Web UI

  • Update PermissionDenied snapshots - #36552

5. Katello 4.9.1

A full list of changes is available on Redmine

5.1. Katello

5.1.1. Content Views

  • Hammer should treat indeterminate needs_publish as publish_needed. - #36581

  • Content view dependency solving should be tracked for needs_publish - #36580

  • CV page needs refresh to get the current filters state - #36529

5.1.2. Foreman Proxy Content

  • The "POST /katello/api/capsules/:id/reclaim_space" endpoint is wrong - #36545

5.1.3. Inter Server Sync

  • Exporting repositories that have architecture restrictions results in bogus data that can't be properly imported - #36477

5.1.4. Repositories

  • 4.9 is slow to sync and index repositories - #36563

5.1.5. Subscriptions

  • Reasons for not deleting the manifest don't apply with SCA enabled - #36604

5.1.6. Tests

  • Pin ostree binding on nightly for tests to pass. - #36586

5.1.7. Upgrades

  • Upgrade rake task will create bad content overrides on post-4.9 Katello upgrades - #36540

5.1.8. Web UI

6. Katello 4.9.0

A full list of changes is available on Redmine

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

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

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

6.1.3. Client/Agent

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

6.1.4. Container

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

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

6.1.5. Content Credentials

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

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

6.1.7. Errata Management

  • Improve errata installation templates - #36075

  • "Installable Errata" in report template - #30664

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

6.1.9. Inter Server Sync

  • Importing incremental content not recreating metadata properly - #36164

6.1.10. Localization

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

  • migrate transifex configuration - #36335

6.1.11. Repositories

  • 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

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

6.1.13. Tests

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

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

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

7. Foreman 3.7.0

A full list of changes is available on Redmine

7.1. Foreman

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

7.1.1. Authentication

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

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

7.1.3. Development tools

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

7.1.4. Facts

  • Drop the socket fact chart - #36058

7.1.5. Host groups

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

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

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

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

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

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

7.1.11. Parameters

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

7.1.12. Plugin integration

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

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

7.1.15. Security

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

7.1.16. Settings

  • Missing Tooltip in EditorNavbar - #36192

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

7.1.17. Templates

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

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

7.1.19. VM management

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

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

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

7.2.2. foreman-installer script

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

7.3. Packaging

7.3.1. Debian/Ubuntu

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

7.3.2. RPMs

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

7.4. Smart Proxy

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

7.4.1. TFTP

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

7.4.2. Templates

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

Appendix A: Foreman Contributors

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

Adam Hosek, Adam Ruzicka, Alex Fisher, Alexey Masolov, Andrew Teixeira, Antonin Dvorak, Archana Kumari, Areyus, Bastian Schmidt, Bernhard Suttner, Damon Clinkscales, Daniel Alley, Dirk Götz, Eric Cook, Eric D. Helms, Erik Berg, Evgeni Golov, Ewoud Kohl van Wijngaarden, Girija Soni, Gordon Bleux, Griffin Sullivan, Ian Ballou, Jan Klare, Jerome Charaoui, Joshua Hoblitt, Leos Stejskal, Lior Keren, Lucy Fu, Marek Hulán, Maria Agaphontzev, Markus Bucher, Maximilian Kolb, Nagoor Shaik, Nofar Alfassi, Oleh Fedorenko, Pat Riehecky, Peter Bittner, Peter Koprda, Romain Tartière, Ron Lavi, Samir Jha, Sebastian Bublitz, Tim Meusel, Trey Dockendorf, Vijaykumar Sawant, William Clark, chr1s692, jc

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

Appendix B: Katello Contributors

Adam Růžička, Amir Fefer, Bernhard Suttner, Chris Roberts, Evgeni Golov, Ewoud Kohl van Wijngaarden, Girija Soni, Hao Yu, Ian Ballou, Jeremy Lenz, Karolína Małyjurková, Leoš Stejskal, Lucy Fu, Lukas Magauer, Maria Agaphontzev, Markus Bucher, Nagoor Shaik, Partha Aji, Quinn James, Samir Jha, Sayan Das, Stephan Bergmann, Trevor Allison, William Bradford Clark