{{ define "alloy.config.receivers.jaeger" }}
{{- if or .Values.receivers.jaeger.grpc.enabled .Values.receivers.jaeger.thriftBinary.enabled .Values.receivers.jaeger.thriftCompact.enabled .Values.receivers.jaeger.thriftBinary.enabled }}
// Jaeger Receiver
otelcol.receiver.jaeger "receiver" {
  protocols {
{{- if .Values.receivers.jaeger.grpc.enabled -}}
{{- $data := dict "port" .Values.receivers.jaeger.grpc.port "type" "Jaeger gRPC" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $data }}
    grpc {
      endpoint = "0.0.0.0:{{ $data.port | int }}"
    }
{{- end }}
{{- if .Values.receivers.jaeger.thriftBinary.enabled }}
{{- $data := dict "port" .Values.receivers.jaeger.thriftBinary.port "type" "Jaeger Binary" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $data }}
    thrift_binary {
      endpoint = "0.0.0.0:{{ $data.port | int }}"
    }
{{- end }}
{{- if .Values.receivers.jaeger.thriftCompact.enabled }}
{{- $data := dict "port" .Values.receivers.jaeger.thriftCompact.port "type" "Jaeger Compact" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $data }}
    thrift_compact {
      endpoint = "0.0.0.0:{{ $data.port | int }}"
    }
{{- end }}
{{- if .Values.receivers.jaeger.thriftHttp.enabled }}
{{- $data := dict "port" .Values.receivers.jaeger.thriftHttp.port "type" "Jaeger HTTP" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $data }}
    thrift_http {
      endpoint = "0.0.0.0:{{ $data.port | int }}"
    }
{{- end }}
  }
{{- if .Values.receivers.jaeger.tls }}
  tls {
  {{- range $k, $v := .Values.receivers.jaeger.tls }}
    {{ $k }} = {{ $v | toJson }}
  {{- end }}
  }
{{- end }}
  debug_metrics {
    disable_high_cardinality_metrics = {{ .Values.receivers.jaeger.disable_debug_metrics }}
  }
  output {
    traces = [otelcol.processor.k8sattributes.default.input]
  }
}
{{- end }}
{{ end }}
