# Default values for alertmanager. # This is a YAML-formatted file. # Declare variables to be passed into your templates. replicaCount: 1 image: repository: signoz/alertmanager pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "0.5.0" extraArgs: {} imagePullSecrets: [] nameOverride: "" fullnameOverride: "" serviceAccount: # Specifies whether a service account should be created create: true # Annotations to add to the service account annotations: {} # The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: podSecurityContext: fsGroup: 65534 dnsConfig: {} # nameservers: # - 1.2.3.4 # searches: # - ns1.svc.cluster-domain.example # - my.dns.search.suffix # options: # - name: ndots # value: "2" # - name: edns0 securityContext: # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true runAsUser: 65534 runAsNonRoot: true runAsGroup: 65534 additionalPeers: [] service: annotations: {} type: ClusterIP port: 9093 # if you want to force a specific nodePort. Must be use with service.type=NodePort # nodePort: ingress: enabled: false className: "" annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" hosts: - host: alertmanager.domain.com paths: - path: / pathType: ImplementationSpecific tls: [] # - secretName: chart-example-tls # hosts: # - alertmanager.domain.com resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 10m # memory: 32Mi nodeSelector: {} tolerations: [] affinity: {} statefulSet: annotations: {} podAnnotations: {} podLabels: {} # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ podDisruptionBudget: {} # maxUnavailable: 1 # minAvailable: 1 command: [] persistence: enabled: true ## Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. ## # storageClass: "-" accessModes: - ReadWriteOnce size: 100Mi config: global: resolve_timeout: 1m slack_api_url: 'https://hooks.slack.com/services/xxx' templates: - '/etc/alertmanager/*.tmpl' receivers: - name: 'slack-notifications' slack_configs: - channel: '#alerts' send_resolved: true icon_url: https://avatars3.githubusercontent.com/u/3380462 title: '{{ template "slack.title" . }}' text: '{{ template "slack.text" . }}' route: receiver: 'slack-notifications' ## Monitors ConfigMap changes and POSTs to a URL ## Ref: https://github.com/jimmidyson/configmap-reload ## configmapReload: ## If false, the configmap-reload container will not be deployed ## enabled: false ## configmap-reload container name ## name: configmap-reload ## configmap-reload container image ## image: repository: jimmidyson/configmap-reload tag: v0.5.0 pullPolicy: IfNotPresent ## configmap-reload resource requests and limits ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## resources: {} templates: title.tmpl: |- {{ define "slack.title" }} [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }} {{- if gt (len .CommonLabels) (len .GroupLabels) -}} {{" "}}( {{- with .CommonLabels.Remove .GroupLabels.Names }} {{- range $index, $label := .SortedPairs -}} {{ if $index }}, {{ end }} {{- $label.Name }}="{{ $label.Value -}}" {{- end }} {{- end -}} ) {{- end }} {{ end }} text.tmpl: |- {{ define "slack.text" }} {{ range .Alerts -}} *Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }} *Description:* {{ .Annotations.description }} *Details:* {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}` {{ end }} {{ end }} {{ end }}