From 1a9f1ddeb3886b92599eae515af702d46ddb81d9 Mon Sep 17 00:00:00 2001
From: Brian Christie <brian.christie@oneflow.io>
Date: Tue, 18 Dec 2018 17:13:43 +0000
Subject: [PATCH] contrib/kube-prometheus: Add kops CoreDNS prometheus
 discovery service

---
 README.md                                           | 11 +++++++++++
 examples/jsonnet-snippets/kops-coredns.jsonnet      |  3 +++
 .../kube-prometheus-kops-coredns.libsonnet          | 13 +++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 examples/jsonnet-snippets/kops-coredns.jsonnet
 create mode 100644 jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet

diff --git a/README.md b/README.md
index b8f69a8b..5901d192 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 00000000..4988ef0c
--- /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 00000000..4c610872
--- /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'),
+  },
+}
-- 
GitLab