func getReceiverServicePort()

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)
	}
}