From d0c1fb522b5a50aab16b928d16f3a530025dde54 Mon Sep 17 00:00:00 2001
From: Frederic Branczyk <fbranczyk@gmail.com>
Date: Fri, 2 Dec 2016 13:57:12 +0100
Subject: [PATCH] manifests: add Alertmanager manifests and discovery

The latest version of the Prometheus Operator requires Prometheus
>=v1.4.0 for the Alertmanger discovery feature.
---
 .../alertmanager/alertmanager-config.yaml      | 18 ++++++++++++++++++
 .../alertmanager/alertmanager-service.yaml     | 14 ++++++++++++++
 manifests/alertmanager/alertmanager.yaml       |  9 +++++++++
 .../example-app/prometheus-frontend.yaml       |  7 ++++++-
 manifests/prometheus/prometheus-k8s.yaml       |  7 ++++++-
 5 files changed, 53 insertions(+), 2 deletions(-)
 create mode 100644 manifests/alertmanager/alertmanager-config.yaml
 create mode 100644 manifests/alertmanager/alertmanager-service.yaml
 create mode 100644 manifests/alertmanager/alertmanager.yaml

diff --git a/manifests/alertmanager/alertmanager-config.yaml b/manifests/alertmanager/alertmanager-config.yaml
new file mode 100644
index 00000000..8f7fce5b
--- /dev/null
+++ b/manifests/alertmanager/alertmanager-config.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: alertmanager-main
+data:
+  alertmanager.yaml: |-
+    global:
+      resolve_timeout: 5m
+    route:
+      group_by: ['job']
+      group_wait: 30s
+      group_interval: 5m
+      repeat_interval: 12h
+      receiver: 'webhook'
+    receivers:
+    - name: 'webhook'
+      webhook_configs:
+      - url: 'http://alertmanagerwh:30500/'
diff --git a/manifests/alertmanager/alertmanager-service.yaml b/manifests/alertmanager/alertmanager-service.yaml
new file mode 100644
index 00000000..86599c35
--- /dev/null
+++ b/manifests/alertmanager/alertmanager-service.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: alertmanager-main
+spec:
+  type: NodePort
+  ports:
+  - name: web
+    nodePort: 30903
+    port: 9093
+    protocol: TCP
+    targetPort: web
+  selector:
+    alertmanager: alertmanager-main
diff --git a/manifests/alertmanager/alertmanager.yaml b/manifests/alertmanager/alertmanager.yaml
new file mode 100644
index 00000000..ce67f3bb
--- /dev/null
+++ b/manifests/alertmanager/alertmanager.yaml
@@ -0,0 +1,9 @@
+apiVersion: "monitoring.coreos.com/v1alpha1"
+kind: "Alertmanager"
+metadata:
+  name: "alertmanager-main"
+  labels:
+    alertmanager: "main"
+spec:
+  replicas: 3
+  version: v0.5.1
diff --git a/manifests/examples/example-app/prometheus-frontend.yaml b/manifests/examples/example-app/prometheus-frontend.yaml
index fe3c1cfe..80fd9e04 100644
--- a/manifests/examples/example-app/prometheus-frontend.yaml
+++ b/manifests/examples/example-app/prometheus-frontend.yaml
@@ -6,7 +6,7 @@ metadata:
   labels:
     prometheus: frontend
 spec:
-  version: v1.3.0
+  version: v1.4.1
   serviceMonitors:
   - selector:
       matchLabels:
@@ -18,3 +18,8 @@ spec:
       # production use. This value is mainly meant for demonstration/testing
       # purposes.
       memory: 400Mi
+  alerting:
+    alertmanagers:
+    - namespace: monitoring
+      name: alertmanager-main
+      port: web
diff --git a/manifests/prometheus/prometheus-k8s.yaml b/manifests/prometheus/prometheus-k8s.yaml
index 5f04fbcc..602ff146 100644
--- a/manifests/prometheus/prometheus-k8s.yaml
+++ b/manifests/prometheus/prometheus-k8s.yaml
@@ -5,7 +5,7 @@ metadata:
   labels:
     prometheus: k8s
 spec:
-  version: v1.3.0
+  version: v1.4.1
   resources:
     requests:
       # 2Gi is default, but won't schedule if you don't have a node with >2Gi
@@ -13,3 +13,8 @@ spec:
       # production use. This value is mainly meant for demonstration/testing
       # purposes.
       memory: 400Mi
+  alerting:
+    alertmanagers:
+    - namespace: monitoring
+      name: alertmanager-main
+      port: web
-- 
GitLab