feat : Add support for IncludeOS#619
Conversation
Signed-off-by: shivansh-source <shivanshsiddhi1234@gmail.com>
✅ Deploy Preview for urunc ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
@cmainas PTAL at the approach then i will move forward |
|
Hello @shivansh-source , if a PR is WIP then you can mark it as draft. The approach is the same for all guests in urunc. The important thing is to test it. Please take a look at #540 and use it a as a guide. |
Signed-off-by: shivansh-source <shivanshsiddhi1234@gmail.com>
Signed-off-by: shivansh-source <shivanshsiddhi1234@gmail.com>
|
@cmainas tested and added proper testing methods . ready for review |
|
/cc @cmainas |
|
Hello @shivansh-source , please read the contribution guide. Have you also tested networking? |
Signed-off-by: shivansh-source <shivanshsiddhi1234@gmail.com>
|
/cc @cmainas the network is tested also working mentioned in the description with the image and github repo mentioned . |
|
Hello @shivansh-source , please correct me, but as I can see you run the container with ctr and no networking. How do you test networking if there is no network in the container? You can just run it with docker, no reason to import it in containerd. Also, why the PR template has been removed? |
|
@cmainas i tested this pr in 2 different ways : |
|
really sorry about the pr description i made it really confusing . |
|
Hello @shivansh-source , in your docker test it seems you do not specify urunc as a runtime. |
|
@cmainas yes . you are right .I've now tested IncludeOS directly with the urunc runtime using containerd and ctr. |
|
Sure, but we should also test it with networking. |
@cmainas i tested it with docker which make the networking also with urunc as a runtime
|



Description
This PR adds comprehensive support for IncludeOS, a unikernel framework written in C++ designed for building web and cloud applications, to the urunc container runtime. IncludeOS can execute on top of both
solo5(hvt/spt) andqemuhypervisors, making it a natural addition to urunc's growing unikernel ecosystem.Changes Made
pkg/unikontainers/unikernels/includeos.go - Core IncludeOS unikernel implementation with full
Unikernelinterface supportpkg/unikontainers/unikernels/unikernel.go - Factory pattern integration for IncludeOS unikernel type registration
tests/e2e/test_cases.go - Added Qemu-includeos and Hvt-includeos test cases
docs/index.md - Updated support matrix to include IncludeOS
docs/unikernel-support.md - Full IncludeOS documentation and usage guide
docs/hypervisor-support.md - Added IncludeOS hypervisor reference and compatibility matrix
docs/Sample-images.md - Added sample image documentation with building and deployment instructions
README.md - Added IncludeOS to supported platforms table
Related issues
How was this tested?
Built IncludeOS applications using CMake and packaged as Docker containers with urunc labels to test both networking and non-networking scenarios.
Test Repository: https://github.com/shivansh-source/includeos-sample
Container Images Used:
shivansh1111/includeos-sample:latest(simple "Hello, world!" application)shivansh1111/includeos-http-server:latest(HTTP server with networking)Test Approach 1: Without Networking (Basic Application)
output
Hello, world!Verified:
Test Approach 2: With Networking (HTTP Server)
Verified:
E2E Test Coverage
make test_dockerDocker Images Available:
shivansh1111/includeos-sample:latest- https://hub.docker.com/r/shivansh1111/includeos-sampleshivansh1111/includeos-http-server:latest- https://hub.docker.com/r/shivansh1111/includeos-http-serverLLM usage
N/A
Checklist
make lint)make test_docker)