Foreman Community Demo #108

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


Thanks to everyone who has signed up so far!
Demo this Thursday!

Link to tomorrow’s livestream:

It’s not too late to sign up!

We go live in 25 minutes, join us!

Katello 4.4 update @iballou

The Katello team is working on releasing the 4.4 GA as soon as they can.
Regarding the release:
Recently, Katello hit a build issue related to an Ansible RPM that is blocking the release pipeline. This is a work in progress.

Ian talked us through a docs PR he has in progress for a Katello troubleshooting section with manual fixes if you run into certain issues when you upgrade to 4.4.

At the moment, there are the following known issues and manual fixes for each:

  • A permissions problem under the artifacts folder where Pulp storage lives.
  • Debian download policy is blank and a Foreman rake task has been included as a workaround to fix that.
  • Pulp 3.16 issue. If you hit a “cryptography error”, there is a repair script that you can run.

Alternative Content Sources - RFC @iballou @MariSvirik

Ian and Maria outlined the thinking behind simplifying the Alternative Content Sources workflow.

Alternate Content Sources are not new to Katello or Pulp but the suggested changes to the simplify the workflow will bring many benefits at the cost of some loss of customization ability.

Everything they showed in the demo they have also shared here: RFC: Katello Alternate Content Sources - #10 by iballou

Katello new host details: Column sorting, tab hiding & host collections @Dewar

@Dewar took the time to demo work completed by @jeremylenz

Andrew demoed new column sorting capability for the host details page web UI.

Andrew also demoed a new Host Collections card in the host details page. From the Host Collections card, you can access a new modal and there you can add hosts to a collection.

On the host collections card, you can also expand collections and read the descriptions.

Previously, when you registered and subsequently unregistered a host, data from the host still appeared in the host details page. Andrew demoed how quickly outdated information is now removed from the host details page.

Inter-Server Sync Improvements @sajha

Samir showed us the latest developments with Foreman Inter Server Sync (ISS)

For context, if you navigate to Content > Subscriptions > Manage Manifest, you can update the location from which you want to sync content for disconnected scenarios.

To do this, click the CDN Configuration and click Upstream server, where you can point to a source for content you want to sync from.

Samir demoed that validation has been added to ensure that users get early feedback if they add an incorrect Lifecycle Environment and Content Views to sync content from. This prevents incorrect configuration from the outset that will save time.

Samir also demoed an update that restricts the list of repositories available to the downstream server. Now, the downstream server displays only those repositories that have been enabled on the upstream server. This also saves time in displaying only that which is available to consume.

Changes to Remove repository flow

There are new checks introduced to removing repositories that exist in Content Views and have been published and promoted through Content View versions.

Now, if you try to remove a repository, you are presented with a modal that contains the Content Views where the repository is in use. A check box has been added so that users can pause and confirm that they are sure they want to delete this repository.

As well as this, a new setting has been added to Admin > Settings where admins can set whether they can switch on and off the ability to delete repositories from publish Content Views.

Katello new host details: Packages @lfu

Lucy took the time to contrast the old method of accessing host packages in the Foreman web UI before showing us the latest enhancements.

To view packages, navigate to Hosts > All Hosts, and click the Content tab, then you can click the Packages tab.

Lucy talked us through the different information available about the packages visible in the web UI, which includes Package name, Status, Installed Version, and Upgradeable To.

If a package has more than one available upgrade versions, only the latest upgradeable version is displayed in the web UI. If it has no upgrades available, it simply displays a - symbol.

To upgrade the package, click the menu option under Upgradeable To, and select the upgrade method. You can run a remote execution job immediately, or select to customize the remote execution job. From this menu, you can also remove the package.

The Packages pages is paginated, and you can use the arrows to navigate through the pages of packages.

The package upgrade itself happens either via the Katello agent or remote execution, depending on what you have set up yourself.

Bookmark updates @MariaAga

There was an annoying bug that mainly affected Audits pages where if a user selected a bookmark from their list of bookmarks, the bookmark menu would remain open, obscuring the view of the actual list of bookmarks. Maria demoed how this is now fixed.

This fix is included in Foreman 3.3

Import ansible playbooks @adiabramovitch

The API has been added (with web UI coming at a later stage) to fetch Ansible playbooks.
Adi first demoed an API call to fetch a list of all Ansible playbooks available to import/sync.

She also demoed importing selected Ansible playbooks into Foreman and how to validate that the playbook imported successfully.

New features in host page @amirfefer

Amir demoed the new “host switcher” icon. If you are viewing a particular host in the Foreman web UI, you can use the switcher icon to navigate to another host without having to leave the page and return to Hosts > All Hosts, as in the past.

When you click the switcher icon, you are presented with an alphabetical list of hosts, pagination arrows, as well as a search bar that you can use to help find the host you want to navigate to.

Amir demoed the Schedule Job button on the host details page that is prepopulated with actions you can take on the host.

DSL autocompletion in templates @ofedoren

Oleh gave a comprehensive overview on the efforts to make template writing and customization as accessible as possible. As well as built in documentation for template syntax, the Foreman template editor now comes with built in documentation that you can access as you write.
For example, if you want to see all of the options available to host objects in templates, click after declaring hosts. in a template, if you click CTRL + space, all available options are highlighted in a text box, so you can add and customize macros with confidence.
Oleh demoed more complex macro completion also where hitting enter inserted the entire macro into the template for your convenience.

Oleh also demoed how if you want to see autocomplete options automatically, in the template editor in the Foreman web UI, a new option has been added to provide live autocompletion.

Depending on a user’s expertise, this live autocompletion provides orientation and guidance that can make the template writing experience infinitely more pleasant.

Oleh did point to some drawbacks, for example, if you’re entering package names for installation into a provisioning template with live autocompletion enabled, it might insert a template macro into the template body that you had no need for.

However, the user is in full control of whether they want or need autocompletion at all. This works in all template editors in Foreman.

Breaking changes label in GitHub @MariaAga

Maria demoed a new label that has been added to provide visibility (where possible) into PRs that will cause breaking changes. The hope is that plugin maintainers will have more transparency and be able to update their plugins where breaking changes are introduced in Foreman core.

GraphQL schema, associations and why we need record_for @ezr-ondrej

Ondrej gives some background to the evolution of GraphQL in Foreman and outlines the work needed to address technical debt, necessary improvements, and much more.