feat(nvca): inject request-trace-uploader sidecar
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 218
- Forks
- 72
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 427
Description
Why
NVCA environment injection alone cannot deploy the request-trace-uploader. First-class Dynamo support must add the same sidecar image, volumes, credential contract, configuration, health probes, and BYOO signal environment to the DGD-created workload pod template.
Scope
- Add a first-class request-trace-uploader sidecar contract for selected Dynamo components.
- Mount the shared request-trace spool read-write for Dynamo and uploader, plus read-only credentials and uploader state/quarantine storage.
- Provide persistent storage for the spool and uploader state rather than pod-local ephemeral storage. Pod eviction on an emptyDir loses buffered segments outright, which is a named root cause in nvbug 6705092.
- Inject only the uploader configuration it needs. The credential-source authority remains decoupled from the uploader image.
- Wire the workload-scoped BYOO signal-specific metrics and trace endpoint plus protocol into the uploader container.
- Preserve secret references. Do not copy secret values into ConfigMaps or metadata.
- Add health probes and a named health port. Do not add a PodMonitor for uploader metrics because it exports metrics through OTLP.
Tests
- Render and webhook tests that prove the exact container, image, volume mounts, probes, and environment references are present on a DGD-created pod template.
- SecretKeyRef preservation and non-leakage tests.
- Test that the sidecar receives the same workload-scoped BYOO metric and trace endpoint plus protocol as the Dynamo container.
Non-goals
- Introducing a second uploader implementation.
- Turning generic BYOO environment injection into generic sidecar injection.
Parent: #1004
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the render and webhook tests and trace how they build the DGD-created pod template, then compare the existing Dynamo container contract. Done means the uploader sidecar has the specified image, mounts, probes, secret references, persistent storage, and workload-scoped BYOO endpoint and protocol, with tests covering non-leakage and exact rendering.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100