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

[feature] support docker load semantics for hauler bundles #276

Closed
dweomer opened this issue Jul 26, 2024 · 2 comments · Fixed by #320
Closed

[feature] support docker load semantics for hauler bundles #276

dweomer opened this issue Jul 26, 2024 · 2 comments · Fixed by #320
Labels
enhancement New feature or request size/M Denotes an issue/PR requiring a relatively moderate amount of work
Milestone

Comments

@dweomer
Copy link
Contributor

dweomer commented Jul 26, 2024

Is this RFE related to an Existing Problem? If so, please describe:

RKE2 assumes a manifest.json at the top level of the tarball for the rke2-runtime image via rancher/wharfie. For all other images, RKE2 (and k3s) seem to have no issue importing our oci-layout tarballs. We could lobby to have wharfie be more accepting but I think it behooves us to render a manifest.json at the top of our hauler store, which is in oci-layout, which will enable /var/lib/rancher/rke2/agent/images drop-ins straight from hauler for the RKE2 bootstrap image (rke2-runtime). Moreover, this should enable docker load of uncompressed hauler tarballs.

Describe Proposed Solution(s):

Render entries in ${hauler-store}/manifest.json for every platform of every container image in the store, aka, "name", "config", "layer(s)". For example, here is the manifest.json created by ctr image export for the RKE2 v1.28.11+rke2r1 rancher/rke2-runtime image for the linux/amd64 platform:

[
  {
    "Config": "blobs/sha256/6fcb0bf266887eaeaf3c3fa09d28a760b694c82ecf0382fd6e3becbe3ef1abf6",
    "RepoTags": [
      "rancher/rke2-runtime:v1.28.11-rke2r1"
    ],
    "Layers": [
      "blobs/sha256/9985469ebb41c51e0d1c59c8dfccaefc225b6615d911da001c9734d6e17b4014"
    ]
  }
]

Describe Possible Alternatives:

  • Push rancher/wharfie to be more compatible with what containerd's ctr image import currently accepts.

Additional Context:

It should be pretty easy to validate that our solution is working correctly, and hence will work within RKE2, by running wharfie in docker container with network=none, e.g.:

# where ./images/ is a directory containing the hauler tarball containing `rancher/rke2-runtime` content
docker run --rm -it --network=none -v ./images:/images dweomer/wharfie:v0.6.6-amd64 --images-dir /images rancher/rke2-runtime:v1.28.11-rke2r1 /root

But also, too:

docker image load haul.tar # after uncompressing via zstd -d
@dweomer dweomer added the enhancement New feature or request label Jul 26, 2024
@dweomer dweomer added this to the Hauler v1.1.0 milestone Jul 26, 2024
@zackbradys zackbradys added the size/M Denotes an issue/PR requiring a relatively moderate amount of work label Jul 31, 2024
@zackbradys
Copy link
Member

Hey @dweomer, are you still intending to submit a PR for this for v1.1.0?

@zackbradys
Copy link
Member

Hey @dweomer, checking back on the status of this!

@dweomer dweomer modified the milestones: Hauler v1.1.x, Hauler v1.1.0 Sep 10, 2024
dweomer added a commit to dweomer/hauler that referenced this issue Sep 13, 2024
- fixes hauler-dev#276

Signed-off-by: Jacob Blain Christen <jacob.blain.christen@ranchergovernment.com>
dweomer added a commit to dweomer/hauler that referenced this issue Sep 13, 2024
- fixes hauler-dev#276

Signed-off-by: Jacob Blain Christen <jacob.blain.christen@ranchergovernment.com>
dweomer added a commit to dweomer/hauler that referenced this issue Sep 16, 2024
- fixes hauler-dev#276

Signed-off-by: Jacob Blain Christen <jacob.blain.christen@ranchergovernment.com>
dweomer added a commit to dweomer/hauler that referenced this issue Sep 16, 2024
- fixes hauler-dev#276

Signed-off-by: Jacob Blain Christen <jacob.blain.christen@ranchergovernment.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request size/M Denotes an issue/PR requiring a relatively moderate amount of work
Projects
Status: Resolved
Development

Successfully merging a pull request may close this issue.

2 participants