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:
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
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 therke2-runtime
image via rancher/wharfie. For all other images, RKE2 (and k3s) seem to have no issue importing ouroci-layout
tarballs. We could lobby to have wharfie be more accepting but I think it behooves us to render amanifest.json
at the top of ourhauler store
, which is inoci-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 enabledocker 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 themanifest.json
created byctr image export
for the RKE2 v1.28.11+rke2r1rancher/rke2-runtime
image for thelinux/amd64
platform:Describe Possible Alternatives:
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.:
But also, too: