Skip to main content

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.yaml
  • lumie-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 caBundle differences 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