Kubernetes
The Kubernetes provider maps one durable replica intent to either aDeployment plus Service, or
one standard KServe InferenceService. Kubernetes owns scheduling and Pods. InferCrane owns revision
lifecycle, rollout policy, routing membership, evidence, and deletion of its exact labeled resources.
Choose the workload API
InferCrane does not create child Pods directly. It does not install KServe, Gateway API, a GPU device
plugin, model storage, or a Kubernetes distribution.
Bootstrap a namespace
Review the manifests before applying them:Configure the control plane
kubectl; it never relies on or changes the current context.
Validate the Kubernetes API, optional KServe CRD, and every required namespaced permission without
creating a workload:
Deploy
The GPU value maps to the configured product-label value. It is never silently substituted.infercrane-provider-v1 field manager. InferCrane does not use --force-conflicts; ownership drift
fails visibly. A lost apply response is safe to retry because resource names and ownership metadata
derive from the durable replica key.
KServe Standard mode
Install and operate a compatible KServe release separately, applydeploy/kubernetes/kserve/provider-rbac.yaml, then set:
InferenceService API and required permissions during doctor. KServe
owns generated Deployments, Services, and Pods; InferCrane inventories and deletes only the parent
InferenceService. Raw KServe condition metadata remains available through infercrane inspect.
KServe LLMInferenceService, llm-d, and Dynamo are not enabled because each can own routing,
scheduling, or disaggregation. They require a future explicit ownership contract rather than a hidden
second router.
Expose the logical endpoint
deploy/kubernetes/gateway-api/httproute.yaml is an optional placeholder. Replace the Gateway and
hostname, then apply it only if your cluster already has Gateway API and a controller. It routes to
the InferCrane gateway—not directly to revisions or workers—so safe rollout ownership stays singular.