Feature request
Add OTel tracing to the entrypoint binary so each step's execution lifecycle is visible in traces. Currently the entrypoint has zero OTel support — no TracerProvider, no spans, no trace context propagation.
Use case
The gap between controller-side traces and actual step execution is the biggest blind spot in Tekton observability. Operators can see that a TaskRun was created but not how long each step waited, ran, or wrote results.
Implementation hints
pkg/entrypoint/entrypointer.go:
Go() (line 198) — top-level orchestrator, root entrypoint span
readResultsFromDisk() (line 437) — result extraction + SPIRE signing
applyStepResultSubstitutions() — runtime variable substitution
cmd/entrypoint/:
waiter.go:52 — Wait() polls for predecessor step completion
runner.go:73 — Run() executes user command via exec.CommandContext
post_writer.go:33 — Write() writes completion signal files
Prerequisites (large effort):
- Inject
TRACEPARENT/TRACESTATE env vars into step containers during pod construction (pkg/pod/pod.go)
- Initialize OTel TracerProvider in entrypoint main() with OTLP exporter
- Create child spans linking to the TaskRun reconciler's parent span
Tracked in umbrella #9701 as "Large effort."
Part of umbrella: #9701
Feature request
Add OTel tracing to the entrypoint binary so each step's execution lifecycle is visible in traces. Currently the entrypoint has zero OTel support — no TracerProvider, no spans, no trace context propagation.
Use case
The gap between controller-side traces and actual step execution is the biggest blind spot in Tekton observability. Operators can see that a TaskRun was created but not how long each step waited, ran, or wrote results.
Implementation hints
pkg/entrypoint/entrypointer.go:Go()(line 198) — top-level orchestrator, root entrypoint spanreadResultsFromDisk()(line 437) — result extraction + SPIRE signingapplyStepResultSubstitutions()— runtime variable substitutioncmd/entrypoint/:waiter.go:52—Wait()polls for predecessor step completionrunner.go:73—Run()executes user command via exec.CommandContextpost_writer.go:33—Write()writes completion signal filesPrerequisites (large effort):
TRACEPARENT/TRACESTATEenv vars into step containers during pod construction (pkg/pod/pod.go)Tracked in umbrella #9701 as "Large effort."
Part of umbrella: #9701