deislabs / containerd-wasm-shims

containerd shims for running WebAssembly workloads in Kubernetes
Apache License 2.0
311 stars 48 forks source link

getting "mismatched image rootfs and manifest layers" error #191

Closed michelleN closed 11 months ago

michelleN commented 11 months ago

I used spin new -> build -> registry push to get this image and used the same manifest as is in the readme (just swapping out the image). Has anyone seen this error before?

8s  Warning   Failed  Pod/wasm-spin-bb58f6ff7-ddgnf    Failed to pull image "michellenoorali/spin-hello-world:0.2.0":
failed to pull and unpack image "docker.io/michellenoorali/spin-hello-world:0.2.0":
failed to unpack image on snapshotter overlayfs: mismatched image rootfs and manifest layers
jsturtevant commented 11 months ago

what version of containerd are you using? The OCI support requires 1.7.7+ and 1.6.25+: https://github.com/containerd/runwasi#demo-4-using-oci-images-with-custom-wasm-layers

michelleN commented 11 months ago

containerd containerd.io 1.6.24 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523

That makes sense! I'm using 1.6.24

michelleN commented 11 months ago

On second thought, the image in the readme worked but my image doesn't so I'm not sure it's related to containerd version.

jsturtevant commented 11 months ago

that adds up, the image in the readme ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest is a docker image (with file layers). The spin registry push containers layers that are wasm modules. Containerd 1.7.7+ and 1.6.25+, support passing the wasm layers to shim.

regctl manifest get ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest
Name:        ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest
MediaType:   application/vnd.docker.distribution.manifest.v2+json
Digest:      sha256:221265a115e546def1456129f6c198f9081e4ab2c13a6140ea922b9713a08312
Total Size:  517.814kB

Config:
  Digest:    sha256:3bdd29c8927f1c6b466d647d14e4b68a7cfe804979cb8dfffee35cbf862e36d1
  MediaType: application/vnd.docker.container.image.v1+json
  Size:      926B

Layers:

  Digest:    sha256:032342d286f3e92020292fce0c0d18a51ee74dce9a284e5689298e782d4b9683
  MediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
  Size:      73008B

  Digest:    sha256:a4aba4465d1dad90f644a7aed51519e7e31766199fec980bff391fb194b78082
  MediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
  Size:      297B

  Digest:    sha256:8f6c8af1ac07843b9d2f5ec2b4d4cd651d49ed3922d97b1aad04feeb63770db6
  MediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
  Size:      444.509kB

vs

regctl manifest get jsturtevant/spin-wasm-shim:latest-2.0
Name:        jsturtevant/spin-wasm-shim:latest-2.0
MediaType:   application/vnd.oci.image.manifest.v1+json
Digest:      sha256:e229d347cc81c1765d0380b13e9833f316a7d8f0bea008362f88040f76e3ebc5
Total Size:  839.863kB

Config:
  Digest:    sha256:aabedf0b094944b344cecbffcfa0a9172e905a5d156bdf67c4c6cbb6d27d1d92
  MediaType: application/vnd.oci.image.config.v1+json
  Size:      78B

Layers:

  Digest:    sha256:499237ead273693b70fb4110b179226fe857efb6da0865fd8f8c98437f8c4467
  MediaType: application/vnd.wasm.content.layer.v1+wasm
  Size:      146.992kB

  Digest:    sha256:270f42cf04ef6dd5b5d223d14bf9a6c703f1f0df7dded6db897997006fa2ca26
  MediaType: application/vnd.wasm.content.layer.v1+wasm
  Size:      692.031kB

  Digest:    sha256:93ee26094f453e2ef31fd8ed27a9561fd168063141dd6a19dc735d89ed903c97
  MediaType: application/vnd.fermyon.spin.application.v1+config
  Size:      840B
michelleN commented 11 months ago

Thank you so much for the helpful explanation @jsturtevant !