LMCacheEngine custom
resources into a DaemonSet of LMCache cache servers, 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 Tensormesh 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 Tensormesh 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.The three things a namespace delete leaves behind
If youkubectl delete namespace instead of helm uninstall, these cluster-scoped
resources orphan and need explicit cleanup:
- CRD
lmcacheengines.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.

