Allow customization of control plane tracer in helm
- Dominant language
- Go
- Stars
- 11.5k
- Forks
- 1.4k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 53
Description
### What problem are you trying to solve?
Datadog recently added support for a [built-in OTLP collector endpoint](https://docs.datadoghq.com/tracing/setup_overview/open_standards/#otlp-ingest-in-datadog-agent). I want to use it (as a replacement for the actual OTLP collector). This should be as easy as re-pointing the `trace-collector` [argument](https://github.com/linkerd/linkerd2/blob/main/charts/partials/templates/_trace.tpl) at the datadog agent service. However, currently the name and location of the collector service is hard-coded:
```
- -trace-collector=collector.{{.Values.controlPlaneTracingNamespace}}.svc.{{.Values.clusterDomain}}:55678
```
### How should the problem be solved?
Either enable me to completely override the collector address string or allow me to set all of the parameters individually (including name, namespace, and port).
Mine will end up looking like `agent.datadog.svc.cluster.local:4317`.
### Any alternatives you've considered?
You could provide more of a first-class integration with datadog. It may simplify the amount of configuration needed by the end user at deploy time, but since datadog is supporting OTLP out of the box, this may add unnecessary complexity to the helm charts.
You could also enable non-mTLS endpoints for trace reporting, in which case the address schema would need to be revisited (for instance I could use `$(DD_AGENT_HOST):4317` if datadog isn't meshed). This is more in line with how datadog expects to work, but may require rethinking some assumptions.
### How would users interact with this feature?
We'd probably want to change `controlPlaneTracing` to an object with attributes:
```
controlPlaneTracing:
collectorName: agent
namespace: datadog
port: 4317
```
### Would you like to work on this feature?
maybe
Contributor guide
Research direction
Read charts/partials/templates/_trace.tpl and the Helm values for controlPlaneTracing to trace how the hard-coded trace-collector argument is rendered. Done means the chart lets users configure the collector endpoint, including the name, namespace, and port needed for the Datadog agent address.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes
- Domain
- infrastructure, observability
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100