MODULE 4 · DAY 1
Packaging Models as OCI Artifacts
Ship a model like a container image — versioned, layered, registry-native
Gourav Shah · School of DevOps & AI · KitOps · ModelKit · ORAS
M4·01
What you'll learn
Why models belong in OCI registries — how to pack, push, and pull them.
M4·02
The problem with loose model files
Weights, prompt, config scattered — every receiver re-assembles by hand.
M4·03
A ModelKit is a sealed, labelled crate
One signed bundle — open it and the contents match the manifest exactly.
M4·04
An OCI artifact is a layered blob store
The same mechanism that stores container images stores anything.
M4·05
KitOps, ModelKit & ORAS
A CNCF stack: the format, the CLI, and the library every registry speaks.
M4·06
The Kitfile — your shipping manifest
A tiny YAML file; each field maps to one typed OCI layer.
M4·07
The lifecycle: pack → push → pull → run
From a workspace to a serving node — the registry is the hub.
M4·08
Selective pull — grab only what you need
A warehouse shelved by chapter: pull just the box you need.
M4·09
One artifact, every registry
Same kit push / unpack syntax — only the target reference changes.
M4·10
ModelKit / ORAS vs docker model package
Both pack a GGUF into an OCI artifact — scope is the difference.
M4·11
TO THE LAB
Ship your model like an image
Pack SmolLM2 + prompts, push, pull on a clean dir, then selective-pull.
Next up: Lab — Pack & Push a ModelKit with KitOps · Gourav Shah · School of DevOps & AI
M4·12