-
Notifications
You must be signed in to change notification settings - Fork 58
Support firmware and NVRAM options for UEFI architectures #213
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add support to specify firmware and NVRAM file for UEFI architectures like aarch64. This is very similar to what is done in the terraform-provider repo [1]. This will allow for these options to be specified in the terraform files in the openshift installer and enable libvirt machine creation. [1] dmacvicar/terraform-provider-libvirt@44a504b
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
@praveenkumar @cfergeau some context here - we are working on enabling ARM support in the near future, so this would be needed. I have tested this with relevant changes to the installer code on an aarch64 system. |
spice graphics is not supported for yet another arch
|
/test e2e-libvirt |
|
/retest |
cfergeau
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My understanding is that libvirt will be able to pick up a suitable default for firmware/nvram most of the time, even on aarch64? But I'll admit I'm not familiar with aarch64 virt :) Can you describe a bit more the issue this is solving? What would be using this libvirt aarch64 support? Baremetal deployments? Or just testing envs?
So, the As for the problem we are solving - there will be three deployments of ARM:
Right now we are using a UPI solution for libvirt which is cumbersome to setup and test deploys quickly. Which is why it would be good to have IPI support - mainly for quick testing and a lightweight CI solution. But for now the purpose is just dev envs. |
| // Same case for PowerPC systems as well | ||
| if !strings.HasPrefix(arch, "s390") && !strings.HasPrefix(arch, "ppc64") { | ||
| switch arch { | ||
| case "s390", "s390x", "ppc64", "ppc64le", "aarch64": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On which architectures is SPICE supported? I'm wondering if this shouldn't be changed so that new architectures don't need to continually be added here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i thought it's better to blacklist so we don't miss any arches. https://www.spice-space.org/faq.html claims support for arm, but libvirt still threw an error saying SPICE graphics is not supported for qemu, so not sure about that.
But yes - this is not ideal - maybe it would be better to just enable it for x86_64. @cfergeau thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You have upstream support, and Red Hat support, which can be different things. On RHEL, I see that it's built for x86_64 and aarch64. I think there has been work to make spice support optional, so it may depend on which packages are installed.
Since we also add a console device just before the spice graphics element, it's probably fine to only add it on x86_64 for now. If the console is not enough for debugging purposes, in the future, we can add a vnc graphics element on platforms where spice is disabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yup..so looks like qemu-kvm in RHEL is not compiled with spice for non-x86..just looked at the spec file in the rpm:
%ifarch x86_64
%global kvm_target x86_64
%else
%global have_spice 0
%global have_opengl 0
%global have_gluster 0
i can put a request to have it enabled for aarch64, but in the meanwhile i think I will change the conditional here to only support it only for x86.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i will open a separate PR for this
I'm wondering if |
|
/lgtm |
For aarch64, we need to specify the firmware to be efi so the loader and the nvram is correctly populated with the appropriate files for machine creation. This actually started in openshift#213 similar to what was done in the terraform provider, but the newer libvirt-go-xml libraries support setting of this attribute making things easier
Yes! thanks for this suggestion. Turns out the firmware attribute is supported in newer libvirt libraries. I tested out and it works well. I have opened #214. If you think those changes are good i will close this PR. |
Add support to specify firmware and NVRAM file for UEFI architectures like aarch64. This is very similar to what is done
in the terraform-provider repo [1]. This will allow for these options to be specified in the terraform files in the openshift
installer and enable libvirt machine creation.
[1] dmacvicar/terraform-provider-libvirt@44a504b