RFC - Foreman navigation redesign

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?

2 Likes

Yes, I think itā€™s a good idea to first evaluate the use cases and typical workflows.

I also just noticed due to your post that this might be part of the confusion with the menu. I can basically see two approaches (maybe there are more, Iā€™m not a Usability pro, just my 2 cents): structure by workflow vs. structure by entity. The entity is kind of what you are working on, like ā€œHostsā€. This structure is like in a REST API or classic MVC model based view (e.g. Hosts ā†’ Create / Update / Delete). ā€œConfigureā€ on the other hand is an activity / a workflow. At the moment the menu is kind of mixed between the two. E.g. for reports, there is only one page to create, update, delete them, but also to execute them, e.g. create reports based on the templates. For other things, there are actually multiple pages, e.g. thereā€™s a separate Create Hosts menu entry.

2 Likes

Thatā€™s an excellent observation.

Personally I think I prefer an entity based menu. This is mostly because we donā€™t really have a common workflow: plugins can add aspects and thus add workflows. Itā€™s also how my mind works and how I see Foreman (an inventory system).

1 Like

My thinking is that inventory is a common ground for both provisioning and configuration management. If you put it either way, the other feature will miss that.

I think we should not introduce any kind of ā€œPluginsā€ menu, they should hook to any appropriate section including a top-menu. Plugins should be able to create top-menu entries if that is not feasible today - for example OpenSCAP should probably add a top-menu ā€œSecurityā€ which is a very important top menu to have. Katello could also drop an item or two into it.

I agree, infrastructure was my initial thought and I probably like it in the Inventory more. The reason why I ended up with inventory was that I am afraid not to end up with some kind of ā€œgod-menuā€ again. But after I finished with my proposal, I can see what I did not see when I started: infrastructure is already pretty crowded. So yeah, I like that.

Overview is not bad, maybe too generic but I am good.

I also lean towards this, maybe it might be considered as a bad UX, however, ton of other software do this too and I am kinda used to this.

+1 on hosts and content hosts being inventory.

I kind of like ā€œoverviewā€ - in my mind, I want a clear distinction in the interface between ā€œwhat do I have right nowā€ (i.e. hosts and content, and config) and ā€œwhat tools do I have to make moreā€ (proxies, subnets, architectures, media, etc). To be fair, the more I think about it the more lines blur a bit, since content has feet in both the abstract and concrete.

ā€œOverviewā€ may be a generic term but Foreman and Katello do cover a lot of ground, and I think a generic term is called for here.

I made a few other observations in the meantime (I canā€™t stop thinking about the menus while using Foreman at the moment), I go from top to bottom:

  • I would refrain from mixing nouns and verbs in the menu (e.g. ā€œHostsā€ vs ā€œConfigureā€)

  • Basically Foreman uses a 3-level menu, you have the categories (Hosts), the mouse-over submenu (All Hosts) and then the menu in the upper right on a page (e.g. Create Host, Register Host). However, some of the third level pages have direct menu entries (Create and Register), but most of them donā€™t. Some pages (mostly Katello) extend this navigation with tabs and additional dropdowns.

  • Pages in the Monitoring category are mostly read-only (as you would expect I guess), but not all of them:
    ā€“ Jobs has a run job button which you can otherwise only reach from the ā€œSchedule remote jobā€ button on a Host detail page as far as I see it?
    ā€“ Report Templates seems to have it backward somehow. The page itself can only be used to configure stuff instead of monitoring stuff, but you can Generate the reports from here as well. I would actually expect to get a list of recent reports here as with the other stuff like Jobs, Tasks, etc?
    ā€“ Recurring logics seems to be totally out of place (and the name is really unusual)

  • I donā€™t like the Content menu for our workflow, but thats probably a matter of taste and depends on the usage of subscriptions / activations and views etc. But Iā€™d feel more at home if it had more emphasis on repositories and operating systems instead of hiding everything behind Products. There is a Red Hat Repositories page, but no page for other repositories, unfortunately. You have to go into a product to see the repositories first, or otherwise into the Views repositories tab, there you can get a list of all repositories.
    ā€“ I think sync status could be a subpage of sync plans, or of the as of yet unexisting repositories page :wink:
    ā€“ everything under Content Types seem to be read-only report pages (e.g. list of packages, list of files, list of modules) where you canā€™t do anything actively. Maybe they should go to a report / monitor section?

  • Configure: Its not really clear to me if this is supposed to mean Configuration Management only? In that case I would call it that, because me and my colleagues thought that you configured foreman here (or all parameters regarding provisioning etc.) and wondered about the difference to Administer.
    ā€“ I would actually move Host Groups elsewhere, because those also dictate all provisioning settings like operating system, partition tables, installation media etc. all of which you configure in the ā€œHostsā€ category. Not necessarily under hosts, but somewhere together (maybe a new Provisioning menu?).
    ā€“ Probably way too late to change that, but I actually think that ā€œHost Profilesā€ would have been a better term than ā€œHost Groupsā€, because the differentiation that Foreman makes between the terms ā€œgroupā€ and ā€œcollectionā€ seems really arbitrary in my opinion.

  • Not directly related, but Iā€™d actually remove the reverse referentiation of Partition tables and provisioning templates. Its not uniform as is (e.g. Installation media doesnt have it) and it would save time navigating between pages.

Again, I hope I donā€™t offend anyone, Iā€™m just trying to make constructive suggestions. Iā€™m sure others might see it differently.

4 Likes

things that you canā€™t stand

Ctrl+click does the same thing as a regular click, ie just follows the link instead of opening it in a new tab. Middle mouse click works as expected, but ctrl+click does not. That is probably my biggest gripe with the current nav.

Thereā€™s a couple of other places from which you can run jobs. Host details, host index (after selecting at least one host), job templates index and then there are some utility buttons which perform various things by running jobs.

Iā€™m with you, they are out of place and the name is pretty bad. Otoh, it feels like they wouldnā€™t really fit anywhere, no matter how we would shuffle the menu items around. And as far as the name is concerned, Iā€™m open to suggestions but donā€™t want to derail this thread.

Excellent observations @agemuend. Just jumping in on some to provide some context:

I think Configure is something you configure about hosts where Administer is more about configuring Foreman itself.

Itā€™s good to know that Host Collections is something Katello adds and doesnā€™t exist in regular Foreman.

Historically Partition Tables and Provisioning Tables were separate database models. AFAIK they have been merged a long time ago (thankfully) but the separation in the UI remains. Iā€™m not sure if thereā€™s a good reason for this or if itā€™s just historical.

Feel free to fill out this card sorting research about the new navigation and share it with other interested users! :star2: :star2:
See also the post about the research in the forum.
(Edited link)

Another research -
This time about the nav design - just vote here RFC: Navigation once again