From f9387a0d8452f92ac6a405660410f611b6570006 Mon Sep 17 00:00:00 2001 From: Khurram Baig Date: Thu, 19 Aug 2021 12:47:29 +0530 Subject: [PATCH] Add Metrics Port to EventListener service Metrics port in service is needed by metering serices like prometheus servicemonitor. It's already there for controller and webhook but not EventListener which is created. --- pkg/reconciler/eventlistener/eventlistener.go | 16 ++++++++++++++-- .../eventlistener/eventlistener_test.go | 7 +++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/pkg/reconciler/eventlistener/eventlistener.go b/pkg/reconciler/eventlistener/eventlistener.go index 582956bea..83bfb7657 100644 --- a/pkg/reconciler/eventlistener/eventlistener.go +++ b/pkg/reconciler/eventlistener/eventlistener.go @@ -67,8 +67,12 @@ const ( eventListenerServicePortName = "http-listener" // eventListenerServiceTLSPortName defines service TLS port name for EventListener Service eventListenerServiceTLSPortName = "https-listener" - // eventListenerContainerPort defines the port exposed by the EventListener Container + // eventListenerMetricsPortName defines the metrics port name by the EventListener Container + eventListenerMetricsPortName = "http-metrics" + // eventListenerContainerPort defines service port for EventListener Service eventListenerContainerPort = 8080 + // eventListenerMetricsPort defines metrics port for EventListener Service + eventListenerMetricsPort = 9000 // GeneratedResourcePrefix is the name prefix for resources generated in the // EventListener reconciler GeneratedResourcePrefix = "el" @@ -186,13 +190,21 @@ func (r *Reconciler) reconcileService(ctx context.Context, logger *zap.SugaredLo } servicePort := getServicePort(el, r.config) + metricsPort := corev1.ServicePort{ + Name: eventListenerMetricsPortName, + Protocol: corev1.ProtocolTCP, + Port: int32(9000), + TargetPort: intstr.IntOrString{ + IntVal: int32(eventListenerMetricsPort), + }, + } service := &corev1.Service{ ObjectMeta: generateObjectMeta(el, r.config.StaticResourceLabels), Spec: corev1.ServiceSpec{ Selector: GenerateResourceLabels(el.Name, r.config.StaticResourceLabels), Type: serviceType, - Ports: []corev1.ServicePort{servicePort}}, + Ports: []corev1.ServicePort{servicePort, metricsPort}}, } existingService, err := r.serviceLister.Services(el.Namespace).Get(el.Status.Configuration.GeneratedResourceName) switch { diff --git a/pkg/reconciler/eventlistener/eventlistener_test.go b/pkg/reconciler/eventlistener/eventlistener_test.go index ac8f1fba1..836638984 100644 --- a/pkg/reconciler/eventlistener/eventlistener_test.go +++ b/pkg/reconciler/eventlistener/eventlistener_test.go @@ -517,6 +517,13 @@ func makeService(ops ...func(*corev1.Service)) *corev1.Service { TargetPort: intstr.IntOrString{ IntVal: int32(eventListenerContainerPort), }, + }, { + Name: eventListenerMetricsPortName, + Protocol: corev1.ProtocolTCP, + Port: int32(9000), + TargetPort: intstr.IntOrString{ + IntVal: int32(eventListenerMetricsPort), + }, }}, }, }