From dbc64a0300aa0d1180c24bda4f5966c609be5683 Mon Sep 17 00:00:00 2001
From: paulfantom <pawel@krupa.net.pl>
Date: Thu, 4 Nov 2021 12:39:53 +0100
Subject: [PATCH] jsonnet: do not hide alerting configuration

Signed-off-by: paulfantom <pawel@krupa.net.pl>
---
 .../kube-prometheus/components/prometheus.libsonnet  | 12 ++++++------
 jsonnet/kube-prometheus/main.libsonnet               |  9 ++++++++-
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/jsonnet/kube-prometheus/components/prometheus.libsonnet b/jsonnet/kube-prometheus/components/prometheus.libsonnet
index 701537d1..321ddbcf 100644
--- a/jsonnet/kube-prometheus/components/prometheus.libsonnet
+++ b/jsonnet/kube-prometheus/components/prometheus.libsonnet
@@ -2,20 +2,21 @@ local defaults = {
   local defaults = self,
   // Convention: Top-level fields related to CRDs are public, other fields are hidden
   // If there is no CRD for the component, everything is hidden in defaults.
+  name:: error 'must provide name',
   namespace:: error 'must provide namespace',
   version: error 'must provide version',
   image: error 'must provide image',
   resources: {
     requests: { memory: '400Mi' },
   },
-
-  name:: error 'must provide name',
-  //TODO: remove alertmanagerName and convert to plain 'alerting' object
-  alertmanagerName:: error 'must provide alertmanagerName',
+  //TODO(paulfantom): remove alertmanagerName after release-0.10 and convert to plain 'alerting' object.
+  alertmanagerName:: '',
+  alerting: {},
   namespaces:: ['default', 'kube-system', defaults.namespace],
   replicas: 2,
   externalLabels: {},
   enableFeatures: [],
+  ruleSelector: {},
   commonLabels:: {
     'app.kubernetes.io/name': 'prometheus',
     'app.kubernetes.io/version': defaults.version,
@@ -27,7 +28,6 @@ local defaults = {
     for labelName in std.objectFields(defaults.commonLabels)
     if !std.setMember(labelName, ['app.kubernetes.io/version'])
   } + { prometheus: defaults.name },
-  ruleSelector: {},
   mixin:: {
     ruleLabels: {},
     _config: {
@@ -273,7 +273,7 @@ function(params) {
       serviceMonitorNamespaceSelector: {},
       nodeSelector: { 'kubernetes.io/os': 'linux' },
       resources: p._config.resources,
-      alerting: {
+      alerting: if p._config.alerting != {} then p._config.alerting else {
         alertmanagers: [{
           namespace: p._config.namespace,
           name: 'alertmanager-' + p._config.alertmanagerName,
diff --git a/jsonnet/kube-prometheus/main.libsonnet b/jsonnet/kube-prometheus/main.libsonnet
index 659be665..9dc5a334 100644
--- a/jsonnet/kube-prometheus/main.libsonnet
+++ b/jsonnet/kube-prometheus/main.libsonnet
@@ -91,7 +91,14 @@ local utils = import './lib/utils.libsonnet';
       version: $.values.common.versions.prometheus,
       image: $.values.common.images.prometheus,
       name: 'k8s',
-      alertmanagerName: $.values.alertmanager.name,
+      alerting: {
+        alertmanagers: [{
+          namespace: $.values.common.namespace,
+          name: 'alertmanager-' + $.values.alertmanager.name,
+          port: $.alertmanager.service.spec.ports[0].name,
+          apiVersion: 'v2',
+        }],
+      },
       mixin+: { ruleLabels: $.values.common.ruleLabels },
     },
     prometheusAdapter: {
-- 
GitLab