From bf9a917cfa6974848e233fd78bfe06e164227941 Mon Sep 17 00:00:00 2001
From: paulfantom <pawel@krupa.net.pl>
Date: Mon, 22 Feb 2021 16:38:19 +0100
Subject: [PATCH] examples: adapt examples to stop modifying prometheus object
 when it is not needed

---
 ...additional-namespaces-servicemonitor.jsonnet |  5 +++--
 examples/additional-namespaces.jsonnet          |  2 +-
 examples/alertmanager-config-external.jsonnet   |  2 +-
 examples/etcd.jsonnet                           |  2 +-
 examples/kustomize.jsonnet                      |  2 +-
 examples/minikube.jsonnet                       |  6 +++---
 ...etheus-additional-alert-rule-example.jsonnet | 17 ++++++++++++-----
 ...us-additional-recording-rule-example.jsonnet | 17 ++++++++++++-----
 ...eus-additional-rendered-rule-example.jsonnet | 17 ++++++++++++-----
 9 files changed, 46 insertions(+), 24 deletions(-)

diff --git a/examples/additional-namespaces-servicemonitor.jsonnet b/examples/additional-namespaces-servicemonitor.jsonnet
index 6cfe37db..ec978da7 100644
--- a/examples/additional-namespaces-servicemonitor.jsonnet
+++ b/examples/additional-namespaces-servicemonitor.jsonnet
@@ -7,7 +7,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
       namespaces+: ['my-namespace', 'my-second-namespace'],
     },
   },
-  prometheus+: {
+  exampleApplication: {
     serviceMonitorMyNamespace: {
       apiVersion: 'monitoring.coreos.com/v1',
       kind: 'ServiceMonitor',
@@ -39,4 +39,5 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
 { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
 { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
-{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
+{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
+{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) }
diff --git a/examples/additional-namespaces.jsonnet b/examples/additional-namespaces.jsonnet
index 85cae475..45c606a6 100644
--- a/examples/additional-namespaces.jsonnet
+++ b/examples/additional-namespaces.jsonnet
@@ -4,7 +4,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
       namespace: 'monitoring',
     },
 
-    prometheus+:: {
+    prometheus+: {
       namespaces+: ['my-namespace', 'my-second-namespace'],
     },
   },
diff --git a/examples/alertmanager-config-external.jsonnet b/examples/alertmanager-config-external.jsonnet
index 5d96d23d..49f6b558 100644
--- a/examples/alertmanager-config-external.jsonnet
+++ b/examples/alertmanager-config-external.jsonnet
@@ -1,5 +1,5 @@
 ((import 'kube-prometheus/main.libsonnet') + {
-   _config+:: {
+   values+:: {
      alertmanager+: {
        config: importstr 'alertmanager-config.yaml',
      },
diff --git a/examples/etcd.jsonnet b/examples/etcd.jsonnet
index e494b6ad..7126ee31 100644
--- a/examples/etcd.jsonnet
+++ b/examples/etcd.jsonnet
@@ -6,7 +6,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') +
     },
 
     // Reference info: https://github.com/coreos/kube-prometheus/blob/master/README.md#static-etcd-configuration
-    etcd+:: {
+    etcd+: {
       // Configure this to be the IP(s) to scrape - i.e. your etcd node(s) (use commas to separate multiple values).
       ips: ['127.0.0.1'],
 
diff --git a/examples/kustomize.jsonnet b/examples/kustomize.jsonnet
index ab548b05..455b38bd 100644
--- a/examples/kustomize.jsonnet
+++ b/examples/kustomize.jsonnet
@@ -26,7 +26,7 @@ local manifests =
   { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
   { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
   { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
-  { ['kubernetes-' + name]: kp.kubernetesMixin[name] for name in std.objectFields(kp.kubernetesMixin) };
+  { ['kubernetes-' + name]: kp.kubernetesControlPlane[name] for name in std.objectFields(kp.kubernetesControlPlane) };
 
 local kustomizationResourceFile(name) = './manifests/' + name + '.yaml';
 local kustomization = {
diff --git a/examples/minikube.jsonnet b/examples/minikube.jsonnet
index dd2f77b4..87b88d69 100644
--- a/examples/minikube.jsonnet
+++ b/examples/minikube.jsonnet
@@ -8,10 +8,10 @@ local kp =
       common+: {
         namespace: 'monitoring',
       },
-      alertmanager+:: {
+      alertmanager+: {
         config: importstr 'alertmanager-config.yaml',
       },
-      grafana+:: {
+      grafana+: {
         config: {  // http://docs.grafana.org/installation/configuration/
           sections: {
             // Do not require grafana users to login/authenticate
@@ -40,7 +40,7 @@ local kp =
         },
       },
     },
-    alertmanager+:: {
+    alertmanager+: {
       alertmanager+: {
         // Reference info: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec
         spec+: {
diff --git a/examples/prometheus-additional-alert-rule-example.jsonnet b/examples/prometheus-additional-alert-rule-example.jsonnet
index 63ec2ea7..483b9cb1 100644
--- a/examples/prometheus-additional-alert-rule-example.jsonnet
+++ b/examples/prometheus-additional-alert-rule-example.jsonnet
@@ -4,10 +4,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
       namespace: 'monitoring',
     },
   },
-  prometheus+: {
-    prometheusRule+: {
-      spec+: {
-        groups+: [
+  exampleApplication: {
+    prometheusRuleExample: {
+      apiVersion: 'monitoring.coreos.com/v1',
+      kind: 'PrometheusRule',
+      metadata: {
+        name: 'my-prometheus-rule',
+        namespace: $.values.common.namespace,
+      },
+      spec: {
+        groups: [
           {
             name: 'example-group',
             rules: [
@@ -36,4 +42,5 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
 { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
-{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
+{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
+{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) }
diff --git a/examples/prometheus-additional-recording-rule-example.jsonnet b/examples/prometheus-additional-recording-rule-example.jsonnet
index c2abc4d3..5e67b03f 100644
--- a/examples/prometheus-additional-recording-rule-example.jsonnet
+++ b/examples/prometheus-additional-recording-rule-example.jsonnet
@@ -4,10 +4,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
       namespace: 'monitoring',
     },
   },
-  prometheus+: {
-    prometheusRule+: {
-      spec+: {
-        groups+: [
+  exampleApplication: {
+    prometheusRuleExample: {
+      apiVersion: 'monitoring.coreos.com/v1',
+      kind: 'PrometheusRule',
+      metadata: {
+        name: 'my-prometheus-rule',
+        namespace: $.values.common.namespace,
+      },
+      spec: {
+        groups: [
           {
             name: 'example-group',
             rules: [
@@ -30,4 +36,5 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
 { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
-{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
+{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
+{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) }
diff --git a/examples/prometheus-additional-rendered-rule-example.jsonnet b/examples/prometheus-additional-rendered-rule-example.jsonnet
index 29676851..66c7937c 100644
--- a/examples/prometheus-additional-rendered-rule-example.jsonnet
+++ b/examples/prometheus-additional-rendered-rule-example.jsonnet
@@ -4,10 +4,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
       namespace: 'monitoring',
     },
   },
-  prometheus+: {
-    prometheusRule+: {
-      spec+: {
-        groups+: (import 'existingrule.json').groups,
+  exampleApplication: {
+    prometheusRuleExample: {
+      apiVersion: 'monitoring.coreos.com/v1',
+      kind: 'PrometheusRule',
+      metadata: {
+        name: 'my-prometheus-rule',
+        namespace: $.values.common.namespace,
+      },
+      spec: {
+        groups: (import 'existingrule.json').groups,
       },
     },
   },
@@ -20,4 +26,5 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
 { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
-{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
+{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
+{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) }
-- 
GitLab