Skip to content

Instantly share code, notes, and snippets.

@jeesmon
Created February 28, 2022 14:20
Show Gist options
  • Select an option

  • Save jeesmon/14099ff5cffddd98ab4dd4ba3a7b69c5 to your computer and use it in GitHub Desktop.

Select an option

Save jeesmon/14099ff5cffddd98ab4dd4ba3a7b69c5 to your computer and use it in GitHub Desktop.

ROKS clusters use RHEL 7.x hosts instead of RHCOS in a standard OCP install. Also, ROKS uses Calico overlay network instead of default OpenShiftSDN. These two changes cause trouble for OpenShift Container Native Virtualization (CNV) on ROKS.

[1] RHEL 7.x doesn’t support q35 machine types. It is the supported machine type in CNV. For CNV to work in ROKS, we need to use legacy i440fx machine types. Support for legacy machine types are not enabled by default in CNV. We need to explicitly enable it in CNV.

oc -n openshift-cnv edit cm kubevirt-config

# Add the following under data

emulated-machines: pc-q35*,pc-i440fx-*

[2] ROKS cluster doesn’t support pod network masquerade for CNV as it is using Calico. So we need to use bridge interface for VM pods for inter-service communication.

[3] bridge interface is not supported for OpenShift Service Mesh (OSSM) in CNV. So we need to use yet another un-supported slirp interface to work with OSSM. slirp is not enabled by default in CNV.

oc -n openshift-cnv edit cm kubevirt-config

# Add the following under data

permitSlirpInterface: "true"

More details:

[1] kubevirt/kubevirt#2762 (comment) [2] kubevirt/kubevirt#2942 [3] https://kubevirt.io/user-guide/virtual_machines/istio_service_mesh/#limitations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment