From 7b32afb8aa0875aad858db2b828caf2fd84e0f9e Mon Sep 17 00:00:00 2001
From: Philip Gough <philip.p.gough@gmail.com>
Date: Fri, 20 Aug 2021 14:29:25 +0100
Subject: [PATCH] jsonnet: Support scraping the config-reloader for
 AlertManager and Prometheus

---
 .../kube-prometheus/components/alertmanager.libsonnet  |  3 +++
 .../kube-prometheus/components/prometheus.libsonnet    | 10 ++++++----
 manifests/alertmanager-service.yaml                    |  3 +++
 manifests/alertmanager-serviceMonitor.yaml             |  2 ++
 manifests/prometheus-service.yaml                      |  3 +++
 manifests/prometheus-serviceMonitor.yaml               |  2 ++
 6 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/jsonnet/kube-prometheus/components/alertmanager.libsonnet b/jsonnet/kube-prometheus/components/alertmanager.libsonnet
index bda39ec4..910ff7b9 100644
--- a/jsonnet/kube-prometheus/components/alertmanager.libsonnet
+++ b/jsonnet/kube-prometheus/components/alertmanager.libsonnet
@@ -19,6 +19,7 @@ local defaults = {
     if !std.setMember(labelName, ['app.kubernetes.io/version'])
   },
   name: error 'must provide name',
+  reloaderPort: 8080,
   config: {
     global: {
       resolve_timeout: '5m',
@@ -136,6 +137,7 @@ function(params) {
     spec: {
       ports: [
         { name: 'web', targetPort: 'web', port: 9093 },
+        { name: 'reloader-web', port: am._config.reloaderPort, targetPort: 'reloader-web' },
       ],
       selector: {
         app: 'alertmanager',
@@ -161,6 +163,7 @@ function(params) {
       },
       endpoints: [
         { port: 'web', interval: '30s' },
+        { port: 'reloader-web', interval: '30s' },
       ],
     },
   },
diff --git a/jsonnet/kube-prometheus/components/prometheus.libsonnet b/jsonnet/kube-prometheus/components/prometheus.libsonnet
index 2df12b96..27367963 100644
--- a/jsonnet/kube-prometheus/components/prometheus.libsonnet
+++ b/jsonnet/kube-prometheus/components/prometheus.libsonnet
@@ -35,6 +35,7 @@ local defaults = {
     },
   },
   thanos: null,
+  reloaderPort: 8080,
 };
 
 
@@ -98,6 +99,7 @@ function(params) {
     spec: {
       ports: [
                { name: 'web', targetPort: 'web', port: 9090 },
+               { name: 'reloader-web', port: p._config.reloaderPort, targetPort: 'reloader-web' },
              ] +
              (
                if p._config.thanos != null then
@@ -317,10 +319,10 @@ function(params) {
       selector: {
         matchLabels: p._config.selectorLabels,
       },
-      endpoints: [{
-        port: 'web',
-        interval: '30s',
-      }],
+      endpoints: [
+        { port: 'web', interval: '30s' },
+        { port: 'reloader-web', interval: '30s' },
+      ],
     },
   },
 
diff --git a/manifests/alertmanager-service.yaml b/manifests/alertmanager-service.yaml
index f3f6cf71..473e050c 100644
--- a/manifests/alertmanager-service.yaml
+++ b/manifests/alertmanager-service.yaml
@@ -14,6 +14,9 @@ spec:
   - name: web
     port: 9093
     targetPort: web
+  - name: reloader-web
+    port: 8080
+    targetPort: reloader-web
   selector:
     alertmanager: main
     app: alertmanager
diff --git a/manifests/alertmanager-serviceMonitor.yaml b/manifests/alertmanager-serviceMonitor.yaml
index 070ef530..8d3ca18f 100644
--- a/manifests/alertmanager-serviceMonitor.yaml
+++ b/manifests/alertmanager-serviceMonitor.yaml
@@ -12,6 +12,8 @@ spec:
   endpoints:
   - interval: 30s
     port: web
+  - interval: 30s
+    port: reloader-web
   selector:
     matchLabels:
       alertmanager: main
diff --git a/manifests/prometheus-service.yaml b/manifests/prometheus-service.yaml
index 0b14d9bb..2571bbbf 100644
--- a/manifests/prometheus-service.yaml
+++ b/manifests/prometheus-service.yaml
@@ -14,6 +14,9 @@ spec:
   - name: web
     port: 9090
     targetPort: web
+  - name: reloader-web
+    port: 8080
+    targetPort: reloader-web
   selector:
     app: prometheus
     app.kubernetes.io/component: prometheus
diff --git a/manifests/prometheus-serviceMonitor.yaml b/manifests/prometheus-serviceMonitor.yaml
index b5282ebf..71857e2e 100644
--- a/manifests/prometheus-serviceMonitor.yaml
+++ b/manifests/prometheus-serviceMonitor.yaml
@@ -12,6 +12,8 @@ spec:
   endpoints:
   - interval: 30s
     port: web
+  - interval: 30s
+    port: reloader-web
   selector:
     matchLabels:
       app.kubernetes.io/component: prometheus
-- 
GitLab