added repo
This commit is contained in:
@@ -0,0 +1,388 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "vmalert.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Maintainer - Akshay Gupta
|
||||
Tolerations and nodeSelector via Resources Requests.
|
||||
*/}}
|
||||
{{- define "meesho.server.getCpu" -}}
|
||||
{{- $cpu := toString .Values.server.resources.requests.cpu -}}
|
||||
{{- if contains "m" $cpu -}}
|
||||
{{- $cpu := trimAll "m" $cpu | float64 -}}
|
||||
{{- $cpu := $cpu | float64 -}}
|
||||
{{- printf "%f" $cpu -}}
|
||||
{{- else -}}
|
||||
{{- $cpu := mulf $cpu 1000.000 -}}
|
||||
{{- printf "%f" $cpu -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.server.getMem" -}}
|
||||
{{- $mem := toString .Values.server.resources.requests.memory -}}
|
||||
{{- if contains "Mi" $mem -}}
|
||||
{{- $mem := trimAll "Mi" $mem | float64 -}}
|
||||
{{- printf "%f" $mem -}}
|
||||
{{- else if contains "Gi" $mem -}}
|
||||
{{- $mem := trimAll "Gi" $mem | float64 -}}
|
||||
{{- $mem := mulf $mem 1024.000 -}}
|
||||
{{- printf "%f" $mem -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.server.getRatio" -}}
|
||||
{{- $cpu := (include "meesho.server.getCpu" .) -}}
|
||||
{{- $mem := (include "meesho.server.getMem" .) -}}
|
||||
{{- $ratio := divf $mem $cpu -}}
|
||||
{{- if gt $ratio 4.00 -}}
|
||||
{{- printf "1to8" -}}
|
||||
{{- else if gt $ratio 2.00 -}}
|
||||
{{- printf "1to4" -}}
|
||||
{{- else -}}
|
||||
{{- printf "1to2" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.server.dedicatedValue" -}}
|
||||
{{- if (index .Values.server.labels "arch") -}}
|
||||
{{- if (index .Values.server.labels "runpod") -}}
|
||||
{{- $cpu := (include "meesho.server.getCpu" .) -}}
|
||||
{{- $mem := (include "meesho.server.getMem" .) -}}
|
||||
{{- $ratio := (include "meesho.server.getRatio" .) -}}
|
||||
{{- $arch := .Values.server.labels.arch -}}
|
||||
{{- $runPod := .Values.server.labels.runpod -}}
|
||||
{{- printf "%s-%s-%s" $ratio $arch $runPod -}}
|
||||
{{- else -}}
|
||||
{{- printf "missing-runpod-label" -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- printf "missing-arch-label" -}}
|
||||
{{- end -}}
|
||||
{{/*- printf "%s-%s-%s-%s-%s" $ratio $arch $runPod $cpu $mem -*/}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Maintainer - Akshay Gupta
|
||||
Tolerations and nodeSelector via Resources Requests.
|
||||
*/}}
|
||||
{{- define "meesho.alertmanager.getCpu" -}}
|
||||
{{- $cpu := toString .Values.alertmanager.resources.requests.cpu -}}
|
||||
{{- if contains "m" $cpu -}}
|
||||
{{- $cpu := trimAll "m" $cpu | float64 -}}
|
||||
{{- $cpu := $cpu | float64 -}}
|
||||
{{- printf "%f" $cpu -}}
|
||||
{{- else -}}
|
||||
{{- $cpu := mulf $cpu 1000.000 -}}
|
||||
{{- printf "%f" $cpu -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.alertmanager.getMem" -}}
|
||||
{{- $mem := toString .Values.alertmanager.resources.requests.memory -}}
|
||||
{{- if contains "Mi" $mem -}}
|
||||
{{- $mem := trimAll "Mi" $mem | float64 -}}
|
||||
{{- printf "%f" $mem -}}
|
||||
{{- else if contains "Gi" $mem -}}
|
||||
{{- $mem := trimAll "Gi" $mem | float64 -}}
|
||||
{{- $mem := mulf $mem 1024.000 -}}
|
||||
{{- printf "%f" $mem -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.alertmanager.getRatio" -}}
|
||||
{{- $cpu := (include "meesho.alertmanager.getCpu" .) -}}
|
||||
{{- $mem := (include "meesho.alertmanager.getMem" .) -}}
|
||||
{{- $ratio := divf $mem $cpu -}}
|
||||
{{- if gt $ratio 4.00 -}}
|
||||
{{- printf "1to8" -}}
|
||||
{{- else if gt $ratio 2.00 -}}
|
||||
{{- printf "1to4" -}}
|
||||
{{- else -}}
|
||||
{{- printf "1to2" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "meesho.alertmanager.dedicatedValue" -}}
|
||||
{{- if (index .Values.alertmanager.labels "arch") -}}
|
||||
{{- if (index .Values.alertmanager.labels "runpod") -}}
|
||||
{{- $cpu := (include "meesho.alertmanager.getCpu" .) -}}
|
||||
{{- $mem := (include "meesho.alertmanager.getMem" .) -}}
|
||||
{{- $ratio := (include "meesho.alertmanager.getRatio" .) -}}
|
||||
{{- $arch := .Values.alertmanager.labels.arch -}}
|
||||
{{- $runPod := .Values.alertmanager.labels.runpod -}}
|
||||
{{- printf "%s-%s-%s" $ratio $arch $runPod -}}
|
||||
{{- else -}}
|
||||
{{- printf "missing-runpod-label" -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- printf "missing-arch-label" -}}
|
||||
{{- end -}}
|
||||
{{/*- printf "%s-%s-%s-%s-%s" $ratio $arch $runPod $cpu $mem -*/}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "vmalert.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "vmalert.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create unified labels for vmalert components
|
||||
*/}}
|
||||
{{- define "vmalert.common.matchLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "vmalert.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.common.metaLabels" -}}
|
||||
helm.sh/chart: {{ include "vmalert.chart" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.server.labels" -}}
|
||||
{{- toYaml .Values.server.labels | nindent 0 }}
|
||||
{{ include "vmalert.server.matchLabels" . }}
|
||||
{{ include "vmalert.common.metaLabels" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.server.matchLabels" -}}
|
||||
app: {{ .Values.server.name }}
|
||||
{{ include "vmalert.common.matchLabels" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a fully qualified server name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "vmalert.server.fullname" -}}
|
||||
{{- if .Values.server.fullnameOverride -}}
|
||||
{{- .Values.server.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- printf "%s-%s" .Release.Name .Values.server.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s-%s" .Release.Name $name .Values.server.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{- define "vmalert.server.configname" -}}
|
||||
{{- if .Values.server.configMap -}}
|
||||
{{- .Values.server.configMap -}}
|
||||
{{- else -}}
|
||||
{{- include "vmalert.server.fullname" . -}}-alert-rules-config
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "vmalert.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "vmalert.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
|
||||
{{- define "vmalert.alertmanager.labels" -}}
|
||||
{{- toYaml .Values.alertmanager.labels | nindent 0 }}
|
||||
{{ include "vmalert.alertmanager.matchLabels" . }}
|
||||
{{ include "vmalert.common.metaLabels" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.matchLabels" -}}
|
||||
app: alertmanager
|
||||
{{ include "vmalert.common.matchLabels" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a fully qualified server name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "vmalert.alertmanager.fullname" -}}
|
||||
{{- if .Values.alertmanager.fullnameOverride -}}
|
||||
{{- .Values.alertmanager.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- printf "%s-%s" .Release.Name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s-%s" .Release.Name $name .Values.alertmanager.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.configname" -}}
|
||||
{{- if .Values.alertmanager.configMap -}}
|
||||
{{- .Values.alertmanager.configMap -}}
|
||||
{{- else -}}
|
||||
{{- include "vmalert.alertmanager.fullname" . -}}-alertmanager-config
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.url" -}}
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
http://{{- include "vmalert.alertmanager.fullname" . -}}:9093
|
||||
{{- else -}}
|
||||
{{- .Values.server.notifier.alertmanager.url -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.urls" -}}
|
||||
{{- $urls := list -}}
|
||||
{{- with (include "vmalert.alertmanager.url" .) -}}
|
||||
{{- $urls = append $urls . -}}
|
||||
{{- end -}}
|
||||
{{- range .Values.server.notifiers }}
|
||||
{{- if not (eq .alertmanager.url "") -}}
|
||||
{{- $urls = append $urls .alertmanager.url -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- join "," $urls }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.passwords" -}}
|
||||
{{- $password := list -}}
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
{{- $password = append $password "" -}}
|
||||
{{- end -}}
|
||||
{{- $notifiers := append .Values.server.notifiers .Values.server.notifier }}
|
||||
{{- range $notifiers }}
|
||||
{{- if not (eq .alertmanager.url "") -}}
|
||||
{{- if and .alertmanager.basicAuth .alertmanager.basicAuth.password -}}
|
||||
{{- $password = append $password .alertmanager.basicAuth.password -}}
|
||||
{{- else -}}
|
||||
{{- $password = append $password "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{ include "_vmalert.optionalPrintList" $password }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.usernames" -}}
|
||||
{{- $usernames := list -}}
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
{{- $usernames = append $usernames "" -}}
|
||||
{{- end -}}
|
||||
{{- $notifiers := append .Values.server.notifiers .Values.server.notifier }}
|
||||
{{- range $notifiers }}
|
||||
{{- if not (eq .alertmanager.url "") -}}
|
||||
{{- if and .alertmanager.basicAuth .alertmanager.basicAuth.username -}}
|
||||
{{- $usernames = append $usernames .alertmanager.basicAuth.username -}}
|
||||
{{- else -}}
|
||||
{{- $usernames = append $usernames "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{ include "_vmalert.optionalPrintList" $usernames }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "vmalert.alertmanager.bearerTokens" -}}
|
||||
{{- $tokens := list -}}
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
{{- $tokens = append $tokens "" -}}
|
||||
{{- end -}}
|
||||
{{- $notifiers := append .Values.server.notifiers .Values.server.notifier }}
|
||||
{{- range $notifiers }}
|
||||
{{- if not (eq .alertmanager.url "") -}}
|
||||
{{- if and .alertmanager.bearer .alertmanager.bearer.token -}}
|
||||
{{- $tokens = append $tokens .alertmanager.bearer.token -}}
|
||||
{{- else -}}
|
||||
{{- $tokens = append $tokens "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{ include "_vmalert.optionalPrintList" $tokens }}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{- define "vmalert.alertmanager.bearerTokenFiles" -}}
|
||||
{{- $files := list -}}
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
{{- $files = append $files "" -}}
|
||||
{{- end -}}
|
||||
{{- $notifiers := append .Values.server.notifiers .Values.server.notifier }}
|
||||
{{- range $notifiers }}
|
||||
{{- if not (eq .alertmanager.url "") -}}
|
||||
{{- if and .alertmanager.bearer .alertmanager.bearer.tokenFile -}}
|
||||
{{- $files = append $files .alertmanager.bearer.tokenFile -}}
|
||||
{{- else -}}
|
||||
{{- $files = append $files "" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{ include "_vmalert.optionalPrintList" $files }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "_vmalert.optionalPrintList" }}
|
||||
{{- $str := join "," . -}}
|
||||
{{- $cleared := $str | replace "," "" | trim -}}
|
||||
{{- if eq $cleared "" -}}
|
||||
{{ $cleared }}
|
||||
{{- else -}}
|
||||
{{ $str }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for ingress.
|
||||
*/}}
|
||||
{{- define "vmalert.ingress.apiVersion" -}}
|
||||
{{- if and (.Capabilities.APIVersions.Has "networking.k8s.io/v1") -}}
|
||||
{{- print "networking.k8s.io/v1" -}}
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
|
||||
{{- print "networking.k8s.io/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return if ingress is stable.
|
||||
*/}}
|
||||
{{- define "vmalert.ingress.isStable" -}}
|
||||
{{- eq (include "vmalert.ingress.apiVersion" .) "networking.k8s.io/v1" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return if ingress supports ingressClassName.
|
||||
*/}}
|
||||
{{- define "vmalert.ingress.supportsIngressClassName" -}}
|
||||
{{- or (eq (include "vmalert.ingress.isStable" .) "true") (and (eq (include "vmalert.ingress.apiVersion" .) "networking.k8s.io/v1beta1")) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return if ingress supports pathType.
|
||||
*/}}
|
||||
{{- define "vmalert.ingress.supportsPathType" -}}
|
||||
{{- or (eq (include "vmalert.ingress.isStable" .) "true") (and (eq (include "vmalert.ingress.apiVersion" .) "networking.k8s.io/v1beta1")) -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if and .Values.alertmanager.enabled (eq .Values.alertmanager.configMap "") }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "vmalert.alertmanager.configname" .}}
|
||||
namespace: {{.Release.Namespace}}
|
||||
labels: {{- include "vmalert.alertmanager.labels" . | nindent 4}}
|
||||
data:
|
||||
alertmanager.yaml: |
|
||||
{{ toYaml .Values.alertmanager.config | nindent 4 }}
|
||||
|
||||
{{- range $key, $value := .Values.alertmanager.templates }}
|
||||
{{ $key }}: |-
|
||||
{{- $value | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,143 @@
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "vmalert.alertmanager.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.alertmanager.labels" . | nindent 4 }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "vmalert.alertmanager.matchLabels" . | nindent 6 }}
|
||||
{{- if .Values.alertmanager.persistentVolume.enabled }}
|
||||
strategy:
|
||||
# Must be "Recreate" when we have a persistent volume
|
||||
type: Recreate
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "vmalert.alertmanager.labels" . | nindent 8 }}
|
||||
{{- range $key, $value := .Values.alertmanager.podMetadata.labels }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include (print $.Template.BasePath "/alertmanager-configmap.yaml") . | sha256sum }}
|
||||
{{- range $key, $value := .Values.alertmanager.podMetadata.annotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.alertmanager.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ template "vmalert.serviceAccountName" . }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountToken }}
|
||||
{{- with .Values.alertmanager.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml .| nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ template "vmalert.name" . }}-alertmanager
|
||||
securityContext:
|
||||
{{- toYaml .Values.alertmanager.podSecurityContext | nindent 12 }}
|
||||
image: "{{ .Values.alertmanager.image }}:{{ .Values.alertmanager.tag }}"
|
||||
args:
|
||||
- --config.file=/config/alertmanager.yaml
|
||||
{{ if .Values.alertmanager.persistentVolume.enabled }}
|
||||
- {{ printf "%s=%s" "--storage.path" .Values.alertmanager.persistentVolume.mountPath | quote}}
|
||||
{{- else}}
|
||||
- --storage.path=/data
|
||||
{{- end}}
|
||||
- --data.retention={{ .Values.alertmanager.retention }}
|
||||
- --web.listen-address=0.0.0.0:9093
|
||||
- --cluster.advertise-address=$(POD_IP):6783
|
||||
{{ if .Values.alertmanager.baseURL }}
|
||||
- --web.external-url={{ .Values.alertmanager.baseURL }}
|
||||
{{- end }}
|
||||
{{ if .Values.alertmanager.baseURLPrefix }}
|
||||
- --web.route-prefix={{ .Values.alertmanager.baseURLPrefix }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.alertmanager.extraArgs }}
|
||||
- --{{ $key }}={{ $value }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: web
|
||||
containerPort: 9093
|
||||
env:
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: status.podIP
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
{{ if .Values.alertmanager.baseURLPrefix }}
|
||||
path: {{ .Values.alertmanager.baseURLPrefix }}/-/ready
|
||||
{{- else}}
|
||||
path: /-/ready
|
||||
{{- end }}
|
||||
port: web
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
{{ if .Values.alertmanager.baseURLPrefix }}
|
||||
path: {{ .Values.alertmanager.baseURLPrefix }}/-/healthy
|
||||
{{- else}}
|
||||
path: /-/healthy
|
||||
{{- end }}
|
||||
port: web
|
||||
volumeMounts:
|
||||
- name: storage
|
||||
{{- if .Values.alertmanager.persistentVolume.enabled }}
|
||||
mountPath: {{ .Values.alertmanager.persistentVolume.mountPath }}
|
||||
{{- else }}
|
||||
mountPath: /data
|
||||
{{- end }}
|
||||
- name: config
|
||||
mountPath: /config
|
||||
readOnly: true
|
||||
resources:
|
||||
{{- toYaml .Values.alertmanager.resources | nindent 12 }}
|
||||
{{- if .Values.alertmanager.priorityClassName }}
|
||||
priorityClassName: {{ .Values.alertmanager.priorityClassName | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.schedulerName }}
|
||||
schedulerName: "{{ .Values.schedulerName }}"
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- if .Values.dedicatedValue }}
|
||||
dedicated: {{ include "meesho.alertmanager.dedicatedValue" . }}
|
||||
{{- else }}
|
||||
{{- with .Values.alertmanager.nodeSelector }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
tolerations:
|
||||
{{- if .Values.dedicatedValue }}
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: {{ include "meesho.alertmanager.dedicatedValue" . }}
|
||||
effect: "NoSchedule"
|
||||
{{- else }}
|
||||
{{- with .Values.alertmanager.tolerations }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: storage
|
||||
{{- if .Values.alertmanager.persistentVolume.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.alertmanager.persistentVolume.existingClaim }}{{ .Values.alertmanager.persistentVolume.existingClaim }}{{- else }}{{ include "vmalert.alertmanager.fullname" . }}{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ include "vmalert.alertmanager.configname" . }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,50 @@
|
||||
{{- if and .Values.alertmanager.enabled .Values.alertmanager.ingress.enabled }}
|
||||
{{- $ingressApiIsStable := eq (include "vmalert.ingress.isStable" .) "true" -}}
|
||||
{{- $ingressSupportsIngressClassName := eq (include "vmalert.ingress.supportsIngressClassName" .) "true" -}}
|
||||
{{- $ingressSupportsPathType := eq (include "vmalert.ingress.supportsPathType" .) "true" -}}
|
||||
{{- $servicePort := .Values.alertmanager.service.port -}}
|
||||
{{- $ingressPathType := .Values.alertmanager.ingress.pathType -}}
|
||||
apiVersion: {{ include "vmalert.ingress.apiVersion" . }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
{{- with .Values.alertmanager.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .| indent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vmalert.alertmanager.labels" . | nindent 4 }}
|
||||
{{ with .Values.alertmanager.ingress.extraLabels }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{ end }}
|
||||
name: {{ template "vmalert.alertmanager.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
{{- if and $ingressSupportsIngressClassName .Values.alertmanager.ingress.ingressClassName }}
|
||||
ingressClassName: {{ .Values.alertmanager.ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- $serviceName := include "vmalert.alertmanager.fullname" . }}
|
||||
{{- range .Values.alertmanager.ingress.hosts }}
|
||||
- host: {{ .name }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ .path }}
|
||||
{{- if $ingressSupportsPathType }}
|
||||
pathType: {{ $ingressPathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $ingressApiIsStable }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ .port | default "http"}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if .Values.alertmanager.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.alertmanager.ingress.tls | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,26 @@
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
{{- if and .Values.alertmanager.persistentVolume.enabled (not .Values.alertmanager.persistentVolume.existingClaim)}}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "vmalert.alertmanager.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.alertmanager.labels" . | nindent 4 }}
|
||||
{{- with .Values.alertmanager.persistentVolume.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
{{- range .Values.alertmanager.persistentVolume.accessModes }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.alertmanager.persistentVolume.size | quote }}
|
||||
{{- if .Values.alertmanager.persistentVolume.storageClass }}
|
||||
storageClassName: {{ .Values.alertmanager.persistentVolume.storageClass }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,21 @@
|
||||
{{- if .Values.alertmanager.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- with .Values.alertmanager.service.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vmalert.alertmanager.labels" . | nindent 4 }}
|
||||
name: {{ template "vmalert.alertmanager.fullname" . }}
|
||||
spec:
|
||||
ports:
|
||||
- name: web
|
||||
port: 9093
|
||||
targetPort: web
|
||||
protocol: TCP
|
||||
selector:
|
||||
{{- include "vmalert.alertmanager.matchLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- if and .Values.rbac.create (not .Values.rbac.namespaced) }}
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: {{ template "vmalert.server.fullname" . }}-clusterrolebinding
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.rbac.extraLabels }}
|
||||
{{ toYaml . | indent 4}}
|
||||
{{- end }}
|
||||
{{- with .Values.rbac.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "vmalert.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ template "vmalert.server.fullname" . }}-clusterrole
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.rbac.extraLabels }}
|
||||
{{ toYaml . | indent 4}}
|
||||
{{- end }}
|
||||
annotations:
|
||||
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default'
|
||||
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
|
||||
{{- with .Values.rbac.annotations }}
|
||||
{{ toYaml . | indent 4}}
|
||||
{{- end }}
|
||||
spec:
|
||||
privileged: false
|
||||
allowPrivilegeEscalation: false
|
||||
requiredDropCapabilities:
|
||||
# Default set from Docker, with DAC_OVERRIDE and CHOWN
|
||||
- ALL
|
||||
volumes:
|
||||
- 'configMap'
|
||||
- 'emptyDir'
|
||||
- 'projected'
|
||||
- 'secret'
|
||||
- 'downwardAPI'
|
||||
- 'persistentVolumeClaim'
|
||||
hostNetwork: false
|
||||
hostIPC: false
|
||||
hostPID: false
|
||||
runAsUser:
|
||||
rule: 'RunAsAny'
|
||||
seLinux:
|
||||
rule: 'RunAsAny'
|
||||
supplementalGroups:
|
||||
rule: 'RunAsAny'
|
||||
fsGroup:
|
||||
rule: 'RunAsAny'
|
||||
readOnlyRootFilesystem: false
|
||||
{{- end }}
|
||||
@@ -0,0 +1,25 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.rbac.extraLabels }}
|
||||
{{ toYaml . | indent 4}}
|
||||
{{- end }}
|
||||
{{- with .Values.rbac.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }}
|
||||
rules:
|
||||
- apiGroups: ['extensions']
|
||||
resources: ['podsecuritypolicies']
|
||||
verbs: ['use']
|
||||
resourceNames: [{{ template "vmalert.server.fullname" . }}]
|
||||
{{- else }}
|
||||
rules: []
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.rbac.extraLabels }}
|
||||
{{ toYaml . | indent 4}}
|
||||
{{- end }}
|
||||
{{- with .Values.rbac.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "vmalert.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if eq .Values.server.configMap "" }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "vmalert.server.configname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels: {{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
data:
|
||||
alert-rules.yaml: |
|
||||
{{ toYaml .Values.server.config.alerts | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,224 @@
|
||||
{{- if and .Values.server.enabled -}}
|
||||
{{- if not .Values.server.extraArgs.rule }}
|
||||
{{- if and (eq .Values.server.configMap "") (eq (len .Values.server.config.alerts.groups) 0) -}}
|
||||
{{- fail "at least one item in `.server.config.alerts.groups` or `.server.extraArgs.rule` must be set " -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if (eq (include "vmalert.alertmanager.urls" . ) "") -}}
|
||||
{{- fail "alert manager URL must be specified. Please fill server.notifier.alertmanager.url or server.notifiers or enable Alertmanager in values file" -}}
|
||||
{{- end -}}
|
||||
{{- if eq .Values.server.datasource.url "" -}}
|
||||
{{- fail "server.datasource.url datasource URL must be specified" -}}
|
||||
{{- end -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "vmalert.server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.server.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
minReadySeconds: {{ .Values.server.minReadySeconds }}
|
||||
replicas: {{ .Values.server.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "vmalert.server.matchLabels" . | nindent 6 }}
|
||||
{{- with .Values.server.strategy }}
|
||||
strategy:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 8 }}
|
||||
{{- range $key, $value := .Values.server.podLabels }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
checksum/config: {{ include (print $.Template.BasePath "/server-alerts-configmap.yaml") . | sha256sum }}
|
||||
{{- range $key, $value := .Values.server.podAnnotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{ toYaml .Values.topologySpreadConstraints | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ template "vmalert.serviceAccountName" . }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.server.securityContext | nindent 8 }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountToken }}
|
||||
|
||||
initContainers:
|
||||
- name: clone-git-repo
|
||||
image: alpine/git
|
||||
args:
|
||||
- clone
|
||||
- --single-branch
|
||||
- --branch
|
||||
- main
|
||||
- --depth
|
||||
- "1"
|
||||
- https://nadig-aditya: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@github.com/Meesho/meesho-alerts-config.git
|
||||
- /vmalert-config
|
||||
volumeMounts:
|
||||
- name: configrules
|
||||
mountPath: /vmalert-config
|
||||
containers:
|
||||
- name: {{ template "vmalert.name" . }}-{{ .Values.server.name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.server.podSecurityContext | nindent 12 }}
|
||||
image: "{{ .Values.server.image.repository }}:{{ default .Chart.AppVersion .Values.server.image.tag }}"
|
||||
args:
|
||||
- -rule=/config/alert-rules.yaml
|
||||
- -datasource.url={{ .Values.server.datasource.url}}
|
||||
{{- if or .Values.server.datasource.basicAuth.password .Values.server.datasource.basicAuth.username }}
|
||||
- -datasource.basicAuth.password={{ .Values.server.datasource.basicAuth.password}}
|
||||
- -datasource.basicAuth.username={{ .Values.server.datasource.basicAuth.username}}
|
||||
{{- end }}
|
||||
{{- with .Values.server.datasource.bearer.token }}
|
||||
- -datasource.bearerToken={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.datasource.bearer.tokenFile }}
|
||||
- -datasource.bearerTokenFile={{ . }}
|
||||
{{- end }}
|
||||
- -notifier.url={{ include "vmalert.alertmanager.urls" . }}
|
||||
{{- with (include "vmalert.alertmanager.passwords" .) }}
|
||||
- -notifier.basicAuth.password={{ . }}
|
||||
{{- end }}
|
||||
{{- with (include "vmalert.alertmanager.usernames" .) }}
|
||||
- -notifier.basicAuth.username={{ . }}
|
||||
{{- end }}
|
||||
{{- with (include "vmalert.alertmanager.bearerTokens" .) }}
|
||||
- -notifier.bearerToken={{ . }}
|
||||
{{- end }}
|
||||
{{- with (include "vmalert.alertmanager.bearerTokenFiles" .) }}
|
||||
- -notifier.bearerTokenFile={{ . }}
|
||||
{{- end }}
|
||||
- -remoteRead.url={{ .Values.server.remote.read.url }}
|
||||
{{- if or .Values.server.remote.read.basicAuth.password .Values.server.remote.read.basicAuth.username }}
|
||||
- -remoteRead.basicAuth.password={{ .Values.server.remote.read.basicAuth.password }}
|
||||
- -remoteRead.basicAuth.username={{ .Values.server.remote.read.basicAuth.username }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.remote.read.bearer.token }}
|
||||
- -remoteRead.bearerToken={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.remote.read.bearer.tokenFile }}
|
||||
- -remoteRead.bearerTokenFile={{ . }}
|
||||
{{- end }}
|
||||
- -remoteWrite.url={{ .Values.server.remote.write.url }}
|
||||
{{- if or .Values.server.remote.write.basicAuth.password .Values.server.remote.write.basicAuth.username }}
|
||||
- -remoteWrite.basicAuth.password={{ .Values.server.remote.write.basicAuth.password }}
|
||||
- -remoteWrite.basicAuth.username={{ .Values.server.remote.write.basicAuth.username }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.remote.write.bearer.token }}
|
||||
- -remoteWrite.bearerToken={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.remote.write.bearer.tokenFile }}
|
||||
- -remoteWrite.bearerTokenFile={{ . }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.server.extraArgs }}
|
||||
{{- if eq $key "rule" }}
|
||||
- -{{ $key }}={{ $value | quote}}
|
||||
{{- else }}
|
||||
- -{{ $key }}={{ $value }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
imagePullPolicy: {{ .Values.server.image.pullPolicy }}
|
||||
env:
|
||||
- name: TZ
|
||||
value: Asia/Kolkata
|
||||
{{- with .Values.server.env }}
|
||||
{{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8880
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
{{- if index .Values.server.extraArgs "http.pathPrefix" }}
|
||||
path: {{ trimSuffix "/" (index .Values.server.extraArgs "http.pathPrefix") }}/health
|
||||
{{- else }}
|
||||
path: /health
|
||||
{{- end }}
|
||||
port: http
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
livenessProbe:
|
||||
tcpSocket:
|
||||
port: http
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 15
|
||||
timeoutSeconds: 5
|
||||
volumeMounts:
|
||||
- name: alerts-config
|
||||
mountPath: /config
|
||||
- name: configrules
|
||||
mountPath: /config/vm-alerts-config
|
||||
subPath: vm-alerts-config/configmap
|
||||
{{- range .Values.server.extraHostPathMounts }}
|
||||
- name: {{ .name }}
|
||||
mountPath: {{ .mountPath }}
|
||||
subPath: {{ .subPath }}
|
||||
readOnly: {{ .readOnly }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.server.resources | nindent 12 }}
|
||||
{{- with .Values.server.extraContainers }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.server.priorityClassName }}
|
||||
priorityClassName: {{ .Values.server.priorityClassName | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.schedulerName }}
|
||||
schedulerName: "{{ .Values.schedulerName }}"
|
||||
{{- end }}
|
||||
nodeSelector:
|
||||
{{- if .Values.dedicatedValue }}
|
||||
dedicated: {{ include "meesho.server.dedicatedValue" . }}
|
||||
{{- else }}
|
||||
{{- with .Values.server.nodeSelector }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
tolerations:
|
||||
{{- if .Values.dedicatedValue }}
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: {{ include "meesho.server.dedicatedValue" . }}
|
||||
effect: "NoSchedule"
|
||||
{{- else }}
|
||||
{{- with .Values.server.tolerations }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: configrules
|
||||
emptyDir: {}
|
||||
- name: alerts-config
|
||||
configMap:
|
||||
name: {{ include "vmalert.server.configname" . }}
|
||||
{{- range .Values.server.extraHostPathMounts }}
|
||||
- name: {{ .name }}
|
||||
hostPath:
|
||||
path: {{ .hostPath }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.extraVolumes }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,50 @@
|
||||
{{- if and .Values.server.enabled .Values.server.ingress.enabled }}
|
||||
{{- $ingressApiIsStable := eq (include "vmalert.ingress.isStable" .) "true" -}}
|
||||
{{- $ingressSupportsIngressClassName := eq (include "vmalert.ingress.supportsIngressClassName" .) "true" -}}
|
||||
{{- $ingressSupportsPathType := eq (include "vmalert.ingress.supportsPathType" .) "true" -}}
|
||||
{{- $servicePort := .Values.server.service.servicePort -}}
|
||||
{{- $ingressPathType := .Values.server.ingress.pathType -}}
|
||||
apiVersion: {{ include "vmalert.ingress.apiVersion" . }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
{{- with .Values.server.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .| indent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{ with .Values.server.ingress.extraLabels }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{ end }}
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
{{- if and $ingressSupportsIngressClassName .Values.server.ingress.ingressClassName }}
|
||||
ingressClassName: {{ .Values.server.ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- $serviceName := include "vmalert.server.fullname" . }}
|
||||
{{- range .Values.server.ingress.hosts }}
|
||||
- host: {{ .name }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ .path }}
|
||||
{{- if $ingressSupportsPathType }}
|
||||
pathType: {{ $ingressPathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $ingressApiIsStable }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ .port | default "http"}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- with .Values.server.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,26 @@
|
||||
{{- if .Values.server.podDisruptionBudget.enabled }}
|
||||
{{- if .Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }}
|
||||
apiVersion: policy/v1
|
||||
{{- else -}}
|
||||
apiVersion: policy/v1beta1
|
||||
{{- end }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.server.podDisruptionBudget.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.server.podDisruptionBudget.minAvailable }}
|
||||
minAvailable: {{ .Values.server.podDisruptionBudget.minAvailable }}
|
||||
{{- end }}
|
||||
{{- if .Values.server.podDisruptionBudget.maxUnavailable }}
|
||||
maxUnavailable: {{ .Values.server.podDisruptionBudget.maxUnavailable }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "vmalert.server.matchLabels" . | nindent 6 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,50 @@
|
||||
{{- if and .Values.server.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- with .Values.server.service.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.server.service.labels }}
|
||||
{{- toYaml . | nindent 4}}
|
||||
{{- end }}
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
spec:
|
||||
{{- with .Values.server.service.clusterIP }}
|
||||
clusterIP: {{- . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.service.externalIPs }}
|
||||
externalIPs:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{- . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{- range $cidr := . }}
|
||||
- {{ $cidr }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
port: {{ .Values.server.service.servicePort }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
{{- with .Values.server.service.nodePort }}
|
||||
nodePort: {{ . }}
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "vmalert.server.matchLabels" . | nindent 4 }}
|
||||
type: "{{ .Values.server.service.type }}"
|
||||
{{- with .Values.server.service.healthCheckNodePort }}
|
||||
healthCheckNodePort: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.server.service.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,44 @@
|
||||
{{- if .Values.serviceMonitor.enabled -}}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
{{- if .Values.serviceMonitor.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceMonitor.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vmalert.server.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceMonitor.extraLabels -}}
|
||||
{{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ template "vmalert.server.fullname" . }}
|
||||
{{- if .Values.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
spec:
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "vmalert.server.matchLabels" . | nindent 6 }}
|
||||
endpoints:
|
||||
- port: http
|
||||
{{- if .Values.serviceMonitor.scheme }}
|
||||
scheme: {{ .Values.serviceMonitor.scheme }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceMonitor.interval }}
|
||||
interval: {{ .Values.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- with .Values.serviceMonitor.tlsConfig }}
|
||||
tlsConfig:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.serviceMonitor.relabelings }}
|
||||
relabelings:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,13 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "vmalert.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "vmalert.common.metaLabels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
Reference in New Issue
Block a user