From 47b5a11238e03935e3dbff07aa4da6ca00e6425e Mon Sep 17 00:00:00 2001
From: Rakesh Patnaik <patsrakesh@gmail.com>
Date: Tue, 6 Feb 2018 18:13:26 +0000
Subject: [PATCH] expose ingress metrics endpoint for nginx-vts exporter
 prometheus scrape target

Change-Id: I80b539cf0bf06fe0ba4e0ade8b4b301f4c063455
---
 .../service-ingress-metrics-exporter.yaml     | 38 +++++++++++++++++++
 ingress/values.yaml                           | 22 +++++++++++
 2 files changed, 60 insertions(+)
 create mode 100644 ingress/templates/service-ingress-metrics-exporter.yaml

diff --git a/ingress/templates/service-ingress-metrics-exporter.yaml b/ingress/templates/service-ingress-metrics-exporter.yaml
new file mode 100644
index 0000000000..3637e13b9d
--- /dev/null
+++ b/ingress/templates/service-ingress-metrics-exporter.yaml
@@ -0,0 +1,38 @@
+{{/*
+Copyright 2017 The Openstack-Helm Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
+{{- if .Values.manifests.monitoring.prometheus.service_exporter }}
+{{- if .Values.monitoring.prometheus.enabled }}
+{{- $envAll := . }}
+{{- $prometheus_annotations := $envAll.Values.monitoring.prometheus.ingress_exporter }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ tuple "ingress_exporter" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
+  labels:
+{{ tuple $envAll "ingress_exporter" "metrics" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
+  annotations:
+{{- if .Values.monitoring.prometheus.enabled }}
+{{ tuple $prometheus_annotations | include "helm-toolkit.snippets.prometheus_service_annotations" | indent 4 }}
+{{- end }}
+spec:
+  ports:
+  - name: metrics
+    port: {{ .Values.endpoints.ingress_exporter.port.metrics.default }}
+  selector:
+{{ tuple $envAll "ingress" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/ingress/values.yaml b/ingress/values.yaml
index 5e4e469ec6..b427440ed2 100644
--- a/ingress/values.yaml
+++ b/ingress/values.yaml
@@ -96,6 +96,12 @@ dependencies:
   ingress:
     jobs: null
 
+monitoring:
+  prometheus:
+    enabled: true
+    ingress_exporter:
+      scrape: true
+
 endpoints:
   cluster_domain_suffix: cluster.local
   ingress:
@@ -109,6 +115,19 @@ endpoints:
         default: 80
       https:
         default: 443
+  ingress_exporter:
+    namespace: null
+    hosts:
+      default: ingress-exporter
+    host_fqdn_override:
+      default: null
+    path:
+      default: null
+    scheme:
+      default: 'http'
+    port:
+      metrics:
+        default: 10254
 
 conf:
   controller:
@@ -139,3 +158,6 @@ manifests:
   ingress: true
   service_error: true
   service_ingress: true
+  monitoring:
+    prometheus:
+      service_exporter: true