feat(monitor): add initial support for embedded hyperlight VMM (#140) - #632
feat(monitor): add initial support for embedded hyperlight VMM (#140)#632imshubham22apr-gif wants to merge 5 commits into
Conversation
✅ Deploy Preview for urunc ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hello @imshubham22apr-gif , the testing methods you provide in the description are not sufficient. Please run an end-to-end test targeting hyperlight. Also please read the contribution guide. |
Update on E2E Testing :- I have successfully set up the environment with Docker, containerd, nerdctl, and crictl. Unit Tests :- Passed successfully. Logs for reference :- Unit Tests: PASS :- TestHyperlightBuildExecCmd |
|
Well, you will need to replace the image reference with one that you have created and used for testing. |
|
Hey @imshubham22apr-gif, @cmainas–just came across this. I'm Dan, a core Hyperlight maintainer. Hoping to unblock this, I made a urunc-ready With that, I also had to make some changes to this PR's code–available here: https://github.com/danbugs/urunc/compare/feat/issue-140-hyperlight-support. Minor changes, but it does shift the approach to treat Tested end-to-end with |
|
Hello @danbugs thank you for creating the image and for the explanation. It seems that for the embedded version we will need to perform some changes in urunc. The @imshubham22apr-gif would it be possible for you to integrate the changes of @danbugs ? We should also add the hello world as an end-to-end test. |
|
I have successfully integrated the changes proposed by @danbugs to transition Hyperlight to a host-level VMM model. I've also added the |
1bf75ef to
6c9f522
Compare
|
Thank you @imshubham22apr-gif , a few more things:
|
|
@imshubham22apr-gif are you still interested moving this forward? Recognize your probably busy but the hyperlight team would love to see this land 🚀 |
|
Hello @jsturtevant , we are interested and we want to push this PR forward. Ideally we would like to see the original author finalizing it, but unfortunately this has taken too long. Everything is there we just need an update of https://github.com/urunc-dev/urunc/blob/main/.github/contributors.yaml for our CI. I think I can edit it, so I will finalize it and merge. |
6c9f522 to
e109596
Compare
✅ Deploy Preview for urunc ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Add initial support for hyperlight-unikraft. For the time being, only a simple execution is supported without network or mounting host directories. Signed-off-by: danbugs <danilochiarlone@gmail.com> Signed-off-by: imshubham22apr-gif <imshubham.22apr@gmail.com>
Signed-off-by: Charalampos Mainas <charalampos.mainas@gmail.com>
Add a section for hyperlight-unikraft in the supported hypervisors mentioning the current status. Also, update other parts of the documentation accordingly. Signed-off-by: Charalampos Mainas <charalampos.mainas@gmail.com>
7f8e7b5 to
7c56a09
Compare
Signed-off-by: Charalampos Mainas <charalampos.mainas@gmail.com>
hyperlight-unikraft places the output of the guest in stderr and stdout remains empty. As a result, the matchTest for hyperlight-unikraft fails. As a quick and ugly workaround return both stdout and stderr unconditionally. We need to fix this in the future and return both stdout and stderr. The caller should handle them accordingly. Signed-off-by: Charalampos Mainas <charalampos.mainas@gmail.com>
This PR introduces initial support for the Hyperlight embedded VMM. Because Hyperlight is embedded directly within the application binary, this implementation avoids external process orchestration (like QEMU or Firecracker) and instead provides a lightweight monitor that executes the unikernel binary directly with its provided arguments.
Related issues
How was this tested?
pkg/unikontainers/hypervisors/hyperlight_test.goto verify that the execution command is correctly constructed both with and without additional command-line arguments.$env:GOOS='linux'; go build ./....go fmtandgo vetto ensure code quality and adherence to Go standards.LLM usage
Checklist
go vet).