Skip to content

Implement behaviors for OCI URI #175

Open
@jgchn

Description

@jgchn

Is your feature request related to a problem? Please describe.
Currently, the oci://... uri behavior is not supported.

Describe the solution approach you'd like
Consider the following sub-fields in an MSVC

 modelArtifacts:
    # Example: oci://quay.io/crio/artifact:v1/path/to/model
    uri: "oci://<complete image identifier including tag>::/path/to/model"
    # OCIs can have pull secrets, not supported ATM
    # authSecretName(s): mytokens
containers:
    - name: vllm
      args:
      # {{ .CompleteModelPath }} = mountPath + /path/to/model
      - "{{ .CompleteModelPath }}"
      mountModelVolume: true

The pod-spec generated out of msvc should look like this.

containers:
    - name: vllm
      args:
      - "{{ .CompleteModelPath }}"
      volumeMounts:
      - mountPath: /model-cache # this must always be the model-storage mountPath for oci:// URIs.
         name: model-storage
    volumes:
    - name: model-storage
      image:
        reference: <complete image identifier including tag>

Note that the msvc resource specs (of which the above is a snippet) get mergo merged as usual into the baseconfig specs.


Behind the scenes:

The .mountModelVolume: true should induce the following behavior for the msvc generated deployment specs (this is even before the baseconfig merges).

  1. Creates a volume (model-storage) in the podSpec to pull from an image reference
  2. Adds volumeMounts the container where .mountModelVolume is true
  3. Exports {{ .CompleteModelPath }} as mountPath (hardcoded to oci-dir) + path/to/model (from URI)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions