OpenTelemetry Operator
The OpenTelemetry Operator installs and reconciles the OpenTelemetryCollector API used by Lumie's collector DaemonSet.
Source paths
lumie-infra/observability/opentelemetry-operator/argocd.yamllumie-infra/observability/opentelemetry-operator/helm-values.yaml
Runtime role
- installs operator deployment and CRDs in
opentelemetry-operator - enables webhook support
- publishes operator metrics through a ServiceMonitor
- provides the default collector image and Target Allocator image
Important behavior
- cert-manager integration is disabled for the operator's admission webhooks
- ArgoCD ignores
caBundledifferences on CRDs and webhooks because the serving cert is self-managed and rotates - auto-instrumentation is effectively off unless a namespace carries the label:
opentelemetry-auto-instrumentation: "enabled"
Lumie currently uses the operator mainly for collector lifecycle and Target Allocator support, not for broad auto-instrumentation rollout.
Failure modes
- If webhook certificates or CRD conversion drift without the existing ignore rules, ArgoCD can flap OutOfSync on every rotation.
- If the operator is down, the current collector keeps running, but CR updates and new collector reconciliation fail.
- If a team assumes auto-instrumentation is globally active, they may miss that the namespace selector prevents it unless explicitly opted in.
Verification
kubectl get applications.argoproj.io -n argocd opentelemetry-operator
kubectl get pods -n opentelemetry-operator
kubectl get crd | rg 'opentelemetry.io'
kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations | rg otel