Skip to content
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

feat(run): enable running LLB images #750

Draft
wants to merge 2 commits into
base: staging
Choose a base branch
from

Commits on Aug 28, 2023

  1. refactor(packmanager): streamline package manager initialization

    Create a singleton for the umbrella package manager and use it instead
    of global package-scoped maps. Use more dependency injection.
    
    Move the scattered init() calls to RegisterPackageManager into one
    place. Create a bootstrap package for handling flag/zip registration.
    
    Use the bootstrapping package in main(). Propagate errors up and report
    them if initialization fails.
    
    This should make things a bit more testable in the future.
    
    GitHub-Fixes: unikraft#425
    
    Signed-off-by: Jakub Ciolek <jakub@ciolek.dev>
    jake-ciolek committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    d4d0537 View commit details
    Browse the repository at this point in the history
  2. feat(run): Enable running LLB-built docker images

    WIP
    
    This introduces a `dockerImage` package to run docker images
    containing a unikernel built with the LLB plugin.
    
    The hello world target runs successfully.
    
    A new package manager, "docker", has been added.
    If the target OCI image is missing, this package manager
    searches for it.
    
    There's an ongoing discussion about how to handle image references,
    especially when an image could be in both local/remote OCI storage
    and local docker storage.
    
    Currently, the process first checks the OCI storage and then Docker.
    
    In case of conflicts, the user might need to choose.
    
    To-Do:
    
    - Fix targets that don't build due to missing dependencies or artifact
      naming issues.
    - Provide architecture/platform info via image, as Docker doesn't
      support non-standard OS like qemu.
    - Consider support for remote docker registries.
    - Refactor some interfaces; we could make some of them smaller and avoid
      the "not implemented" errors.
    - Explore testing approaches for this functionality.
    
    Signed-off-by: Jakub Ciolek <jakub@ciolek.dev>
    jake-ciolek committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    8b3c470 View commit details
    Browse the repository at this point in the history