Bug 1971188 - Web Console does not show OpenShift Virtualization Menu with VirtualMachine CRDs of version v1alpha3 ! [NEEDINFO]
Summary: Web Console does not show OpenShift Virtualization Menu with VirtualMachine C...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Console Kubevirt Plugin
Version: 4.8
Hardware: All
OS: All
urgent
urgent
Target Milestone: ---
: 4.8.0
Assignee: Gilad Lekner
QA Contact: Guohua Ouyang
URL:
Whiteboard:
Depends On: 1967885
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-06-12 20:01 UTC by Josef Meier
Modified: 2021-08-12 15:32 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-07-27 23:12:40 UTC
Target Upstream Version:
yzamir: needinfo? (tnisan)
yzamir: needinfo? (tnisan)
yzamir: needinfo?


Attachments (Terms of Use)
Workaround: Create CRD for VirtualMachine with two versions: v1 and v1alpha3 (426.29 KB, text/plain)
2021-06-13 17:20 UTC, Josef Meier
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github openshift console pull 9326 0 None open [release-4.8]Bug 1971188: Creating a VM from the UI on OKD 4.7 fails 2021-06-23 10:50:45 UTC
Red Hat Product Errata RHSA-2021:2438 0 None None None 2021-07-27 23:12:57 UTC

Description Josef Meier 2021-06-12 20:01:15 UTC
All versions of 4.8 up to now don't show the menu "Workloads -> Virtualization" in the Web console if the Operator "OpenShift Virtualization" (KubeVirt) is installed.


I couldn't find the menu anywhere. In 4.7 everything works as expected.

Greetings,

Josef

Comment 1 Yaacov Zamir 2021-06-13 14:30:05 UTC
hi, when testing with current code (e.g. OCP 4.8.z + CNV 4.8.z and using kubevirt api version v1 VirtualMachines) the virtualization menu works for me, can you specify the versions of CNV + OCP you tested ?

for example:

CNV version | OCP version | VirtualMachine API | show virtualization menu item |
4.8         | 4.8         | v1                 | yes / now                     |

Comment 2 Yaacov Zamir 2021-06-13 14:32:10 UTC
waiting with blocker +/- , if we can reproduce we may ask for this to be blocker

@gouyang@redhat.com hi, can you reproduce this bug ?

Comment 3 Josef Meier 2021-06-13 14:41:42 UTC
OpenShift Virtualization           | OKD (!) version           | VirtualMachine API                                               | show virtualization menu item
v2.6.5 (from Operatorhub catalog)  | 4.8 nightly from today    | v1alpha3 (gets installed with OpenShift Virtualization Operator) | no

Comment 4 Yaacov Zamir 2021-06-13 14:50:05 UTC
Note about reproducing:
I did not check, because I don't have an env with 2.6.5, We decide to show or not to show the menu item based on existence of VirtualMachine v1
https://github.com/openshift/console/blob/master/frontend/packages/kubevirt-plugin/console-extensions.json#L7

cc:// @ycui@redhat.com do you think this to be blocker (e.g. UI for 4.8 broken with CNV 2.6 ) ?

Comment 5 Josef Meier 2021-06-13 16:57:24 UTC
https://github.com/openshift/console/issues/9227

Comment 6 Josef Meier 2021-06-13 17:20:10 UTC
Created attachment 1790763 [details]
Workaround: Create CRD for VirtualMachine with two versions: v1 and v1alpha3

A workaround for this problem is:
- install OpenShift Virtualization operator
- create "OpenShift Virtualization Deployment" object
- wait until everything is installed
- copy the CRD "VirtualMachine"
- delete the OpenShift Virtualization Operator
- add a new version "v1" to the VirtualMachine CRD text file (spec.versions)
- set "spec.versions.v1.storage = false"
- create a new CRD "VirtualMachine" with this two versions in it

-> the Web Console shows the menu entry "Workload -> Virtualization" and the installation of the OpenShift Virtualization operator works.

Comment 7 Josef Meier 2021-06-13 20:55:12 UTC
(In reply to Josef Meier from comment #6)
> Created attachment 1790763 [details]
> Workaround: Create CRD for VirtualMachine with two versions: v1 and v1alpha3
> 
> A workaround for this problem is:
> - install OpenShift Virtualization operator
> - create "OpenShift Virtualization Deployment" object
> - wait until everything is installed
> - copy the CRD "VirtualMachine"
> - delete the OpenShift Virtualization Operator
> - add a new version "v1" to the VirtualMachine CRD text file (spec.versions)
> - set "spec.versions.v1.storage = false"
> - create a new CRD "VirtualMachine" with this two versions in it
> 
> -> the Web Console shows the menu entry "Workload -> Virtualization" and the
> installation of the OpenShift Virtualization operator works.

But if I use the wizard to create a VM it tells me rather in the end that it is expecting VirtualMachine API version v1 and not v1alpha3. So the problem has to be fixed somehow else.

Comment 8 Yaacov Zamir 2021-06-14 08:14:54 UTC
Note:

OpenShift Virtualization 4.8 will be release in 2021-06-29

Tal hi, This BZ will be auto-fixed once 4.8 will be GA in two weeks ... is this a bug (or just a mismatch of released openshift virtualization used with mismatched version upstream ) ?

cc:// @ycui@redhat.com

Comment 9 Josef Meier 2021-06-14 08:23:55 UTC
If the OpenShift Virtualization Operator will automatically upgrade the CRDs for v1 I think we have no problem. 

The result of upgrading OCP to 4.8 will be, that the Virtualization menu items will disappear until the OpenShift Virtualization operator also got upgraded. Users will be confused because of that and maybe need a hint to upgrade the operator.

What's your opinion on that?

Comment 10 Yaacov Zamir 2021-06-14 08:59:09 UTC
blocker - 

this bug will be fixed on release, it should not block release :-)

Comment 11 Yaacov Zamir 2021-06-14 10:08:16 UTC
May be connected to:
https://bugzilla.redhat.com/show_bug.cgi?id=1967885

Off Topic:
Kubvirt and Kubevirt-UI get released on different dates using different release mechanisms

a - supporting both API versions is not trivial.
b - I don't know of a support metrics of version kubevirt + kubevirt-plugin that we should support (test?) together.

We may want to look at mechanisms to release the kubevirt-UI together with kubevirt.

FYI: @danken@redhat.com @tnisan@redhat.com @stirabos@redhat.com

Comment 12 Dan Kenigsberg 2021-06-14 20:12:45 UTC
Our typical upgrade process starts with OCP moving from 4.y to 4.y+1. At some point later, automatically or with a human approval, CNV would upgrade from 4.y to 4.y+1. The thinnest possible support matrix is hence

CNV\UI  4.y   4.y+1
4.y      +      +
4.y+1    ?      +

There is no way around it: a distributed system such as OpenShift cannot upgrade instantaneously (it's a corollary of Special Relativity!), so each component must support at least two versions of the API of all components upgrading with and after it. This would not change even when kubevirt + kubevirt-plugin are deployed by HCO (it may be less apparent but we shouldn't be deceived by that).

I am not in the position of declaring this a 4.8.0 blocker, but I wish I was. This is a big bug. It is an OpenShift design principle that services continue to serve during upgrade. We shouldn't tolerate a downtime that can span days or weeks (e.g if we fail to ship CNV on time).

As I see it, the GUI - as any other component - must fall back to v1alpha3 if it cannot find v1.

Comment 14 Guohua Ouyang 2021-06-15 00:41:33 UTC
The issue can be reproduced on CNV 2.6 cluster with OCP 4.8 UI.
I think we should fix this, if it cannot find current api version it falls back to previous one. Except "the Workloads -> Virtualization" menu shows there, it should also be able to use the UI to create/delete virtual machines.

Comment 15 Yaacov Zamir 2021-06-15 07:18:13 UTC
changing back to blocker ? , we will discuss this in next bug scrub

changing to urgent , this will create a downtime that can span two weeks until versions align.

Comment 16 Ying Cui 2021-06-16 07:30:33 UTC
(In reply to Yaacov Zamir from comment #8)
> Note:
> 
> OpenShift Virtualization 4.8 will be release in 2021-06-29
> 
> Tal hi, This BZ will be auto-fixed once 4.8 will be GA in two weeks ... is
> this a bug (or just a mismatch of released openshift virtualization used
> with mismatched version upstream ) ?
> 
> cc:// @ycui@redhat.com

Yes, from QE point of view, it is blocker and regression.

Comment 17 Yaacov Zamir 2021-06-21 11:57:21 UTC
fixed by:
https://github.com/openshift/console/pull/9258 - merged upstream

Comment 19 Guohua Ouyang 2021-06-22 12:37:38 UTC
The PR is in master but not in release-4.8 yet.
Confirm the bug is gone on master branch.

Comment 20 Ying Cui 2021-06-23 07:53:02 UTC
There is the fix but not merge yet to 4.8, so moving the bug to POST.

Comment 22 Guohua Ouyang 2021-06-24 02:40:23 UTC
It's in upstream release-4.8 now and works with old CNV.
Move the bug to verified based on it.

Comment 25 errata-xmlrpc 2021-07-27 23:12:40 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.8.2 bug fix and security 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-2021:2438


Note You need to log in before you can comment on or make changes to this bug.