Skip to content

Feat/inject missing annot in shim#565

Draft
jiwahn wants to merge 5 commits intourunc-dev:mainfrom
jiwahn:feat/inject-missing-annot-in-shim
Draft

Feat/inject missing annot in shim#565
jiwahn wants to merge 5 commits intourunc-dev:mainfrom
jiwahn:feat/inject-missing-annot-in-shim

Conversation

@jiwahn
Copy link
Copy Markdown
Contributor

@jiwahn jiwahn commented Apr 17, 2026

Description

  • Add pre-processing logic in the urunc shim before TaskService.Create
  • Query containerd for manifest annotations and patch config.json before starting urunc

Related issues

How was this tested?

  1. Prepare OCI Image with manifest annotationㄴ which starts with com.urnc.unikernel
  2. Run a container
  3. Check config.json if annotations exists
╰─$ sudo ctr content get  sha256:2ec26de37d93716a87c7d8c82f9f78b14a9de69c7f40f318e10b937e16a277f2 | jq
WARN[0000] DEPRECATION: The `mirrors` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.1. Use `config_path` instead.
WARN[0000] DEPRECATION: The `configs` property of `[plugins."io.containerd.grpc.v1.cri".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.1. Use `config_path` instead.
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.manifest.v1+json",
  "config": {
    "mediaType": "application/vnd.oci.image.config.v1+json",
    "digest": "sha256:8e44a687f2d52cecc211229a966559e279d6122d46a7d3e1a3e5661f20e016f8",
    "size": 1054
  },
  "layers": [
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:7319607d119c259e90382101fb3ed98ad62e29ed817338183b3775dcfb358140",
      "size": 3731518
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:3f1424bd4cc5d97c8f0d56294cc2b4ff75f0224203b7adc26f736e7c3fb1bbe4",
      "size": 321
    }
  ],
  "annotations": {
    "com.docker.official-images.bashbrew.arch": "amd64",
    "com.urunc.unikernel.binary": "/unikernel/nginx",
    "com.urunc.unikernel.hypervisor": "qemu",
    "com.urunc.unikernel.unikernelType": "unikraft",
    "org.opencontainers.image.base.digest": "sha256:b0cb30c51c47cdfde647364301758b14c335dea2fddc9490d4f007d67ecb2538",
    "org.opencontainers.image.base.name": "docker.io/library/alpine:3.20",
    "org.opencontainers.image.created": "2026-01-28T01:18:13Z",
    "org.opencontainers.image.revision": "b3f87708e5052e29737a251b2e9865e182dafe0c",
    "org.opencontainers.image.source": "https://github.com/alpinelinux/docker-alpine.git#b3f87708e5052e29737a251b2e9865e182dafe0c:x86_64",
    "org.opencontainers.image.url": "https://hub.docker.com/_/alpine",
    "org.opencontainers.image.version": "3.20.9"
  }
}
sudo ctr container create   --runtime io.containerd.urunc.v2   localhost:5000/test-urunc-annot:latest   test-urunc
sudo ctr task start test-urunc

LLM usage

GPT-5.4

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 17, 2026

Deploy Preview for urunc canceled.

Name Link
🔨 Latest commit 0f1f5eb
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/69f1cab286e0070008c88979

@jiwahn jiwahn force-pushed the feat/inject-missing-annot-in-shim branch 2 times, most recently from 373aeac to 6e6b4bd Compare April 23, 2026 10:26
jiwahn added 3 commits April 24, 2026 14:05
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
@jiwahn jiwahn force-pushed the feat/inject-missing-annot-in-shim branch from d7e4edb to 8057742 Compare April 24, 2026 05:05
jiwahn added 2 commits April 29, 2026 16:42
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Investigate unreachable image annotations

1 participant