Bug 2218203

Summary: Virt-what does not return correct result when running inside an openshift container
Product: Red Hat Enterprise Linux 9 Reporter: Richard W.M. Jones <rjones>
Component: virt-whatAssignee: Richard W.M. Jones <rjones>
Status: MODIFIED --- QA Contact: YongkuiGuo <yoguo>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 9.3CC: alessandro.taufer, qzhang, rjones, virt-maint, xiaodwan, yacao, ymao, yoguo
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: virt-what-1.25-5.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 2217407 Environment:
Last Closed: 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:
Bug Depends On: 2217407    
Bug Blocks:    

Description Richard W.M. Jones 2023-06-28 12:43:02 UTC
+++ This bug was initially created as a clone of Bug #2217407 +++

[RWMJ: Cloning for RHEL 9 so that we don't create a regression
when upgrading]

Description of problem:

It's impossible to request a virtual subscription of RedHat OS while running in a Openshift container. That's due to the fact that virt-what doesn't detect CRI-O based containers.

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


How reproducible:
Run a container registry.access.redhat.com/ubi8/ubi-init:8.8 on openshift

Steps to Reproduce:
1. Launch a container registry.access.redhat.com/ubi8/ubi-init:8.8 on openshift
2. Run #virt-what

Actual results:
#virt-what
Return code 0

Expected results:
#virt-what
crio

Additional info:

--- Additional comment from Richard W.M. Jones on 2023-06-27 13:17:11 UTC ---

Can you tell us the precise version of virt-what?  rpm -q virt-what

--- Additional comment from Richard W.M. Jones on 2023-06-27 13:21:42 UTC ---

Also what's the version of OpenShift (if known).

What is the contents of /proc/1/environ ?

--- Additional comment from  on 2023-06-27 13:48:26 UTC ---

Thank you for the quick reply!

$ rpm -q virt-what
virt-what-1.25-3.el8.x86_64

$cat /proc/1/environ # I just kept the part related to the container because I'm not sure how much of the file I am allowed to share
container=crio

Openshift Version: 4.13.1

--- Additional comment from Xiaodai Wang on 2023-06-27 15:09:03 UTC ---

I can reproduce it in an OCP cluster which is installed on baremetal.

I also tried the cluster which is installed on a VM, the result is
# virt-what
kvm

I tried it again in podman, the result is
# podman exec -it 392a422ca3b2 virt-what
oci

--- Additional comment from Richard W.M. Jones on 2023-06-27 16:24:13 UTC ---

(In reply to Xiaodai Wang from comment #4)
> I can reproduce it in an OCP cluster which is installed on baremetal.
> 
> I also tried the cluster which is installed on a VM, the result is
> # virt-what
> kvm

I believe we are expecting output like:

# virt-what
kvm
crio      ; or maybe "oci" here, being discussed on tech-list

Note "kvm" is still printed because of the KVM VM you're running it in.

> I tried it again in podman, the result is
> # podman exec -it 392a422ca3b2 virt-what
> oci

Yes, this is correct.

--- Additional comment from Richard W.M. Jones on 2023-06-28 08:59:49 UTC ---

(In reply to Xiaodai Wang from comment #4)
> I can reproduce it in an OCP cluster which is installed on baremetal.

Xiaodai, can I get remote access to this?  (Email me the creds if possible)

--- Additional comment from Richard W.M. Jones on 2023-06-28 12:27:28 UTC ---

Upstream fix:
http://git.annexia.org/?p=virt-what.git;a=commitdiff;h=95d18c02038f44bc3e8ff264079f8b697eecf1bd

# virt-what
crio

--- Additional comment from Richard W.M. Jones on 2023-06-28 12:29:38 UTC ---

I've suggested a potential fix in ITM 20 for RHEL 8.9, although it's a bit late in
the process.  Let's see what QE want to do.

--- Additional comment from YongkuiGuo on 2023-06-28 12:31:02 UTC ---

Thanks xiaodai for reproducing this issue.

Comment 1 YongkuiGuo 2023-07-03 10:07:15 UTC
Tested with the following package:
virt-what-1.25-5.el9.x86_64

Steps:

1. Install OCP 4.13 in a VM and launch a container registry.access.redhat.com/ubi9/ubi-init:latest

sh-5.1# cat /etc/redhat-release 
Red Hat Enterprise Linux release 9.2 (Plow)
sh-5.1# rpm -q virt-what
virt-what-1.25-5.el9.x86_64
sh-5.1# virt-what
crio
kvm

The 'crio' is printed as expected.