agent-platform release v4.37.0
Added
- Models as OCI images: a registry override for
oci:// presets and pre-pull of the named presets’ images on the serving nodes (giantswarm/agent-platform#551). A preset’s weights came from Hugging Face into the cache claim, and the claim binds one node (a local volume) or one zone (a cloud disk): a model served only where the claim was, every other GPU node or zone downloaded it again, and nothing verified what arrived. KServe’s modelcar path — spec.model.storageUri: oci://<registry>/<path>[:tag|@digest], the model as an OCI image containerd pulls onto the node’s local disk, no storage-initializer, no claim — was admitted by the preset schema and left alone by the cache redirect rule, but nothing pointed a preset’s image at an installation’s registry and the pre-pull DaemonSet knew only runtime images. modelServing.modelImages.registry (empty: references as written) swaps the registry host of every oci:// preset at render, a shipped preset’s and a values preset’s alike — the segment before the first /, the path, tag or digest kept — inside the preset resolution, so the preset ConfigMap, the pre-pull DaemonSet and every consumer read one value; hf:// presets are untouched; a registry with a scheme or a path, and an oci:// reference without a host, fail the render naming it. The discovery ConfigMap publishes the host as spec.modelImages.registry. modelServing.prepull.modelPresets names the presets whose images join the pre-pull DaemonSet’s init containers after the runtime images — pull-model-<preset> on the published reference minus oci://, /bin/true (a modelcar image is busybox-based), the runtime init containers’ security context and resources — so every serving node holds the weights before the first serve and the running pause pod keeps the image against the node’s image garbage collection; a name that is not a published preset, is not oci:// or is listed twice fails the render naming it. The meta chart mirrors both blocks (make verify-meta holds every leaf equal); make verify-model-images (new, in verify-all) holds the rewrite over the fixture ci/test-model-serving-oci-values.yaml (an oci:// and an hf:// values preset, every shipped preset by its own scheme, an empty registry as written, a digest kept), the init containers, the guards and the meta chart’s forwarded render; make verify-model-serving-policies holds the pod with a model init container to the fleet’s restricted PSS with no exception. README: “Models as OCI images” — the modelcar contract (/models in a busybox-based image, the runtime’s uid and the /tmp paths an OCI preset sets, what the cache redirect does not do for these pods).