in controllers/util/prometheus_exporter_util.go [427:472]
func GenerateSolrMetricsService(solrPrometheusExporter *solr.SolrPrometheusExporter) *corev1.Service {
copyLabels := solrPrometheusExporter.GetLabels()
if copyLabels == nil {
copyLabels = map[string]string{}
}
labels := solrPrometheusExporter.SharedLabelsWith(solrPrometheusExporter.GetLabels())
labels["service-type"] = "metrics"
annotations := map[string]string{
"prometheus.io/scrape": "true",
"prometheus.io/scheme": "http",
"prometheus.io/path": "/metrics",
}
selectorLabels := solrPrometheusExporter.SharedLabels()
selectorLabels["technology"] = solr.SolrPrometheusExporterTechnologyLabel
customOptions := solrPrometheusExporter.Spec.CustomKubeOptions.ServiceOptions
if nil != customOptions {
labels = MergeLabelsOrAnnotations(labels, customOptions.Labels)
annotations = MergeLabelsOrAnnotations(annotations, customOptions.Annotations)
}
appProtocol := "http"
service := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
Name: solrPrometheusExporter.MetricsServiceName(),
Namespace: solrPrometheusExporter.GetNamespace(),
Labels: labels,
Annotations: annotations,
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
{
Name: SolrMetricsPortName,
Port: ExtSolrMetricsPort,
Protocol: corev1.ProtocolTCP,
TargetPort: intstr.FromInt(SolrMetricsPort),
AppProtocol: &appProtocol,
},
},
Selector: selectorLabels,
},
}
return service
}