in internal/manifests/collector/ports.go [171:213]
func getReceiverServicePort(logger logr.Logger, serviceAddress string, receiverName string, protocol corev1.Protocol, servicePortsMap map[int32][]corev1.ServicePort) {
if serviceAddress != "" {
port, err := portFromEndpoint(serviceAddress)
if err != nil {
logger.Error(err, "error parsing port from endpoint for receiver", zap.String("endpoint", serviceAddress), zap.String("receiver", receiverName))
} else {
if ports, exists := servicePortsMap[port]; exists {
for _, existingPort := range ports {
if existingPort.Protocol == protocol {
logger.Info("Duplicate port and protocol combination configured", zap.Int32("port", port), zap.String("protocol", string(protocol)))
return
}
}
}
name := CWA + receiverName
if receiverName == OtlpGrpc || receiverName == OtlpHttp {
name = fmt.Sprintf("%s-%d", receiverName, port)
}
sp := corev1.ServicePort{
Name: name,
Port: port,
Protocol: protocol,
}
servicePortsMap[port] = append(servicePortsMap[port], sp)
}
} else {
defaultPort := receiverDefaultPortsMap[receiverName]
if ports, exists := servicePortsMap[defaultPort]; exists {
for _, existingPort := range ports {
if existingPort.Protocol == protocol {
logger.Info("Duplicate port and protocol combination configured", zap.Int32("port", defaultPort), zap.String("protocol", string(protocol)))
return
}
}
}
sp := corev1.ServicePort{
Name: receiverName,
Port: defaultPort,
Protocol: protocol,
}
servicePortsMap[defaultPort] = append(servicePortsMap[defaultPort], sp)
}
}