+ {{ "{{" }} else {{ "}}" }} + | + {{ "{{" }} end {{ "}}" }} + {{ "{{" }} .Alerts | len {{ "}}" }} alert{{ "{{" }} if gt (len .Alerts) 1 {{ "}}" }}s{{ "{{" }} end {{ "}}" }} + | +||||
+
|
+
diff --git a/deploy/helm/apps/charts/prometheus/charts/alertmanager/.helmignore b/deploy/helm/apps/charts/prometheus/charts/alertmanager/.helmignore new file mode 100644 index 00000000..f0c13194 --- /dev/null +++ b/deploy/helm/apps/charts/prometheus/charts/alertmanager/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/deploy/helm/apps/charts/prometheus/charts/alertmanager/Chart.yaml b/deploy/helm/apps/charts/prometheus/charts/alertmanager/Chart.yaml new file mode 100644 index 00000000..c2594869 --- /dev/null +++ b/deploy/helm/apps/charts/prometheus/charts/alertmanager/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: A Helm chart for Kubernetes +name: alertmanager +version: 0.1.0 diff --git a/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/config.yaml b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/config.yaml new file mode 100644 index 00000000..554d93e3 --- /dev/null +++ b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/config.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: alertmanager-config + namespace: vortex +data: + alertmanager.yml: |- + global: + smtp_smarthost: '{{ .Values.config.smtpHost }}' + smtp_from: '{{ .Values.config.smtpFrom }}' + smtp_auth_username: '{{ .Values.config.smtpUsername }}' + smtp_auth_password: '{{ .Values.config.smtpPassword }}' + + route: + group_by: ['admin', 'email_to'] + receiver: admin + routes: + - match: + admin: true + receiver: admin + - match: + admin: false + receiver: email_router + + receivers: + - name: admin + email_configs: + - to: "{{ .Values.config.adminEmail }}" + headers: { Subject: "[WARN] Alert Email From Vortex" } + html: '{{ "{{" }} template "email.html" . {{ "}}" }}' + - name: email_router + email_configs: + - to: "{{ "{{" }} .GroupLabels.email_to {{ "}}" }}@gmail.com" + headers: { Subject: "[WARN] Alert Email From Vortex" } + html: '{{ "{{" }} template "email.html" . {{ "}}" }}' + + templates: + - '/etc/email-template/email.tmpl' diff --git a/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/deployment.yaml b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/deployment.yaml new file mode 100644 index 00000000..e3c67c97 --- /dev/null +++ b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/deployment.yaml @@ -0,0 +1,67 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: alertmanager + namespace: vortex + labels: + app: alertmanager +spec: + replicas: 1 + template: + metadata: + labels: + app: alertmanager + spec: + containers: + - name: prometheus-alertmanager + image: prom/alertmanager:{{ .Values.controller.imageTag }} + imagePullPolicy: "IfNotPresent" + args: + - --config.file=/etc/config/alertmanager.yml + - --storage.path=/data + - --web.external-url=/ + ports: + - containerPort: 9093 + readinessProbe: + httpGet: + path: /#/status + port: 9093 + initialDelaySeconds: 30 + timeoutSeconds: 30 + volumeMounts: + - name: config-volume + mountPath: /etc/config + - name: storage-volume + mountPath: "/data" + subPath: "" + - name: email-template + mountPath: /etc/email-template + resources: + limits: + cpu: 10m + memory: 50Mi + requests: + cpu: 10m + memory: 50Mi + - name: prometheus-alertmanager-configmap-reload + image: "jimmidyson/configmap-reload:v0.1" + imagePullPolicy: "IfNotPresent" + args: + - --volume-dir=/etc/config + - --webhook-url=http://localhost:9093/-/reload + volumeMounts: + - name: config-volume + mountPath: /etc/config + readOnly: true + resources: + requests: + cpu: {{ .Values.controller.cpu }} + volumes: + - name: storage-volume + emptyDir: {} + - name: config-volume + configMap: + name: alertmanager-config + - name: email-template + configMap: + name: alertmanager-email-template \ No newline at end of file diff --git a/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/email-tempalte.yaml b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/email-tempalte.yaml new file mode 100644 index 00000000..87e83d18 --- /dev/null +++ b/deploy/helm/apps/charts/prometheus/charts/alertmanager/templates/email-tempalte.yaml @@ -0,0 +1,365 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: alertmanager-email-template + namespace: vortex +data: + email.tmpl: |- + {{ "{{" }} define "email.html" {{ "}}" }} + + + +
+ + ++ |
+
+
+
|
+ + |