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

Integrate the PuzzleFS image into the OCI image specification #128

Merged

Commits on Sep 15, 2024

  1. Integrate the PuzzleFS image into the OCI image specification

    Previously, the OCI Image Index contained a list of manifests which were
    referencing the PuzzleFS rootfs image, i.e. the metadata of the PuzzleFS
    image in Capnproto format. Now the Image Index [1] references an Image
    Manifest [2] and the PuzzleFS image (the PuzzleFS rootfs image together
    with the file chunks) is embedded into the layers field of the Image
    Manifest.
    
    Where PuzzleFS diverges from the Image Manifest spec is in the layers
    definition: our layers are not self contained images and thus they do
    not stack. Instead, we have a rootfs layer which stores the PuzzleFS
    image rootfs and multiple file chunks which contain the actual data of
    the filesystem. No extraction step is performed. Instead, when mounting
    a PuzzleFS image, the filesystem is reconstructed from the PuzzleFS
    metadata and the file chunks, not unlike how squashfs/erofs archives are
    mounted directly.
    See the "Inspecting a puzzlefs image" section from the README for more
    details about the format.
    
    The image config is an empty descriptor [3] for now, but we don't store
    it in blobs/sha256, which causes `skopeo copy` to fail because it
    doesn't find the blob referenced by the empty descriptor in the data
    store. This will be addressed in a subsequent commit.
    
    See project-machine#55 for more context.
    
    [1] https://github.com/opencontainers/image-spec/blob/main/image-index.md
    [2] https://github.com/opencontainers/image-spec/blob/main/manifest.md
    [3] https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidance-for-an-empty-descriptor
    
    Signed-off-by: Ariel Miculas-Trif <[email protected]>
    ariel-miculas committed Sep 15, 2024
    Configuration menu
    Copy the full SHA
    4f4866d View commit details
    Browse the repository at this point in the history