From 79aacdd22f7538952bf964b71c543626ac53b71b Mon Sep 17 00:00:00 2001
From: Thomas Schneider <qsx@chaotikum.eu>
Date: Sun, 14 Nov 2021 18:27:39 +0100
Subject: [PATCH] alertmanager: Add Gentoo support

---
 alertmanager/handlers/main.yml          | 18 ++++++++++++--
 alertmanager/tasks/debian.yml           | 24 ++++++++++++++++++
 alertmanager/tasks/gentoo.yml           | 33 +++++++++++++++++++++++++
 alertmanager/tasks/main.yml             | 23 +----------------
 alertmanager/templates/override.conf.j2 |  4 +++
 5 files changed, 78 insertions(+), 24 deletions(-)
 create mode 100644 alertmanager/tasks/debian.yml
 create mode 100644 alertmanager/tasks/gentoo.yml
 create mode 100644 alertmanager/templates/override.conf.j2

diff --git a/alertmanager/handlers/main.yml b/alertmanager/handlers/main.yml
index 94a8c21..89ae186 100644
--- a/alertmanager/handlers/main.yml
+++ b/alertmanager/handlers/main.yml
@@ -1,11 +1,25 @@
 ---
 
-- name: Restart alertmanager
+- name: Reload systemd
+  systemd:
+    daemon_reload: true
+
+- name: Restart prometheus-alertmanager
   systemd:
     name: prometheus-alertmanager.service
     state: restarted
 
-- name: Reload alertmanager
+- name: Reload prometheus-alertmanager
   systemd:
     name: prometheus-alertmanager.service
     state: reloaded
+
+- name: Restart alertmanager
+  systemd:
+    name: alertmanager.service
+    state: restarted
+
+- name: Reload alertmanager
+  systemd:
+    name: alertmanager.service
+    state: reloaded
diff --git a/alertmanager/tasks/debian.yml b/alertmanager/tasks/debian.yml
new file mode 100644
index 0000000..155fd4b
--- /dev/null
+++ b/alertmanager/tasks/debian.yml
@@ -0,0 +1,24 @@
+---
+
+- name: Install alertmanager
+  apt:
+    name: prometheus-alertmanager
+    state: present
+
+- name: Configure alertmanager command arguments
+  template:
+    src: default.j2
+    dest: /etc/default/prometheus-alertmanager
+  notify:
+    - Restart prometheus-alertmanager
+  tags:
+    - config
+
+- name: Configure alertmanager
+  template:
+    src: alertmanager.yml.j2
+    dest: /etc/prometheus/alertmanager.yml
+  notify:
+    - Reload prometheus-alertmanager
+  tags:
+    - config
diff --git a/alertmanager/tasks/gentoo.yml b/alertmanager/tasks/gentoo.yml
new file mode 100644
index 0000000..cc10dc7
--- /dev/null
+++ b/alertmanager/tasks/gentoo.yml
@@ -0,0 +1,33 @@
+---
+
+- name: Install alertmanager
+  portage:
+    package:
+      - app-metrics/alertmanager
+    state: present
+
+- name: Create systemd override directory
+  file:
+    path: /etc/systemd/system/alertmanager.service.d
+    state: directory
+
+- name: Configure alertmanager command arguments
+  template:
+    src: override.conf.j2
+    dest: /etc/systemd/system/alertmanager.service.d/override.conf
+  notify:
+    - Reload systemd
+    - Restart alertmanager
+
+- name: Configure alertmanager
+  template:
+    src: alertmanager.yml.j2
+    dest: /etc/alertmanager/config.yml
+  notify:
+    - Reload alertmanager
+
+- name: Enable and start alertmanager
+  systemd:
+    name: alertmanager.service
+    state: started
+    enabled: true
diff --git a/alertmanager/tasks/main.yml b/alertmanager/tasks/main.yml
index 71f6185..91f8b30 100644
--- a/alertmanager/tasks/main.yml
+++ b/alertmanager/tasks/main.yml
@@ -1,24 +1,3 @@
 ---
 
-- name: Install alertmanager
-  apt:
-    name: prometheus-alertmanager
-    state: present
-
-- name: Configure alertmanager command arguments
-  template:
-    src: default.j2
-    dest: /etc/default/prometheus-alertmanager
-  notify:
-    - Restart alertmanager
-  tags:
-    - config
-
-- name: Configure alertmanager
-  template:
-    src: alertmanager.yml.j2
-    dest: /etc/prometheus/alertmanager.yml
-  notify:
-    - Reload alertmanager
-  tags:
-    - config
+- include_tasks: "{{ ansible_distribution|lower }}.yml"
diff --git a/alertmanager/templates/override.conf.j2 b/alertmanager/templates/override.conf.j2
new file mode 100644
index 0000000..a44f71d
--- /dev/null
+++ b/alertmanager/templates/override.conf.j2
@@ -0,0 +1,4 @@
+{# -*- systemd -*- #}
+[Service]
+ExecStart=
+ExecStart=/usr/bin/alertmanager {{ prometheus_alertmanager_args }}
-- 
GitLab