changeset 78:a4767069d8b0

alertmanager-conf is now a cmap
author drewp@bigasterisk.com
date Wed, 26 Jun 2024 22:29:10 -0700
parents 489c5d9a7dbc
children bbe646f61cb0
files create_k8s.py
diffstat 1 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/create_k8s.py	Wed Jun 26 22:28:25 2024 -0700
+++ b/create_k8s.py	Wed Jun 26 22:29:10 2024 -0700
@@ -254,6 +254,14 @@
 
 
 def createAlertmanagerObjs(tzArg, objPrefix, webRoot, policy):
+    confFilename = "alertmanager.yml"
+
+    (build / f'{objPrefix}-5alertmanager_conf_cmap.yaml').write_text(toJson({
+        "apiVersion": "v1", "kind": "ConfigMap", "metadata": { "name": "alertmanager-conf" },
+        "data": {
+            confFilename: Path("./alertmanager.yaml").read_text(),
+        }
+    })) # yapf: disable
     createPv(f'{objPrefix}-5alertmanager', "opt-alertmanager", '50Gi')
     createPvc(f'{objPrefix}-5alertmanager', "opt-alertmanager", '50Gi')
 
@@ -267,18 +275,24 @@
                 "template": {
                     "metadata": { "labels": { "app": amName } },
                     "spec": {
-                        "volumes": [{ "name": "opt-alertmanager", "persistentVolumeClaim": { "claimName": "opt-alertmanager" } }],
+                        "volumes": [
+                            { "name": "opt-alertmanager", "persistentVolumeClaim": { "claimName": "opt-alertmanager" } },
+                            { "name": "alertmanager-conf", "configMap": { "name": "alertmanager-conf" } }
+                        ],
                         "serviceAccountName": "victoriametrics",
                         "containers": [{
                             "name": "alertmanager", "image": "docker.io/prom/alertmanager:v0.27.0", "imagePullPolicy": "IfNotPresent",
                             "args": [
                                 "--log.level=info",
-                                "--config.file=/alertmanager/alertmanager.yml",
+                                f"--config.file=/conf/{confFilename}",
                                 f"--web.external-url=https://bigasterisk.com{webRoot}/alertmanager/",
                                 f"--web.route-prefix={webRoot}/alertmanager",
                             ],
                             "ports": [{ "containerPort": 9093 }],
-                            "volumeMounts": [{ "name": "opt-alertmanager", "mountPath": "/alertmanager" }]
+                            "volumeMounts": [
+                                { "name": "opt-alertmanager", "mountPath": "/alertmanager" },
+                                { "name": "alertmanager-conf", "mountPath": "/conf" }
+                            ]
                         }],
                         "affinity": affinityToNode("ditto"),
                     }