Gadgets as OCI artifacts

    Intro TODO

    Specifications

    The Open Container Initiative defines the Image Format Specification . This specification was initially defined for container images but it is extended to store other artifacts, see Guidance for Artifacts Authors .

    Architectures

    Inspektor Gadget supports multi architecture artifacts. The following architectures are supported:

    • amd64
    • arm64

    Gadget metadata

    Media type: application/vnd.gadget.config.v1+yaml

    The content has the type GadgetMetadata struct . It is a work in progress.

    Image layers and media types

    Each architecture can contain several layers, but each layer must have a different media type among the following:

    • application/vnd.gadget.ebpf.program.v1+binary
    • application/vnd.gadget.wasm.program.v1+binary

    The ebpf layer

    There must be exactly one layer with the ebpf media type. It must not be empty. Its content must be a valid ELF file.

    The wasm layer

    There must be at most one layer with the wasm media type. If present, it must not be empty and it must be a valid wasm file.

    Image annotations

    OCI images can have annotations at different levels:

    • index
    • manifest
    • config
    • layer

    Inspektor Gadget automatically adds the following annotations at the manifest and config levels:

    • org.opencontainers.image.*: defined by OCI Image Format
      • title
      • description
      • url
      • documentation
      • source
      • created