Repository navigation
kserve: llm-d only — the classic InferenceService kind and servingKind removed #134
Description
Problem
The kserve backend composed two object kinds — a classic InferenceService and an LLMInferenceService — behind a kserve.servingKind knob whose auto picked the llm-d kind wherever its CRDs existed, controller or not (#129). Two composers meant two preset grammars, two status parsers and a chart value selecting a path the platform serves through nowhere.
Solution
Shipped in model-manager 1.0.0 (#137): the backend composes, lists, stops and deletes LLMInferenceServices (serving.kserve.io/v1alpha2, KServe's llm-d control plane) and nothing else. Removed with the classic kind: the chart values kserve.servingKind and kserve.runtime (the kserve block's schema rejects them), the flags --kserve-serving-kind / --kserve-runtime, a preset's spec.runtime and spec.predictor, the API's preset field runtime and the loaded-model kind value InferenceService, and the discovery document's spec.runtime, spec.deploymentStrategyType and spec.timeoutSeconds (ignored when a chart still publishes them). load_model fails fast where no llm-d control plane would reconcile the object (#129). The chart's kserve Role reads and writes llminferenceservices; its ClusterRole reads llminferenceserviceconfigs. The download Job's kserve.download.image stays on docker.io/kserve/storage-initializer:v0.20.0 until the gsoci copy resolves (giantswarm/retagger#1227).
Upgrade: an installation serving through llm-d with servingKind unset needs no action; one pinning kserve.servingKind: InferenceService drops the pin and moves to llm-d (the platform's kserve-llmisvc-crd, kserve-llmisvc-resources, kserve-runtime-configs components) before it takes 1.0.0. The platform chart's side is giantswarm/agent-platform#574.
Acceptance criteria
-
grep -rn 'InferenceService\b\|servingKind\|composeClassic' internal/ helm/ api/ docs/finds onlyLLMInferenceService(the test fixturetestdata/llmisvc/presets.yaml, a copy of the chart's published presets, keeps the chart's comment until the chart dropsruntime) — feat(kserve)!: remove the classic InferenceService kind; load_model fails fast without the llm-d control plane (#134) (#129) #137. -
load_modelagainst a cluster without the llmisvc controller returns an error naming the missing controller within the tool deadline; no object is left behind — feat(kserve)!: remove the classic InferenceService kind; load_model fails fast without the llm-d control plane (#134) (#129) #137,TestLoadFailsFastWithoutTheLLMDControlPlane. - Unit tests cover the composer and the failure; the agentlab proof loads a shipped preset on llm-d — feat(kserve)!: remove the classic InferenceService kind; load_model fails fast without the llm-d control plane (#134) (#129) #137 (comment).
- kserve: load_model fails fast when the llm-d controller is not installed #129 closed by this change.
Related
Sibling issues of the same change (one serving path, every image from gsoci, all signed): giantswarm/agent-platform#574, giantswarm/agent-platform#575, giantswarm/agent-platform#554, giantswarm/agentlab#221, giantswarm/kserve#80, giantswarm/kserve#81, giantswarm/retagger#1227, giantswarm/vllm#66, giantswarm/llm-d#17. Epic: giantswarm/giantswarm#37853.
Activity
feat(kserve): remove the classic InferenceService kind; load_model fa…
feat(kserve): remove the classic InferenceService kind; load_model fa…
feat(kserve): remove the classic InferenceService kind; load_model fa…
feat(kserve)!: remove the classic InferenceService kind; load_model f…
[-]kserve: remove the classic InferenceService kind and servingKind — llm-d only[/-][+]kserve: llm-d only — the classic InferenceService kind and servingKind removed[/+]feat(agent-platform): serving is model-manager's load_model and the K…
feat(agent-platform): serving is model-manager's load_model and the K…