From d8f6b6f81b9bbc8d9284af45a1d0f7d93dbf7ce1 Mon Sep 17 00:00:00 2001
From: Frederic Branczyk <fbranczyk@gmail.com>
Date: Fri, 18 May 2018 11:52:27 +0200
Subject: [PATCH] kube-prometheus: Update kops docs

---
 README.md                                     |  8 ++++++
 docs/KOPSonAWS.md                             | 20 ---------------
 examples/jsonnet-snippets/kops.jsonnet        |  2 ++
 ...kube-prometheus-insecure-kubelet.libsonnet | 25 +++++++++++++++++++
 .../kube-prometheus-kops.libsonnet            | 23 +++++++++++++++++
 5 files changed, 58 insertions(+), 20 deletions(-)
 delete mode 100644 docs/KOPSonAWS.md
 create mode 100644 examples/jsonnet-snippets/kops.jsonnet
 create mode 100644 jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet
 create mode 100644 jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet

diff --git a/README.md b/README.md
index e5e1ddbc..d67ea680 100644
--- a/README.md
+++ b/README.md
@@ -163,6 +163,14 @@ bootkube:
 (import "kube-prometheus/kube-prometheus-bootkube.libsonnet")
 ```
 
+kops:
+
+[embedmd]:# (examples/jsonnet-snippets/kops.jsonnet)
+```jsonnet
+(import 'kube-prometheus/kube-prometheus.libsonnet') +
+(import 'kube-prometheus/kube-prometheus-kops.libsonnet')
+```
+
 Another mixin that may be useful for exploring the stack is to expose the UIs of Prometheus, Alertmanager and Grafana on NodePorts:
 
 [embedmd]:# (examples/jsonnet-snippets/node-ports.jsonnet)
diff --git a/docs/KOPSonAWS.md b/docs/KOPSonAWS.md
deleted file mode 100644
index 26080a9f..00000000
--- a/docs/KOPSonAWS.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Adding kube-prometheus to [KOPS](https://github.com/kubernetes/kops) on AWS 1.5.x
-
-
-## Prerequisites
-
-A running Kubernetes cluster created with [KOPS](https://github.com/kubernetes/kops).
- 
-These instructions have currently been tested with  **topology=public** on AWS with KOPS 1.7.1 and Kubernetes 1.7.x
-
-Following the instructions in the [README](https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/README.md):
-
-Example:
-
-```bash
-git clone -b master https://github.com/coreos/prometheus-operator.git prometheus-operator-temp;
-cd prometheus-operator-temp/contrib/kube-prometheus
-./hack/cluster-monitoring/self-hosted-deploy
-cd -
-rm -rf prometheus-operator-temp
-```
diff --git a/examples/jsonnet-snippets/kops.jsonnet b/examples/jsonnet-snippets/kops.jsonnet
new file mode 100644
index 00000000..4ff9ceae
--- /dev/null
+++ b/examples/jsonnet-snippets/kops.jsonnet
@@ -0,0 +1,2 @@
+(import 'kube-prometheus/kube-prometheus.libsonnet') +
+(import 'kube-prometheus/kube-prometheus-kops.libsonnet')
diff --git a/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet
new file mode 100644
index 00000000..1bd64e1b
--- /dev/null
+++ b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet
@@ -0,0 +1,25 @@
+{
+  prometheus+:: {
+    serviceMonitorKubelet+:
+      {
+        spec+: {
+          endpoints: [
+            {
+              port: 'http-metrics',
+              scheme: 'http',
+              interval: '30s',
+              bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
+            },
+            {
+              port: 'http-metrics',
+              scheme: 'http',
+              path: '/metrics/cadvisor',
+              interval: '30s',
+              honorLabels: true,
+              bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
+            },
+          ],
+        },
+      },
+  },
+}
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet
new file mode 100644
index 00000000..a9cf3bb3
--- /dev/null
+++ b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet
@@ -0,0 +1,23 @@
+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+:: {
+    kubeControllerManagerPrometheusDiscoveryService:
+      service.new('kube-controller-manager-prometheus-discovery', { 'k8s-app': 'kube-controller-manager' }, servicePort.newNamed('http-metrics', 10252, 10252)) +
+      service.mixin.metadata.withNamespace('kube-system') +
+      service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) +
+      service.mixin.spec.withClusterIp('None'),
+    kubeSchedulerPrometheusDiscoveryService:
+      service.new('kube-scheduler-prometheus-discovery', { 'k8s-app': 'kube-scheduler' }, servicePort.newNamed('http-metrics', 10251, 10251)) +
+      service.mixin.metadata.withNamespace('kube-system') +
+      service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) +
+      service.mixin.spec.withClusterIp('None'),
+    kubeDnsPrometheusDiscoveryService:
+      service.new('kube-dns-prometheus-discovery', { 'k8s-app': 'kube-dns' }, [servicePort.newNamed('http-metrics-skydns', 10055, 10055), servicePort.newNamed('http-metrics-dnsmasq', 10054, 10054)]) +
+      service.mixin.metadata.withNamespace('kube-system') +
+      service.mixin.metadata.withLabels({ 'k8s-app': 'kube-dns' }) +
+      service.mixin.spec.withClusterIp('None'),
+  },
+}
-- 
GitLab