changeset 69:6a021aa7b4be

collect alert obj yaml config for a minute (moving it to py)
author drewp@bigasterisk.com
date Fri, 03 May 2024 11:56:34 -0700
parents c5e98d891638
children 68164135ae66
files create_k8s.py deploy_alertmanager.yaml deploy_vmalert.yaml ingress_alertmanager.yaml k8s_config_alerts/deploy_alertmanager.yaml k8s_config_alerts/deploy_vmalert.yaml k8s_config_alerts/ingress_alertmanager.yaml k8s_config_alerts/volumes_alert.yaml volumes_alert.yaml
diffstat 9 files changed, 197 insertions(+), 190 deletions(-) [+]
line wrap: on
line diff
--- a/create_k8s.py	Fri May 03 11:32:24 2024 -0700
+++ b/create_k8s.py	Fri May 03 11:56:34 2024 -0700
@@ -211,6 +211,13 @@
     createSvc(f'{objPrefix}-3index', f'{objPrefix}-index', [{'port': 80, 'targetPort': 80}])
 
 
+def createAlertObjs(objPrefix, webRoot):
+    (build / f'{objPrefix}-4-vmalert_0pv.yaml').write_text(
+        toJson(
+
+        )
+    )
+
 def main():
     tzArg = "-loggerTimezone=America/Los_Angeles"
     objPrefix = "victoriametrics"  # prefix on all k8s object names
@@ -246,7 +253,7 @@
     """
     createIngress(f'{objPrefix}-2ingress.yaml', objPrefix, policy, ingressPaths, webHost)
     createIndex(objPrefix, webRoot, makeIndexHtml(objPrefix, webRoot, webHost))
-
+    createAlertObjs(objPrefix, webRoot)
 
 main()
 
--- a/deploy_alertmanager.yaml	Fri May 03 11:32:24 2024 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: alertmanager
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: alertmanager
-  template:
-    metadata:
-      labels:
-        app: alertmanager
-    spec:
-      volumes:
-        - name: opt-alertmanager
-          persistentVolumeClaim:
-            claimName: opt-alertmanager
-      serviceAccountName: victoriametrics
-      containers:
-        - name: alertmanager
-          image: docker.io/prom/alertmanager:v0.27.0
-          args:
-            - --config.file=/alertmanager/alertmanager.yml
-            - --web.external-url=https://bigasterisk.com/alertmanager/
-            - --web.route-prefix=/
-            - --log.level=info
-          ports:
-          - containerPort: 9093
-          volumeMounts:
-          - name: opt-alertmanager
-            mountPath: /alertmanager
-      affinity:
-        nodeAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-            nodeSelectorTerms:
-            - matchExpressions:
-              - key: "kubernetes.io/hostname"
-                operator: In
-                values: ["ditto"]
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: alertmanager
-spec:
-  ports:
-  - port: 80
-    targetPort: 9093
-  selector:
-    app: alertmanager
--- a/deploy_vmalert.yaml	Fri May 03 11:32:24 2024 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: vmalert
-spec:
-  replicas: 1
-  strategy: { type: Recreate }
-  selector:
-    matchLabels:
-      app: vmalert
-  template:
-    metadata:
-      labels:
-        app: vmalert
-      annotations:
-        prometheus.io/scrape: "true"
-    spec:
-      volumes:
-        - name: config
-          configMap: { name: victoriametrics-config }
-      serviceAccountName: victoriametrics
-      containers:
-        - name: vmalert
-          image: docker.io/victoriametrics/vmalert:v1.91.2
-          args:
-            - -configCheckInterval=5s
-            - -datasource.url=http://victoriametrics/m/
-            - -datasource.queryStep=5m
-            - -evaluationInterval=1m
-            - -external.url=https://bigasterisk.com/vmalert
-            - -loggerLevel=INFO
-            - -loggerTimezone=America/Los_Angeles
-            - -memory.allowedBytes=512MB
-            - -notifier.url=http://alertmanager
-            - -remoteRead.url=http://victoriametrics/m/
-            - -remoteWrite.url=http://victoriametrics/m/
-            - -rule=/local/rules
-          ports:
-            - containerPort: 8880
-          volumeMounts:
-            - { name: config, mountPath: /local }
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: vmalert
-spec:
-  ports:
-    - port: 80
-      targetPort: 8880
-  selector:
-    app: vmalert
--- a/ingress_alertmanager.yaml	Fri May 03 11:32:24 2024 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: vmalert
-  annotations:
-    cert-manager.io/cluster-issuer: letsencrypt-prod
-    ingress.pomerium.io/allow_public_unauthenticated_access: "false"
-    ingress.pomerium.io/pass_identity_headers: "true"
-    ingress.pomerium.io/preserve_host_header: "true"
-    ingress.pomerium.io/policy: |
-      allow:
-        or: 
-          - { email: { is: "drewpca@gmail.com" }}
-          - { email: { is: "kelsimp@gmail.com" }}
-    # ingress.pomerium.io/prefix_rewrite: "/vmalert/"
-spec:
-  ingressClassName: pomerium
-  rules:
-    - host: "bigasterisk.com"
-      http:
-        paths:
-          - pathType: Prefix
-            path: /vmalert/
-            backend: { service: { name: vmalert, port: { number: 80 } } }
-  tls:
-    - hosts: [bigasterisk.com]
-      secretName: bigasterisk.com-tls
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: alertmanager
-  annotations:
-    cert-manager.io/cluster-issuer: letsencrypt-prod
-    ingress.pomerium.io/allow_public_unauthenticated_access: "false"
-    ingress.pomerium.io/pass_identity_headers: "true"
-    ingress.pomerium.io/preserve_host_header: "true"
-    ingress.pomerium.io/policy: |
-      allow:
-        or: 
-          - { email: { is: "drewpca@gmail.com" }}
-          - { email: { is: "kelsimp@gmail.com" }}
-    ingress.pomerium.io/prefix_rewrite: "/"
-spec:
-  ingressClassName: pomerium
-  rules:
-    - host: "bigasterisk.com"
-      http:
-        paths:
-          - pathType: Prefix
-            path: /alertmanager/
-            backend: { service: { name: alertmanager, port: { number: 80 } } }
-  tls:
-    - hosts: [bigasterisk.com]
-      secretName: bigasterisk.com-tls
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s_config_alerts/deploy_alertmanager.yaml	Fri May 03 11:56:34 2024 -0700
@@ -0,0 +1,51 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: alertmanager
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: alertmanager
+  template:
+    metadata:
+      labels:
+        app: alertmanager
+    spec:
+      volumes:
+        - name: opt-alertmanager
+          persistentVolumeClaim:
+            claimName: opt-alertmanager
+      serviceAccountName: victoriametrics
+      containers:
+        - name: alertmanager
+          image: docker.io/prom/alertmanager:v0.27.0
+          args:
+            - --config.file=/alertmanager/alertmanager.yml
+            - --web.external-url=https://bigasterisk.com/alertmanager/
+            - --web.route-prefix=/
+            - --log.level=info
+          ports:
+          - containerPort: 9093
+          volumeMounts:
+          - name: opt-alertmanager
+            mountPath: /alertmanager
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: "kubernetes.io/hostname"
+                operator: In
+                values: ["ditto"]
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: alertmanager
+spec:
+  ports:
+  - port: 80
+    targetPort: 9093
+  selector:
+    app: alertmanager
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s_config_alerts/deploy_vmalert.yaml	Fri May 03 11:56:34 2024 -0700
@@ -0,0 +1,52 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: vmalert
+spec:
+  replicas: 1
+  strategy: { type: Recreate }
+  selector:
+    matchLabels:
+      app: vmalert
+  template:
+    metadata:
+      labels:
+        app: vmalert
+      annotations:
+        prometheus.io/scrape: "true"
+    spec:
+      volumes:
+        - name: config
+          configMap: { name: victoriametrics-config }
+      serviceAccountName: victoriametrics
+      containers:
+        - name: vmalert
+          image: docker.io/victoriametrics/vmalert:v1.91.2
+          args:
+            - -configCheckInterval=5s
+            - -datasource.url=http://victoriametrics/m/
+            - -datasource.queryStep=5m
+            - -evaluationInterval=1m
+            - -external.url=https://bigasterisk.com/vmalert
+            - -loggerLevel=INFO
+            - -loggerTimezone=America/Los_Angeles
+            - -memory.allowedBytes=512MB
+            - -notifier.url=http://alertmanager
+            - -remoteRead.url=http://victoriametrics/m/
+            - -remoteWrite.url=http://victoriametrics/m/
+            - -rule=/local/rules
+          ports:
+            - containerPort: 8880
+          volumeMounts:
+            - { name: config, mountPath: /local }
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: vmalert
+spec:
+  ports:
+    - port: 80
+      targetPort: 8880
+  selector:
+    app: vmalert
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s_config_alerts/ingress_alertmanager.yaml	Fri May 03 11:56:34 2024 -0700
@@ -0,0 +1,55 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: vmalert
+  annotations:
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+    ingress.pomerium.io/allow_public_unauthenticated_access: "false"
+    ingress.pomerium.io/pass_identity_headers: "true"
+    ingress.pomerium.io/preserve_host_header: "true"
+    ingress.pomerium.io/policy: |
+      allow:
+        or: 
+          - { email: { is: "drewpca@gmail.com" }}
+          - { email: { is: "kelsimp@gmail.com" }}
+    # ingress.pomerium.io/prefix_rewrite: "/vmalert/"
+spec:
+  ingressClassName: pomerium
+  rules:
+    - host: "bigasterisk.com"
+      http:
+        paths:
+          - pathType: Prefix
+            path: /vmalert/
+            backend: { service: { name: vmalert, port: { number: 80 } } }
+  tls:
+    - hosts: [bigasterisk.com]
+      secretName: bigasterisk.com-tls
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: alertmanager
+  annotations:
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+    ingress.pomerium.io/allow_public_unauthenticated_access: "false"
+    ingress.pomerium.io/pass_identity_headers: "true"
+    ingress.pomerium.io/preserve_host_header: "true"
+    ingress.pomerium.io/policy: |
+      allow:
+        or: 
+          - { email: { is: "drewpca@gmail.com" }}
+          - { email: { is: "kelsimp@gmail.com" }}
+    ingress.pomerium.io/prefix_rewrite: "/"
+spec:
+  ingressClassName: pomerium
+  rules:
+    - host: "bigasterisk.com"
+      http:
+        paths:
+          - pathType: Prefix
+            path: /alertmanager/
+            backend: { service: { name: alertmanager, port: { number: 80 } } }
+  tls:
+    - hosts: [bigasterisk.com]
+      secretName: bigasterisk.com-tls
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s_config_alerts/volumes_alert.yaml	Fri May 03 11:56:34 2024 -0700
@@ -0,0 +1,31 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: opt-alertmanager
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  hostPath:
+    path: "/opt/alertmanager"
+  capacity:
+    storage: 50Gi
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Retain
+  claimRef:
+    namespace: default
+    name: opt-alertmanager
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: opt-alertmanager
+spec:
+  storageClassName: ""
+  volumeName: "opt-alertmanager"
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 50Gi
\ No newline at end of file
--- a/volumes_alert.yaml	Fri May 03 11:32:24 2024 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: opt-alertmanager
-  labels:
-    type: local
-spec:
-  storageClassName: manual
-  hostPath:
-    path: "/opt/alertmanager"
-  capacity:
-    storage: 50Gi
-  accessModes:
-    - ReadWriteOnce
-  persistentVolumeReclaimPolicy: Retain
-  claimRef:
-    namespace: default
-    name: opt-alertmanager
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: opt-alertmanager
-spec:
-  storageClassName: ""
-  volumeName: "opt-alertmanager"
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 50Gi
\ No newline at end of file