Bug 1878301

Summary: [4.6] [UI] Unschedulable used to always be displayed when Node is Ready status
Product: OpenShift Container Platform Reporter: mlammon
Component: Management ConsoleAssignee: Cyril <cajieh>
Status: CLOSED ERRATA QA Contact: Siva Reddy <schituku>
Severity: medium Docs Contact:
Priority: low    
Version: 4.6CC: abraren, aos-bugs, cajieh, gharden, jokerman, yanpzhan
Target Milestone: ---   
Target Release: 4.7.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: Incorrect code Consequence: Unschedulable status field only showing when true Fix: Yes. Implemented the UX new design to resolve the bug. Result: Working as expected.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-02-24 15:17:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
In Maint, screenshot
none
Not in maintenance
none
notReady status
none
ready status
none
schedulingDisabled none

Description mlammon 2020-09-11 20:11:13 UTC
Created attachment 1714602 [details]
In Maint, screenshot

Created attachment 1714602 [details]
In Maint, screenshot

Created attachment 1714602 [details]
In Maint, screenshot

Description of problem:
Unschedulable used to always be displayed when Node is Ready status, it now only showes when in Maintenance mode
and status = False

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.  Install OCP 4.6 with CNV 2.5 (which has NMO)
2.  Compute->Nodes->3dot kebab button on master-0-0 (click)
3. Compute->Nodes->master-0-0, view all
   Unscheduable status missing
4. Test again by putting node in maintenance

Actual results:
Unschedulable status field only showing when true

Expected results:
Expect Unscheduable status field exist and show false in normal Ready mode


Additional info:

Comment 1 mlammon 2020-09-11 20:11:48 UTC
Created attachment 1714603 [details]
Not in maintenance

Comment 2 Jiri Tomasek 2020-09-14 07:30:05 UTC
By default resource properties are not displayed when in falsy value. I am not sure if the case of 'unschedulable' should be treated differently.

Comment 3 Andy Braren 2020-09-14 23:56:56 UTC
The same behavior seems to apply even without CNV/NMO installed, so this may not be Metal3/CNV-specific. If I remember correctly (I don't have a bare metal cluster available to test) the "Mark as Unschedulable" action in base OCP turns into "Start maintenance" with CNV/NMO installed which includes marking the node as unschedulable.

I'll double check this with Console stakeholders at a meeting next week, but I believe Details pages of the Console generally try to reflect what's inside the resource's YAML. When a node is marked as unschedulable via the UI, I see this in its YAML:

spec:
  ...
  unschedulable: true

but when it's schedulable I notice that the key/value pair disappears entirely from the YAML instead of being changed to `unschedulable: false`.

Maybe the way the UI updates the YAML changed which is why the behavior is different now, or maybe removing/hiding the field was intentional since seeing the double negative `Unschedulable: False` all the time could be a little weird/confusing.

I'll follow up.

Comment 4 Cyril 2020-09-28 14:33:16 UTC
Waiting on an updated design from UX before this issus can be consider.

Comment 5 Andy Braren 2020-09-28 19:23:39 UTC
After discussing this with Console stakeholders we've agreed on a new design that:

1. Removes the `Unschedulable: True` field from the Details page entirely (its information is duplicated by what's shown in the node's `Status`)
2. Updates the node's `Status` to include a yellow warning triangle icon while unschedulable, a popover explaining what that means, and an action to make the node schedulable again

These adjustments should resolve this bug and make it easier to notice, understand, and manage unscheduled nodes.

Here's the design (2 screens):
https://marvelapp.com/prototype/f57h3d4/screen/73102504

Comment 6 mlammon 2020-09-28 20:49:11 UTC
Looks great!

Comment 10 Yanping Zhang 2020-10-14 11:59:53 UTC
@mlammon , the bug is targeted to 4.7.0, and the fix is in 4.7 payload.

Comment 11 Siva Reddy 2020-10-14 21:16:29 UTC
The node status now includes the scheduling information also.

Version:
  4.7.0-0.nightly-2020-10-14-101154

Steps to verify:
1. login to console which has a node scheduling disabled
2. navigate to PageSideBar>Compute>nodes and click on the node and go to details tab
3. Notice that the status has scheduling disabled warning
4. Now make the node scheduling enabled
    # oc adm uncordon <node>
5. Note the status is changed to ready
6. delete the node from the cluster and notice that it goes to not ready state.

attached screen shots

Comment 12 Siva Reddy 2020-10-14 21:17:04 UTC
Created attachment 1721601 [details]
notReady status

Comment 13 Siva Reddy 2020-10-14 21:17:35 UTC
Created attachment 1721602 [details]
ready status

Comment 14 Siva Reddy 2020-10-14 21:18:05 UTC
Created attachment 1721603 [details]
schedulingDisabled

Comment 17 errata-xmlrpc 2021-02-24 15:17:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.7.0 security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:5633