From f95f0fa875beac7f2fab029a3542a65fc66d5ed6 Mon Sep 17 00:00:00 2001 From: paulfantom <pawel@krupa.net.pl> Date: Tue, 2 Feb 2021 13:35:55 +0100 Subject: [PATCH] examples,jsonnet: fix thanos-sidecar addon; add test for thanos-sidecar addon --- examples/thanos-sidecar.jsonnet | 32 +++++++++++++++++++ .../addons/thanos-sidecar.libsonnet | 13 +++----- 2 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 examples/thanos-sidecar.jsonnet diff --git a/examples/thanos-sidecar.jsonnet b/examples/thanos-sidecar.jsonnet new file mode 100644 index 00000000..35eca8e1 --- /dev/null +++ b/examples/thanos-sidecar.jsonnet @@ -0,0 +1,32 @@ +local kp = + (import 'kube-prometheus/main.libsonnet') + + (import 'kube-prometheus/addons/thanos-sidecar.libsonnet') + + { + values+:: { + common+: { + namespace: 'monitoring', + }, + thanos: { + version: '0.17.2', + image: 'quay.io/thanos-io/thanos:v' + $.values.thanos.version, + objectStorageConfig: { + key: 'thanos.yaml', // How the file inside the secret is called + name: 'thanos-objectstorage', // This is the name of your Kubernetes secret with the config + }, + }, + }, + }; + +{ ['setup/0namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + +{ + ['setup/prometheus-operator-' + name]: kp.prometheusOperator[name] + for name in std.filter((function(name) name != 'serviceMonitor'), std.objectFields(kp.prometheusOperator)) +} + +// serviceMonitor is separated so that it can be created after the CRDs are ready +{ 'prometheus-operator-serviceMonitor': kp.prometheusOperator.serviceMonitor } + +{ ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } + +{ ['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) } + +{ ['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) } diff --git a/jsonnet/kube-prometheus/addons/thanos-sidecar.libsonnet b/jsonnet/kube-prometheus/addons/thanos-sidecar.libsonnet index af6474d2..64a1e181 100644 --- a/jsonnet/kube-prometheus/addons/thanos-sidecar.libsonnet +++ b/jsonnet/kube-prometheus/addons/thanos-sidecar.libsonnet @@ -1,13 +1,10 @@ (import 'github.com/thanos-io/thanos/mixin/alerts/sidecar.libsonnet') + { values+:: { - thanos+:: { - version: '0.14.0', - image: 'quay.io/thanos/thanos:v0.14.0', - objectStorageConfig: { - key: 'thanos.yaml', // How the file inside the secret is called - name: 'thanos-objectstorage', // This is the name of your Kubernetes secret with the config - }, + thanos: { + version: error 'must provide thanos version', + image: error 'must provide thanos image', + objectStorageConfig: error 'must provide thanos object storage configuration', }, }, prometheus+: { @@ -35,7 +32,7 @@ { name: 'grpc', port: 10901, targetPort: 10901 }, { name: 'http', port: 10902, targetPort: 10902 }, ], - selector: { app: 'prometheus', prometheus: p.name }, + selector: { app: 'prometheus', prometheus: p.config.name }, clusterIP: 'None', }, }, -- GitLab