LMCacheEngine custom resources into a DaemonSet of LMCache
cache servers, stands up a fleet coordinator, and (when observability is enabled)
wires those engines to an OpenTelemetry Collector that fans metrics and traces out to
Prometheus and Tempo.
What gets created, and by whom
Every piece follows the same pattern: the chart writes a declaration (a CR); a controller reconciles it into a running thing. The chart runs exactly one controller itself — the operator. The Collector and Tempo are reconciled by operators you pre-install; the chart only submits their CRs. This table is the precise “which thing belongs where”:
The operator itself runs as a plain
Deployment (no CR needed) and owns the
engine DaemonSet’s lifecycle.
Data flow
See Observability for enabling and verifying this path.
Resources the chart creates
Everything the chart can render, with its scope. This is the table to consult before a cleanup, because cluster-scoped resources survive a namespace delete and must be removed explicitly.What a namespace delete leaves behind
If youkubectl delete namespace instead of helm uninstall, these cluster-scoped
resources orphan and need explicit cleanup:
- CRDs
lmcacheengines,lmcachecoordinators, andcacheblendengines(all.lmcache.lmcache.ai) - ClusterRole for the operator
- ClusterRoleBinding for the operator
LMCacheEngine finalizer first).
Next steps
Configuration
Every
values.yaml key and example overlays.Observability
The OTel Collector / Tempo / Prometheus wiring in detail.

