Skip to main content
Configure the chart with a values file (-f my-values.yaml) rather than --set flags — it’s reproducible and reviewable, and the chart validates it against a bundled values.schema.json at parse time (typos and wrong types fail fast). To see every key with its live default:
Pin explicit image tags in your values file — never latest. With imagePullPolicy: IfNotPresent, a node that cached an image under a mutable tag keeps the stale copy. Pin the chart (--version 0.5.3) and the runtime image (v0.5.3 or an explicit nightly). By default the operator image tag follows the chart appVersion, but you can still override it with operator.image.tag. See the Compatibility Matrix for the validated version tuple.

Top level

operator — controller-manager

webhook — pod-mutating webhook

The webhook patches opted-in vLLM pods at admission, and is a prerequisite for cacheBlend.enabled.
The chart registers the CacheBlend injector only (lmcache.ai/cacheblend-inject). The operator also serves an LMCache connection injector (lmcache.ai/lmcache-inject), but the chart does not register it, so that label has no effect on a chart install — wire those pods by hand per Modify an Existing Deployment.

engine — the LMCacheEngine CR

engine.spec is a passthrough to the LMCacheEngine CRD, so its full surface is defined by the CRD — not the chart. The fields below have no chart default: leave one out and the operator’s own default applies. Inspect the live schema with kubectl explain lmcacheengine.spec once the CRD is installed.

openshift — privileged SCC for hostIPC

coordinator — the LMCacheCoordinator CR

Override only to tune a specific knob — replicas, port, instanceTimeout, evictionRatio, triggerWatermark, logLevel, resourceOverrides.

cacheBlend — the CacheBlendEngine CR

cacheBlend.spec accepts the same passthrough fields as engine.spec, plus CacheBlend-only ones: blend.{checkLayer,recompRatio} (how much KV is recomputed rather than reused), injection.{payloadImage,imagePullSecrets,cudagraph} (what the webhook injects into opt-in vLLM pods), and server.chunkSize, which is fixed at 256 for CacheBlend — it must equal vLLM’s --block-size 64 × 4. cacheBlend.spec.injection.payloadImage is the private plugin init-container image and is required for injection to happen at all — set it together with a pull secret that exists in the vLLM pod’s namespace. See CacheBlend and examples/values-cacheblend.yaml.

observability — OTel Collector, metrics, traces

preDelete and tests

Example overlays

The chart repo ships ready-to-use overlays under examples/:

Minimal (Kubernetes)

my-values.yaml

OpenShift

values-openshift.yaml

Observability (metrics + traces to a local Tempo)

values-observability.yaml
Apply any of these with:

Next steps

Architecture

What each value deploys, and which resources are cluster-scoped.

Install with Helm

The install/upgrade/uninstall flow.