RFC - Foreman navigation redesign

I’ve moved it to community as suggested by @amirfefer.

More on topic: I quite like the current UX. It feels predictable. In the past we had fly out menus and I always fought with them. If you move your mouse just too far, you lost it. Never had that feeling with the current menu.

As fast as the content goes, I always think Hosts -> Templates is an odd one. I wonder if its contents could be merged with the header above it (Provisioning Setup). Speaking of that, isn’t Provisioning Setup much more of a Configuration? Or perhaps even its own top level menu?

The Monitor section has a similar problem. There’s Report Templates but that feels more like Configuration to me.



Menu is a UX disaster, we have pretty much everything in the Host “God menu”. Here is my feedback:

Note I am core engineer, I am biased, proper research must be done, but for God sake break the Host menu apart! :slight_smile:


Thanks @lzap for reminding me that I should specify my environment. I don’t have any plugins installed so I’m very much looking at the more minimal experience. And even there I noticed the “God menu” effect :wink:

@kuklas One pet peeve of mine is that there does not appear to be any clear style guidelines on when to use title case, sentence case, etc. For main menu entries Foreman core seems to use title case fairly consistently, but many plugins do not. Not sure if this really falls under your purview as a UX designer, but it can’t hurt to keep it in the back of your mind for your future interactions with plugin writers. :wink:


Welcome @kuklas!

I find the division between “All Hosts” and “Content Hosts” a little odd. Similarly, why “Host Collections” is under “Hosts” and “Hostgroups” is under “Configure”. In my mind it feels like some of those things could be consolidated, but I understand the divide between foreman and Katello and how complex it might be to actually do that consolidation.

It seems a little odd to me that to initiate a job I go to the “monitor” tab first - maybe “manage” or something like that deserves to be a top-level menu item. (I think this might reflect that foreman started as a puppet-oriented thing and while it will continue to support Puppet, is moving towards a somewhat different model.)


This is indeed a historic thing but there is already a redesign of the host detail page that will take care of this. In Foreman 3.0 you can get a preview, in 3.1 it will be possible to choose which is the default. Eventually when all functionality has been implemented (still, lots of plugin haven’t) both the current host detail page and content host page will be obsolete.

See this (and other posts):

I’m not sure when that will be. Perhaps we should do a better job of tracking the progress.

1 Like

@quba42 according to PF4 standards that RH products should follow, the correct capitalization in navigation should be title case (as an exception to a default capitalization - sentence case).

We will keep it in mind. The problem is with capitalization in general not just in navigation. Thanks for spotting this issue. We have already given some thought on how to solve it across Foreman wide. @Ron_Lavi


Do you have a link to the “PF4 standards” docs that RH products should follow? (Just for future reference).

PatternFly 4 • Capitalization @quba42

1 Like

Thanks for the response. That’s great to hear! How do I choose a default? (I’m running 3.1/4.3 rc’s now).

Thanks for all the responses so far, I appreciate it a lot! Looks like complex problem that needs more understanding

See the Foreman 3.1 release notes:

1 Like

Completely agree with his. We use Foreman since a couple of years, but the menu still confuses the hell out of me. I sometimes randomly click around trying to remember where to find what.

A pet peeve of mine is seeing the logs of an ansible run:
You click on Monitor → Jobs → then you need to click on the description field (not on the status field, mind you) → on the following page below the overview there is a Host table, there you click on the Hostname (not on the status field, mind you, also not on the host detail button, really only on the hostname), then you get the output of the run. I have no idea if there is a different way to get them.

In the beginning, we had lots of problems understanding the basic concepts of Foreman and Katello, so we also didn’t understand the menu. We came from Cobbler and basically wanted to use primarily provisioning via Kickstart on locally managed repositories (including custom repos) with the hosts continuing to use these repos. Being faced with Organisations, Locations, Host Groups, Host Collections, Lifecycle Environments, Content Views, Installation Media, Operating Systems, Products and their repos, and all of the associations between them, was quiet straining in the beginning. The relationship between all of them wasn’t really clear to us in the beginning, so it was really hard to find the correct places to configure everything.

What I still really don’t like is how you configure the kickstart file that is used for provisioning. First, its not clear to me why Architectures, Kickstart templates and so on are under Hosts instead of under Content, and then having to associate things through editing them, to be able to choose them in dropdowns on other objects, is really unnecessarily hard in my opinion. E.g. having to find and edit the kickstart template to associate it with an Operating System, to be able to associate it with a Hostgroup for Installation.

I hope that all doesn’t sound too critical, I just think there’s potential to facilitate the structure of the navigation and some of the most popular workflows.

1 Like

The division between “Hosts” and “Content” is roughly speaking the division between Foreman and Katello. Everything to do with deploying a host is under “Hosts” (including Architectures, Kickstart templates and so on). Everything to do with managing content (primarily RPM packages or APT packages, etc.) is under “Content”. Not saying that division is very good, just hoping this might help you conceptualize it a bit better until it eventually gets reworked. :wink: And yes, associating templates by hand is a nightmare!

Oh yes, while I do know that, it doesn’t really persuade me to be honest. Why shouldn’t Katello add entries to other submenus? And regarding the split: Installation Media and Operating Systems are for me much closer to content actually. And why are Host Collections under Hosts and Host Groups under Configure? Just some other examples. I just think it could be more accessible.

Host Groups are part of the Configure menu for two reasons: First, they mostly bundle (provisioning and) configuration settings (like Puppet Modules, Salt States, or Ansible Roles); and second, they are not a group/list of hosts. That would be a host collection instead. You can think of host groups as “blueprints/templates” for new hosts.

Where it gets confusing: some settings apply to existing hosts, some settings of a host group only apply to new hosts that are provisioned based on that host group.

But all other Provisioning settings are NOT under Configure, they are under Hosts in a Submenu, which is even called “Provisioning setup”. By the way, much closer to “Host Collections” than to “Host Groups”.
I know these concepts, I just think, even after years of using Foreman, that the menu structure is not optimal.

We need to identify major Foreman competencies and make the main menu according to this. I am thinking something like:

  • Inventory (Arch, IM, OS, Hardware models)
  • Infrastructure (Hosts, Content Hosts, Host groups, Global parameters, Smart Proxies, Subnets, Domains, Realms)
  • Content (Katello)
  • Provisioning (Discovered hosts, Discovery Rules, Prov Templates, Partition tables)
  • Configuration (Puppet, Ansible)
  • Remote execution
  • Reporting (Dashboard, Audits, Facts, Reports)
  • Administer

Just a rough idea, my takeaway:

  • Remove Hosts main menu because pretty much everything tends to do something with hosts and we used to over-use this menu item.
  • Inventory could be a separate item
  • Provisioning should definitely be a separate item
  • Monitor and Reporting sounds common, perhaps merging them (into Reporting)?
1 Like

I have a good first impression of this taxonomy. I am not sure I fully understand Inventory vs. Provisioning, though it might be better to have several small menus rather than fewer large ones?

Then there are plugins like openscap that ignore the menu taxonomy and just place all their stuff under a subheading within the Hosts menu. That really messes things up. (Two different places for reports, etc.) Do you have any thoughts on how to help plugins seamlessly integrate into the main menu?

1 Like

I would say that Hosts (and implicitly Content Hosts) are Inventory.

I also think we should consider a world where Content Hosts no longer exists when rebuilding the menu. In the Foreman database there are just Hosts. Today there are multiple views (for historical reasons) but I’d say work is very close to addressing that. I think it’s safe to assume this work is completed before the new menu is implemented.

How about Overview?