diff --git a/README.md b/README.md
index bf61d9aeb747c927f066d4f364db727d2a52ff58..a9a42e54c72f3fd837d612298c5bf031d1dcbe4c 100644
--- a/README.md
+++ b/README.md
@@ -369,3 +369,24 @@ The Prometheus `/targets` page will show the kubelet job with the error `403 Una
 #### Authorization problem
 
 The Prometheus `/targets` page will show the kubelet job with the error `401 Unauthorized`, when token authorization is not enabled. Ensure that the `--authorization-mode=Webhook` flag is enabled on all kubelet configurations.
+### kube-state-metrics resource usaged
+
+In some environments, kube-state-metrics may need additional
+resources. One driver for more resource needs, is a high number of
+namespaces. There may be others.
+
+kube-state-metrics has it's resources using an
+[addon-resizer](https://github.com/kubernetes/autoscaler/tree/master/addon-resizer/nanny)
+You can control it's parameters by setting variables in the
+config. They default to:
+
+``` jsonnet
+    resizer+:: {
+      kubeStateMetrics+:: {
+        cpu: '100m',
+        extraCpu: '2m',
+        memory: '150Mi',
+        extraMemory: '30Mi',
+      },
+    }
+```
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 c36f293b33e367478f11adcfa696b67b319c7f33..f9065282bb92276a512540654b243e36000c08a9 100644
--- a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet
+++ b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet
@@ -4,6 +4,22 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
   _config+:: {
     namespace: 'default',
 
+    kubeStateMetrics+:: {
+      // when this is an empty string, you get the default set
+      collectors: '',
+      scrapeTimeout: '',
+      scrapeInterval: '30s',
+    },
+
+    resizer+:: {
+      kubeStateMetrics+:: {
+        cpu: '100m',
+        extraCpu: '2m',
+        memory: '150Mi',
+        extraMemory: '30Mi',
+      },
+    },
+
     versions+:: {
       kubeStateMetrics: 'v1.3.1',
       kubeRbacProxy: 'v0.3.1',
@@ -137,19 +153,20 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
           '--port=8081',
           '--telemetry-host=127.0.0.1',
           '--telemetry-port=8082',
+          '--collectors=' + $._config.kubeStateMetrics.collectors,
         ]) +
-        container.mixin.resources.withRequests({ cpu: '102m', memory: '180Mi' }) +
-        container.mixin.resources.withLimits({ cpu: '102m', memory: '180Mi' });
+        container.mixin.resources.withRequests({ cpu: $._config.resizer.kubeStateMetrics.cpu, memory: $._config.resizer.kubeStateMetrics.memory }) +
+        container.mixin.resources.withLimits({ cpu: $._config.resizer.kubeStateMetrics.cpu, memory: $._config.resizer.kubeStateMetrics.memory });
 
       local addonResizer =
         container.new('addon-resizer', $._config.imageRepos.addonResizer + ':' + $._config.versions.addonResizer) +
         container.withCommand([
           '/pod_nanny',
           '--container=kube-state-metrics',
-          '--cpu=100m',
-          '--extra-cpu=2m',
-          '--memory=150Mi',
-          '--extra-memory=30Mi',
+          '--cpu=' + $._config.resizer.kubeStateMetrics.cpu,
+          '--extra-cpu=' + $._config.resizer.kubeStateMetrics.extraCpu,
+          '--memory=' + $._config.resizer.kubeStateMetrics.memory,
+          '--extra-memory=' + $._config.resizer.kubeStateMetrics.extraMemory,
           '--threshold=5',
           '--deployment=kube-state-metrics',
         ]) +
@@ -258,13 +275,13 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
             {
               port: 'https-main',
               scheme: 'https',
-              interval: '30s',
+              interval: $._config.kubeStateMetrics.scrapeInterval,
               honorLabels: true,
               bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
               tlsConfig: {
                 insecureSkipVerify: true,
               },
-            },
+            } + if $._config.kubeStateMetrics.scrapeTimeout != '' then { scrapeTimeout: $._config.kubeStateMetrics.scrapeTimeout } else {},
             {
               port: 'https-self',
               scheme: 'https',