Creating Operating Systems and assigning templates to them is right now a little bit confusing and not user friendly, I must say.
This is the typical scenario user have to go through:
- Go to Operating systems
- Create new OS
- Go to Provisioning templates
- Find the template(s)
- Associate template(s) with OS
- Go back to OS
- Edit the OS, select the templates, save.
That’s a lot of steps. And it can be confusing (and kinda annoying) for many users including me, as you can see: [0], [1], [2], [3] and [4].
I’ve been thinking about current situation, what to do with it and how to make it better and simpler for users, and so far I came up with the following ideas.
#1 Remove template association to OS
By default all templates will be available to all OS.
Pros:
- Easier to use, from 7 steps to 2 steps
Cons:
- Instances with hundreds or thousands templates will have too many options in the selects.
#2 Allow to assign templates when creating OS
When creating OS, display all templates (sorted by kind) without limitation to OS.
Pros:
- Easy to implement
- Easier to use, from 7 steps to 2 steps
Cons:
- User can make mistake when selecting template
- Editing OS will still require 7 steps scenario, can be confusing for users
#3 Associate template to OS automatically
Katello is already doing it [5], but only for Red Hat OS family.
There was a PR for Foreman [6], but it was closed & not merged.
Cons:
- Difficult to implement (choosing what OS to what template can be pretty
complex) - Do we want to do it behalf the users?
#4 Add flag “for all os” to templates
This leaves the final decision on the users. If they want to select the OS for each template, as they do now, they can.
If they want to ignore the scoping, they can set flag to true
And that’s all of my ideas. I would like to hear opinion from the community, what do you think and what pros and cons would be if we change the behavior.
I’m looking forward to your thoughts and opinions.
Links
[0] Operating Systems / Templates User Experience Issues
[1] Improving the UX for Operating Systems / Templates
[2] No templates found for operating system
[3] Foreman 1.13: error rendering the Kickstart template: undefined method `layout' for nil:NilClass
[4] [Opinion] Restructure: Operating Systems/Provisioning Templates
[5] https://github.com/Katello/katello/blob/master/app/models/katello/concerns/operatingsystem_extensions.rb#L14
[6] https://github.com/theforeman/foreman/pull/1662