Skip to content

test(e2e): verify Kubernetes trace export against Jaeger - #5517

Open
krishicks wants to merge 1 commit into
mainfrom
test/3767-kubernetes-trace-export/krishicks
Open

krishicks wants to merge 1 commit into
mainfrom
test/3767-kubernetes-trace-export/krishicks

Conversation

@krishicks

Copy link
Copy Markdown
Collaborator

Summary

No Kubernetes lane exported traces to a collector it could inspect, so regressions in gateway or compute-driver span export, trace propagation, or resource attributes went unnoticed. This adds an e2e:kubernetes:tracing lane that deploys Jaeger, points gateway OTLP export at it, and fails unless Jaeger reports the expected spans.

Related Issue

Closes #3767

Changes

  • e2e/kubernetes/jaeger-fixture.yaml: a Jaeger 2.22.0 Deployment and Service, pulled from mirror.gcr.io and pinned by digest.

  • e2e/with-kube-gateway.sh: OPENSHELL_E2E_KUBE_JAEGER=1 deploys the fixture, layers a values file that points openshell.gateway.otlp at it, port-forwards the query API, exports OPENSHELL_E2E_JAEGER_QUERY_URL, and removes the fixture on exit.

  • e2e/rust/tests/kubernetes_tracing.rs: creates a sandbox and polls Jaeger's /api/v3 API for three spans:

    • the driver's kubernetes.provision span for that sandbox
    • the gateway's ComputeDriver/CreateSandbox client span in the same trace, showing context reached the driver
    • the gateway's OpenShell/CreateSandbox request span

    Each span must have a non-error status, a service.version, openshell.gateway.compute_driver=kubernetes, and a gateway name. A missing span fails after 90 seconds and lists the services Jaeger did receive.

  • e2e/rust/e2e-kubernetes.sh: OPENSHELL_E2E_KUBE_CONFORMANCE=0 skips the conformance suites. The tracing lane sets it because other Kubernetes lanes already run them.

  • branch-e2e.yml: a Kubernetes E2E (trace export) job in the core E2E gate.

  • TESTING.md: the new task and environment variables.

Testing

  • OPENSHELL_E2E_KUBE_CONTEXT=kind-… IMAGE_TAG=dev mise run e2e:kubernetes:tracing passed on a local kind cluster, with conformance skipped.

  • cargo fmt --check and cargo clippy --locked -D warnings pass for the e2e crate, both with default features and for kubernetes_tracing with the tracing features.

  • actionlint passes on branch-e2e.yml.

  • Checks appropriate to the affected code and behavior pass

  • Unit tests added/updated (if applicable)

  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

No Kubernetes lane exported traces to a collector it could inspect, so
regressions in gateway or compute-driver span export, trace propagation,
or resource attributes went unnoticed.

Add an e2e:kubernetes:tracing lane. OPENSHELL_E2E_KUBE_JAEGER=1 deploys a
Jaeger collector, points gateway OTLP export at it, and port-forwards its
query API. The kubernetes_tracing test creates a sandbox and fails unless
Jaeger reports the driver's provision span, the gateway's driver client
span in the same trace, and the gateway's CreateSandbox request span, each
without error status and with a service version and Kubernetes resource
attributes. The lane sets the new
OPENSHELL_E2E_KUBE_CONFORMANCE=0 so it does not repeat the conformance
suites other Kubernetes lanes already run.

Closes #3767

Signed-off-by: Kris Hicks <khicks@nvidia.com>
@krishicks krishicks added area:build Related to CI/CD and builds topic:observability Logging, metrics, and observability work labels Nov 12, 2026
@github-actions github-actions Bot added the state:accepted A maintainer decided OpenShell should pursue this issue label Nov 12, 2026
@github-actions

Copy link
Copy Markdown

@krishicks krishicks added the test:e2e Requires end-to-end coverage label Nov 12, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied for e207ddd. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway, sandbox, and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:build Related to CI/CD and builds state:accepted A maintainer decided OpenShell should pursue this issue test:e2e Requires end-to-end coverage topic:observability Logging, metrics, and observability work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(ci): avoid exporting traces to an absent Kubernetes collector

1 participant