Foreman Community Demo #106

Every few weeks we host a Community Demo to showcase new & interesting developments from the Foreman community. We encourage participation from any member of the community (although you do need a Google account), so if you’ve been working on something cool, please do come show it off.

This post is a wiki, so if you have something to show, add yourself to this table!

Expected In

We’ve added a new column to indicate the release in which community members might expect the feature that is being demoed to appear. This column should be taken as a guide rather than gospel. Unforeseen circumstances might drag a feature out a release or two. The best way to know for sure what is in a release is to check out the release announcement! :slight_smile:

If you have any feedback about the change to the format, feel free to comment here :slight_smile:

Depending on where it would be a better fit, please add yourself to one of the following tables:

Foreman user-focused demos

Foreman developer-focused demos

Speaker Time Topic Redmine issue Expected in version
@Ron_lavi 10 mins Rails 7 POC Demo Post feedback here: Rails 7 and new frontend approaches POC
@amirfefer 5 mins new empty page usage
@Dewar 5 - 10 mins VS-Code development flow with extensions for React: Slides Here N/A N/A

Our next demo is in one week.
Be like @lstejskal - sign up early. Make @mcorr happy :green_apple:

1 Like

Demo is this Thursday!
Please sign up!

Demo is tomorrow - it’s not too late to sign up!

Live link for later: Foreman Community Demo # 106 - YouTube
Tap the bell button to set a reminder!
It’s not too late to sign up!

Live in 20 mins!

Foreman community demo 106 summary

This is a wiki. Please corrected where I’ve ventured into fictional realms.

Please give feedback in the comments if you have any thoughts on any of the demos.

Registration and templates previews @lstejskal

Leos demoed an enhancement to the previous template preview options for the global registration template and the host_init_config templates.

Previous to this update, you were forced to select a host before you preview the template. This meant you could not preview the global registration template as the host was not yet in the database.

With Leos’s latest update, with global registration templates, you no longer have to select a host for template preview to work. Because the host is not in the database, you are not expected to select a host.

host_init_config template preview update:

For the host_init_config, in the past you were restricted to selecting only managed hosts. Leos demoes how with his changes, you can select to preview the host_init_config on any host that you want.

Leos took the time to demo these changes to raise awareness for the development of future templates. The ability to preview future templates and also how to manage this is an important consideration for those who will be using these templates.

Katello: changing content source @lstejskal

A Content Source is a Smart Proxy from which a host can get packages/repositories/data.

In the Foreman web UI hosts’ list page (Hosts > All Hosts), there is now an option in the Select Action menu called Change Content Source. You can select one or more hosts, then from the select action menu click Change Content Source to open a new page where you have the options to set the Lifecycle Environment, Content View, and Content Source (Smart Proxy) that you want to switch to.

If you bulk select and there are hosts not managed by Katello, you’ll get a warning that some hosts are being ignored, but you can continue knowing that no actions will happen despite the selection.

When you’ve made the changes to the content source. You now either have to run a remote execution job on the host to update to the new content source, or you can use the autogenerated commands from the web UI and run the steps manually on the host.

Leos demos end-to-end changing a content source, then updating the host with remote execution.

Officially support only the recent versions of Firefox, Safari, Edge, Chrome / Chromium browsers @Ron_Lavi

To the heartbreak of web developers worldwide, Internet Explorer goes EOL this June.

Ron came to highlight the difficulties of browser support for older versions of well known browsers.
His suggestion is to follow the Patternfly 4 guidelines for browser support.
He is opening the discussion to see if there are any concerns with the hope that this can be declared our new browser policy

Initial puppet tab work @Ron_Lavi

The final Puppet tab design has been decided on, but as an intermediate for Foreman 3.2, an initial Puppet tab will be added.
You can take a look at the preview in Ron’s PR and if you’ve any feedback, let him know.

It will probably not be finished in time for 3.2, but Ron demoed what they have completed so far that takes advantage of recent enhancements such as pagination.

He also made the suggestion that a lot of the time and effort invested in the Puppet tab report could be reused for the Ansible reports.

Let Ron know what you think!

New host details tabs now support better links @jeremylenz

Jeremy demoed an interesting enhancement to how linking is handled in the new host details page.
He illustrated the enhanced linking using the example of the Errata card on the host details page, which is a recent contribution of the Katello team.

The Errata card on the host details page gives an overview of security advisories, bugfixes and enhancements that are available for your hosts. If you click, for example, bug fixes, the enhanced linking means you will be brought not only to the Errata overview page, but to the filtered list of available bug fixes rather than the generic Errata landing page.

These improved links also allow you to build and use search queries.
It works with traces, errata, packages, and repository sets and will in the future work with module streams and subscriptions.

Speed up of content indexing @Justin_Sherrill

Content indexing in Katello happens as a result of synchronizing content. Content indexing pulls information about the new package groups, repositories, errata etc into the database so that it can be used for querying data and search filtering and other activities within Foreman/Katello.

Content indexing in Katello has been historically slow. With Pulp 3, the bottleneck it was causing became even more pronounced.

As well as this, a bug report came in with Postgres errors. In the Postgres logs, errors occured because of concurrency, duplicate key constraints were being hit.

To eliminate the both the bottlenecking around content indexing and the Posgres errors, the Katello team are finalizing work, which alleviates this by creating a bulk insertion and update into the database.

Justin talked us through the performance improvements.

With the changes, the initial content indexing now takes a fraction of the time, down from 1782 seconds to 106 seconds on testing.

A follow-up sync, in which there isn’t as much content being synced still sees a reduction in time for the content indexing, but not as dramatic as the improvements of the initial sync. For a follow up sync the improvement means going from 144 seconds down to 101 seconds.

New Docker “On Demand” download policy @rverdile

Ryan had a short update for us in which he demoed how Docker repositories Foreman/Katello now have had their Download Policy sync options updated to include On Demand.

Previous to this, it defaulted to immediate for Docker repos.

Inter Server Sync UI update @Partha_Aji

Partha talked about enhancements to the Inter-Server Sync Disconnected scenario, namely a new setting Subscription Connection Enabled and the Disconnected option for Managing Manifests.

Within Admin > Settings, in the Content tab, there’s a new setting called Subscription Connection Enabled that you can change from Yes to No.

This setting allows Foreman/Katello to communicate with the Red Hat Customer Portal regarding subscriptions.

If you switch this to No, your Foreman/Katello instance cannot talk to the Red Hat Customer Portal.

In Subscriptions overview page, if you select Manage Manifest, there are now three options:

  • Red Hat CDN
  • Another Foreman Server
  • Airgapped - this final addition means you can only use the Import/Export hammer commands to sync content.

Content View UI - Bulk Deletion of Content View Versions @Dewar

Andrew demoed that if you now select more than one Content View Version in the UI, as well as Content View Versions from across pages of Content Views, you can now bulk delete. Selecting a Content View Version and clicking delete brings forth the deletion wizard.

This wizard highlights the consequences of your actions. It shows the affected environments, confirms the version that will no longer be available for promotion after deletion, as well as this, it guides you to further actions you might need to take before the deletion is complete. For example, if you need to reassign hosts or activation keys, you can select another environment through the wizard.

At the moment there is an error around trying to delete a version that is associated with a Composite Content View, which is a work in progress.

Multi-page Bulk delete is now possible also.

Rails 7 and new frontend approaches POC @Ron_Lavi

Ron also went through the ideas he outlined in his post Rails 7 and new frontend approaches POC.

New empty page usage @amirfefer

Amir came to talk about a new generic page for empty pages that is being used in the host details page but can be used throughout the whole of Foreman. While it is a generic page, you can change the title and description, add more buttons and actions.
He then demoed this in action from the host-details page.

VS-Code development flow with extensions for React @Dewar

VS-Code is a complete development environment that Andrew uses extensively. Apart from some browser testing, he doesn’t need to leave for any part of his workflow.

Andrew talked us through extensions for react in VS-Code and why they are so helpful for the Katello development workflow.


Thanks @mcorr, great summary!