diff --git a/docs/EKS-cni-support.md b/docs/EKS-cni-support.md
index eafa74ad15b93071c89e0ff70db5bc6938d8c6cd..fb559d7845700770e462bc1c9cc0cb99e877a50c 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 e7d87961cef8a71af8aa084980692f5faf2339d5..9924434a6c98d6ccb283ccaf6a2384aa44f34109 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 df6ca07238bddc0b54a6d7019deebf8b7f566cf1..dcebf6ddcd56240e26d66a84eb378e4566cf003d 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 3a4e0ec639e5e570afbcebdd76f1df17e15b4e81..c6cc733c27a465b5ddd169d0314451d7d328950a 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 fac3f371f7720f494b135e6806f56e11a6edf03f..6496f5b64002822940a0e272406991b8b51ccf1a 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 7f5eea879ec3660518863bb9f11bc72600cc72c4..0eca409003e00d6b2518f435747beb507bf787c5 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: [