diff --git a/pkg/collector/parser/receiver_jaeger.go b/pkg/collector/parser/receiver_jaeger.go index ec3ff16a4a..9ca3e3a037 100644 --- a/pkg/collector/parser/receiver_jaeger.go +++ b/pkg/collector/parser/receiver_jaeger.go @@ -46,24 +46,29 @@ func (j *JaegerReceiverParser) Ports() ([]corev1.ServicePort, error) { ports := []corev1.ServicePort{} for _, protocol := range []struct { - name string - defaultPort int32 + name string + defaultPort int32 + transportProtocol corev1.Protocol }{ { - name: "grpc", - defaultPort: defaultGRPCPort, + name: "grpc", + defaultPort: defaultGRPCPort, + transportProtocol: corev1.ProtocolTCP, }, { - name: "thrift_http", - defaultPort: defaultThriftHTTPPort, + name: "thrift_http", + defaultPort: defaultThriftHTTPPort, + transportProtocol: corev1.ProtocolTCP, }, { - name: "thrift_compact", - defaultPort: defaultThriftCompactPort, + name: "thrift_compact", + defaultPort: defaultThriftCompactPort, + transportProtocol: corev1.ProtocolUDP, }, { - name: "thrift_binary", - defaultPort: defaultThriftBinaryPort, + name: "thrift_binary", + defaultPort: defaultThriftBinaryPort, + transportProtocol: corev1.ProtocolUDP, }, } { // do we have the protocol specified at all? @@ -87,6 +92,9 @@ func (j *JaegerReceiverParser) Ports() ([]corev1.ServicePort, error) { } } + // set the appropriate transport protocol (i.e. TCP/UDP) for this kind of receiver protocol + protocolPort.Protocol = protocol.transportProtocol + // at this point, we *have* a port specified, add it to the list of ports ports = append(ports, *protocolPort) } diff --git a/pkg/collector/parser/receiver_jaeger_test.go b/pkg/collector/parser/receiver_jaeger_test.go index 46bd0a16eb..3c1b12450f 100644 --- a/pkg/collector/parser/receiver_jaeger_test.go +++ b/pkg/collector/parser/receiver_jaeger_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + corev1 "k8s.io/api/core/v1" ) func TestJaegerSelfRegisters(t *testing.T) { @@ -34,6 +35,7 @@ func TestJaegerMinimalConfiguration(t *testing.T) { assert.NoError(t, err) assert.Len(t, ports, 1) assert.EqualValues(t, 14250, ports[0].Port) + assert.EqualValues(t, corev1.ProtocolTCP, ports[0].Protocol) } func TestJaegerPortsOverridden(t *testing.T) { @@ -53,6 +55,7 @@ func TestJaegerPortsOverridden(t *testing.T) { assert.NoError(t, err) assert.Len(t, ports, 1) assert.EqualValues(t, 1234, ports[0].Port) + assert.EqualValues(t, corev1.ProtocolTCP, ports[0].Protocol) } func TestJaegerExposeDefaultPorts(t *testing.T) { @@ -67,13 +70,14 @@ func TestJaegerExposeDefaultPorts(t *testing.T) { }) expectedResults := map[string]struct { - portNumber int32 - seen bool + portNumber int32 + seen bool + transportProtocol corev1.Protocol }{ - "jaeger-grpc": {portNumber: 14250}, - "jaeger-thrift-http": {portNumber: 14268}, - "jaeger-thrift-compact": {portNumber: 6831}, - "jaeger-thrift-binary": {portNumber: 6832}, + "jaeger-grpc": {portNumber: 14250, transportProtocol: corev1.ProtocolTCP}, + "jaeger-thrift-http": {portNumber: 14268, transportProtocol: corev1.ProtocolTCP}, + "jaeger-thrift-compact": {portNumber: 6831, transportProtocol: corev1.ProtocolUDP}, + "jaeger-thrift-binary": {portNumber: 6832, transportProtocol: corev1.ProtocolUDP}, } // test @@ -88,6 +92,7 @@ func TestJaegerExposeDefaultPorts(t *testing.T) { r.seen = true expectedResults[port.Name] = r assert.EqualValues(t, r.portNumber, port.Port) + assert.EqualValues(t, r.transportProtocol, port.Protocol) } for k, v := range expectedResults { assert.True(t, v.seen, "the port %s wasn't included in the service ports", k)