{{ define "agent.config.tracesService" }}
// Tempo
remote.kubernetes.secret "traces_service" {
  name = {{ include "kubernetes_monitoring.traces_service.secret.name" . | quote }}
  namespace = {{ .Values.externalServices.tempo.secret.namespace | default .Release.Namespace | quote }}
}

{{- with .Values.externalServices.tempo }}
{{ if eq .authMode "basic" }}
otelcol.auth.basic "traces_service" {
  username = nonsensitive(remote.kubernetes.secret.traces_service.data[{{ .basicAuth.usernameKey | quote }}])
  password = remote.kubernetes.secret.traces_service.data[{{ .basicAuth.passwordKey | quote }}]
}
{{- end }}
{{ if eq .protocol "otlp" }}
otelcol.exporter.otlp "traces_service" {
{{- else if eq .protocol "otlphttp" }}
otelcol.exporter.otlphttp "traces_service" {
{{- end }}
  client {
    endpoint = nonsensitive(remote.kubernetes.secret.traces_service.data[{{ .hostKey | quote }}])
{{ if eq .authMode "basic" }}
    auth = otelcol.auth.basic.traces_service.handler
{{- end }}
    headers = { "X-Scope-OrgID" = nonsensitive(remote.kubernetes.secret.traces_service.data[{{ .tenantIdKey | quote }}]) }
{{- if .tlsOptions }}
    tls {
{{ .tlsOptions | indent 6 }}
    }
{{- else if .tls }}
    tls {
    {{- range $k, $v := .tls }}
      {{ $k }} = {{ $v | toJson }}
    {{- end }}
    }
{{- end }}
  }
}
{{- end }}
{{ end }}
