diff --git a/README.md b/README.md
index b8f69a8b71e4d9b7ec5189cf616479d89a1ac47f..5901d192bc9ac93d00e008e76d29d02d7d437358 100644
--- a/README.md
+++ b/README.md
@@ -359,6 +359,17 @@ kops:
 (import 'kube-prometheus/kube-prometheus-kops.libsonnet')
 ```
 
+kops with CoreDNS:
+
+If your kops cluster is using CoreDNS, there is an additional mixin to import.
+
+[embedmd]:# (examples/jsonnet-snippets/kops-coredns.jsonnet)
+```jsonnet
+(import 'kube-prometheus/kube-prometheus.libsonnet') +
+(import 'kube-prometheus/kube-prometheus-kops.libsonnet') + 
+(import 'kube-prometheus/kube-prometheus-kops-coredns.libsonnet')
+```
+
 kubespray:
 
 [embedmd]:# (examples/jsonnet-snippets/kubespray.jsonnet)
diff --git a/examples/jsonnet-snippets/kops-coredns.jsonnet b/examples/jsonnet-snippets/kops-coredns.jsonnet
new file mode 100644
index 0000000000000000000000000000000000000000..4988ef0cebfcd75f06fd5538364353c6e56383fe
--- /dev/null
+++ b/examples/jsonnet-snippets/kops-coredns.jsonnet
@@ -0,0 +1,3 @@
+(import 'kube-prometheus/kube-prometheus.libsonnet') +
+(import 'kube-prometheus/kube-prometheus-kops.libsonnet') + 
+(import 'kube-prometheus/kube-prometheus-kops-coredns.libsonnet') 
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet
new file mode 100644
index 0000000000000000000000000000000000000000..4c61087263dc4ce5a6c7485d821b8c1d0428baa2
--- /dev/null
+++ b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet
@@ -0,0 +1,13 @@
+local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
+local service = k.core.v1.service;
+local servicePort = k.core.v1.service.mixin.spec.portsType;
+
+{
+  prometheus+:: {
+      kubeDnsPrometheusDiscoveryService:
+      service.new('kube-dns-prometheus-discovery', { 'k8s-app': 'kube-dns' }, [servicePort.newNamed('metrics', 9153, 9153)]) +
+      service.mixin.metadata.withNamespace('kube-system') +
+      service.mixin.metadata.withLabels({ 'k8s-app': 'kube-dns' }) +
+      service.mixin.spec.withClusterIp('None'),
+  },
+}