Skip to content

Add custom ClusterStorageContainer support #21

Description

@tartkri-bot

Problem

The provider ships the ClusterStorageContainer CRD but does not expose any way for users to define or reference custom storage initializer containers. By default, KServe uses its built-in storage initializer image, which works for s3://, gs://, hf://, pvc://, etc. However, teams often need:

  1. Custom download logic: A proprietary model registry, P2P model sync (e.g., Dragonfly, IPFS), or an internal artifact store not supported by the default initializer.
  2. Custom S3/GCS client: A hardened S3 client with specific CA certificates, proxy settings, or dual-stack endpoint configuration.
  3. Model decryption / verification: Decrypting encrypted model weights or verifying signatures during download.
  4. Caching layer: Using a local cache proxy (e.g., Squid, Nginx cache) to avoid repeated downloads.

A ClusterStorageContainer CRD allows administrators to register custom storage containers that can be referenced from InferenceService storage URIs.

Suggested approach

Option A (Provider-level): Add a Helm chart value and provider CRD / Instance parameter that lets users reference a custom ClusterStorageContainer by name.
Option B (Admin-level): Document how cluster admins can create ClusterStorageContainer CRs manually, and add a field to the predictor/LLM topology to select which storage container to use for this Instance.

For the provider itself, the minimal MVP is:

  • Add a storageContainer field to ModelServerCustomSpec and VllmCustomSpec.
  • When set, the provider adds the appropriate KServe annotation or storage spec to use the named ClusterStorageContainer.

Acceptance criteria

  • Predictor topology supports specifying a custom storageContainer name.
  • KServe uses the referenced ClusterStorageContainer for model download.
  • Provider validates that the referenced ClusterStorageContainer exists (optional — can also defer to KServe controller).
  • Documentation covers how to create and register custom storage containers.
  • Chainsaw tests cover custom storage container usage.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions