From 0d4bfe7db5ae47ba54b886fdcbd286440be4fb9d Mon Sep 17 00:00:00 2001 From: Carlos de Paula <me@carlosedp.com> Date: Tue, 17 Mar 2020 19:16:54 -0300 Subject: [PATCH] Add version and image source as config parameters. Fixes #455. --- docs/EKS-cni-support.md | 6 ++-- docs/weave-net-support.md | 33 ++++++++++--------- examples/eks-cni-example.jsonnet | 6 ++-- examples/weave-net-example.jsonnet | 33 ++++++++++--------- go.sum | 1 + .../kube-state-metrics.libsonnet | 10 ++++-- 6 files changed, 49 insertions(+), 40 deletions(-) diff --git a/docs/EKS-cni-support.md b/docs/EKS-cni-support.md index eafa74ad..fb559d78 100644 --- a/docs/EKS-cni-support.md +++ b/docs/EKS-cni-support.md @@ -7,8 +7,8 @@ One fatal issue that can occur is that you run out of IP addresses in your eks c You can monitor the `awscni` using kube-promethus with : [embedmd]:# (../examples/eks-cni-example.jsonnet) ```jsonnet -local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + - (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + { +local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + + (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + { _config+:: { namespace: 'monitoring', }, @@ -32,7 +32,7 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + { ['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) } + { ['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) } +{ ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } ``` After you have the required yaml file please run diff --git a/docs/weave-net-support.md b/docs/weave-net-support.md index e7d87961..9924434a 100644 --- a/docs/weave-net-support.md +++ b/docs/weave-net-support.md @@ -17,8 +17,8 @@ Using kube-prometheus and kubectl you will be able install the following for mon [embedmd]:# (../examples/weave-net-example.jsonnet) ```jsonnet -local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + - (import 'kube-prometheus/kube-prometheus-weave-net.libsonnet') + { +local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + + (import 'kube-prometheus/kube-prometheus-weave-net.libsonnet') + { _config+:: { namespace: 'monitoring', }, @@ -27,25 +27,26 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + function(group) if group.name == 'weave-net' then group { - rules: std.map(function(rule) - if rule.alert == "WeaveNetFastDPFlowsLow" then - rule { - expr: "sum(weave_flows) < 20000" - } - else if rule.alert == "WeaveNetIPAMUnreachable" then - rule { - expr: "weave_ipam_unreachable_percentage > 25" - } - else - rule + rules: std.map( + function(rule) + if rule.alert == 'WeaveNetFastDPFlowsLow' then + rule { + expr: 'sum(weave_flows) < 20000', + } + else if rule.alert == 'WeaveNetIPAMUnreachable' then + rule { + expr: 'weave_ipam_unreachable_percentage > 25', + } + else + rule , group.rules - ) + ), } else group, - super.groups - ), + super.groups + ), }, }; diff --git a/examples/eks-cni-example.jsonnet b/examples/eks-cni-example.jsonnet index df6ca072..dcebf6dd 100644 --- a/examples/eks-cni-example.jsonnet +++ b/examples/eks-cni-example.jsonnet @@ -1,5 +1,5 @@ -local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + - (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + { +local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + + (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + { _config+:: { namespace: 'monitoring', }, @@ -23,4 +23,4 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + { ['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) } + { ['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) } +{ ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } diff --git a/examples/weave-net-example.jsonnet b/examples/weave-net-example.jsonnet index 3a4e0ec6..c6cc733c 100644 --- a/examples/weave-net-example.jsonnet +++ b/examples/weave-net-example.jsonnet @@ -1,5 +1,5 @@ -local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + - (import 'kube-prometheus/kube-prometheus-weave-net.libsonnet') + { +local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + + (import 'kube-prometheus/kube-prometheus-weave-net.libsonnet') + { _config+:: { namespace: 'monitoring', }, @@ -8,25 +8,26 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + function(group) if group.name == 'weave-net' then group { - rules: std.map(function(rule) - if rule.alert == "WeaveNetFastDPFlowsLow" then - rule { - expr: "sum(weave_flows) < 20000" - } - else if rule.alert == "WeaveNetIPAMUnreachable" then - rule { - expr: "weave_ipam_unreachable_percentage > 25" - } - else - rule + rules: std.map( + function(rule) + if rule.alert == 'WeaveNetFastDPFlowsLow' then + rule { + expr: 'sum(weave_flows) < 20000', + } + else if rule.alert == 'WeaveNetIPAMUnreachable' then + rule { + expr: 'weave_ipam_unreachable_percentage > 25', + } + else + rule , group.rules - ) + ), } else group, - super.groups - ), + super.groups + ), }, }; diff --git a/go.sum b/go.sum index fac3f371..6496f5b6 100644 --- a/go.sum +++ b/go.sum @@ -7,6 +7,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/campoy/embedmd v1.0.0 h1:V4kI2qTJJLf4J29RzI/MAt2c3Bl4dQSYPuflzwFH2hY= github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet index 7f5eea87..0eca4090 100644 --- a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet +++ b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet @@ -1,5 +1,11 @@ { _config+:: { + versions+:: { + kubeStateMetrics: '1.9.5', + }, + imageRepos+:: { + kubeStateMetrics: 'quay.io/coreos/kube-state-metrics', + }, kubeStateMetrics+:: { scrapeInterval: '30s', scrapeTimeout: '30s', @@ -10,8 +16,8 @@ local ksm = self, name:: 'kube-state-metrics', namespace:: 'monitoring', - version:: '1.9.5', //$._config.versions.kubeStateMetrics, - image:: 'quay.io/coreos/kube-state-metrics:v' + ksm.version, + version:: $._config.versions.kubeStateMetrics, + image:: $._config.imageRepos.kubeStateMetrics + ':v' + $._config.versions.kubeStateMetrics, service+: { spec+: { ports: [ -- GitLab