Browse Source

Merge pull request #8127 from ironcladlou/alertmanager-config

Add Alertmanager configuration
OpenShift Merge Robot 7 years ago
parent
commit
ac00c19d8f

+ 15 - 0
roles/openshift_cluster_monitoring_operator/README.md

@@ -18,6 +18,21 @@ To uninstall, set:
 openshift_cluster_monitoring_operator_install: false
 ```
 
+## Configuring Alertmanager
+
+The Monitoring Operator comes with a [default no-op Alertmanager configuration](./defaults/main.yml). To supply a new configuration, set:
+
+```yaml
+openshift_cluster_monitoring_operator_alertmanager_config: |+
+  global:
+    # ...
+  route:
+    # ...
+  receivers:
+    # ...
+```
+
+The value of the variable should be a complete [Alertmanager configuration file](https://prometheus.io/docs/alerting/configuration/).
 
 ## Monitoring new components 
 

+ 17 - 0
roles/openshift_cluster_monitoring_operator/defaults/main.yml

@@ -5,3 +5,20 @@ openshift_cluster_monitoring_operator_prometheus_repo: quay.io/prometheus/promet
 openshift_cluster_monitoring_operator_alertmanager_repo: quay.io/prometheus/alertmanager
 openshift_cluster_monitoring_operator_prometheus_reloader_repo: quay.io/coreos/prometheus-config-reloader
 openshift_cluster_monitoring_oeprator_configmap_reloader_repo: quay.io/coreos/configmap-reload
+
+openshift_cluster_monitoring_operator_alertmanager_config: |+
+  global:
+    resolve_timeout: 5m
+  route:
+    group_wait: 30s
+    group_interval: 5m
+    repeat_interval: 12h
+    receiver: default
+    routes:
+    - match:
+        alertname: DeadDansSwitch
+      repeat_interval: 5m
+      receiver: deadmansswitch
+  receivers:
+  - name: default
+  - name: deadmansswitch

+ 14 - 0
roles/openshift_cluster_monitoring_operator/files/cluster-monitoring-operator.yaml

@@ -24,6 +24,9 @@ parameters:
   value: quay.io/coreos/prometheus-config-reloader
 - name: CONFIG_RELOADER_IMAGE
   value: quay.io/coreos/configmap-reload
+- name: ALERTMANAGER_CONFIG
+  required: true
+  description: A complete (base64-encoded) Alertmanager configuration YAML file.
 - name: NAMESPACE
   # This namespace cannot be changed. Only `openshift-monitoring` is supported.
   value: openshift-monitoring
@@ -43,6 +46,17 @@ objects:
         baseImage: ${PROMETHEUS_IMAGE}
       alertmanagerMain:
         baseImage: ${ALERTMANAGER_IMAGE}
+
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: alertmanager-main
+    namespace: ${NAMESPACE}
+    labels:
+      k8s-app: alertmanager
+  data:
+    alertmanager.yaml: "${ALERTMANAGER_CONFIG}"
+
 - apiVersion: rbac.authorization.k8s.io/v1beta1
   kind: ClusterRole
   metadata: {name: cluster-monitoring-operator}

+ 1 - 0
roles/openshift_cluster_monitoring_operator/tasks/install.yaml

@@ -32,6 +32,7 @@
     --param PROMETHEUS_IMAGE="{{ openshift_cluster_monitoring_operator_prometheus_repo }}"
     --param PROMETHEUS_CONFIG_RELOADER_IMAGE="{{ openshift_cluster_monitoring_operator_prometheus_reloader_repo }}"
     --param CONFIG_RELOADER_IMAGE="{{ openshift_cluster_monitoring_oeprator_configmap_reloader_repo }}"
+    --param ALERTMANAGER_CONFIG="{{ openshift_cluster_monitoring_operator_alertmanager_config | b64encode }}"
     --config={{ mktemp.stdout }}/admin.kubeconfig
     | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -
   with_items: