Visual redesign of node roles panel in Fuel UI without changing its functionality.
Currently, node roles panel takes a big part of Add Nodes and Edit Roles screens. User has to scroll down to node list to check nodes and then scroll up again to check roles. This becomes more actual for desktops with a small screen.
We also need to take into account plugins that can add their own roles, so it can be a large list of node roles on the screen.
A suggestion is to redesign the panel to improve UX of node addition and role assignment.
The following mockup contains a new visual design for different role statuses:
Role becomes selected by clicking on its container.
Role description and warning are shown in a popover, which appears after hovering over the role container with a slight delay.
The new role list should be grouped by a new role meta attribute group:
New group property should be added to metadata attribute of Role model. The new property can have one of the following values:
Roles without group metadata specified or with other value of the attribute will automatically go to ‘other’ group in Fuel UI.
JSON schema of a role model should be updated to describe the new group field in role metadata.
No changes required.
Plugin node role template should be updated in v5 plugin builder version to include the new group role attribute with a default ‘other’ value.
No changes required.
The new role list can also be grouped by role ‘limits’ metadata to the following groups:
But the chosen grouping will also help to organize roles into groups to calculate environment capacity properly : it does not make sense to count CPU and RAM of non-compute nodes or HDD of non-storage nodes.
Since there is a data model impact, an appropriate Alembic migration should be prepared to add group metadata to existing roles (particular role group attribute values are described in Web UI section).
No other impact.
Fuel developer will be able to assign a new role to some group to highlight the role purpose in the cloud and/or deployment process.