1# yaml-language-server: $schema=values.schema.json
2# Default values for alertmanager.
3# This is a YAML-formatted file.
4# Declare variables to be passed into your templates.
7# Number of old history to retain to allow rollback
8# Default Kubernetes value is set to 10
9revisionHistoryLimit: 10
11 repository: cgr.dev/chainguard-private/prometheus-alertmanager
12 pullPolicy: IfNotPresent
13 # Overrides the image tag whose default is the chart appVersion.
14 tag: latest@sha256:1955ae18577d754e1b3ca8cfc9e654230ccdb99ab897fd873be208f98920b59e
15# Full external URL where alertmanager is reachable, used for backlinks.
18## Additional Alertmanager Secret mounts
19# Defines additional mounts with secrets. Secrets must be manually created in the namespace.
22# mountPath: /etc/secrets
24# secretName: alertmanager-secret-files
30## namespaceOverride overrides the namespace which the resources will be deployed in
32automountServiceAccountToken: true
33## Running within a user namespace.
34# Kubernetes server must be at or later than version v1.25.
35# Kubernetes v1.25 through to v1.27 recognise UserNamespacesStatelessPodsSupport.
36# Kubernetes v1.28 through to v1.32 need to enable the UserNamespacesSupport feature gate.
39 # Specifies whether a service account should be created
41 # Annotations to add to the service account
43 # The name of the service account to use.
44 # If not set and create is true, a name is generated using the fullname template
46# Sets priorityClassName in alertmanager pod
48# Sets schedulerName in alertmanager pod
56# - ns1.svc.cluster-domain.example
57# - my.dns.search.suffix
75 # readOnlyRootFilesystem: true
80## Additional InitContainers to initialize the pod
82extraInitContainers: []
83## Additional containers to add to the stateful set. This will allow to setup sidecarContainers like a proxy to integrate
84## alertmanager with an external tool like teams that has not direct integration.
87containerPortName: &containerPortName http
91 port: *containerPortName
95 port: *containerPortName
102 loadBalancerIP: "" # Assign ext IP when Service type is LoadBalancer
103 loadBalancerSourceRanges: [] # Only allow access to loadBalancerIP from these IPs
104 # if you want to force a specific nodePort. Must be use with service.type=NodePort
107 # Optionally specify extra list of additional ports exposed on both services
112 ipFamilies: ["IPv6", "IPv4"]
113 ipFamilyPolicy: "PreferDualStack"
114# Configuration for creating a separate Service for each statefulset Alertmanager replica
119 # Loadbalancer source IP ranges
120 # Only used if servicePerReplica.type is "LoadBalancer"
121 loadBalancerSourceRanges: []
122 # Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
124 externalTrafficPolicy: Cluster
140 metricRelabelings: []
147 # kubernetes.io/ingress.class: nginx
148 # kubernetes.io/tls-acme: "true"
150 - host: alertmanager.domain.com
153 pathType: ImplementationSpecific
155 # - secretName: chart-example-tls
157 # - alertmanager.domain.com
158# Configuration for creating an Ingress that will map to each Alertmanager replica service
159# alertmanager.servicePerReplica must be enabled
163 # className for the ingresses
168 # Final form of the hostname for each per replica ingress is
169 # {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
171 # Prefix for the per replica ingress that will have `-$replicaNumber`
172 # appended to the end
173 hostPrefix: "alertmanager"
174 # Domain that will be used for the per replica ingress
175 hostDomain: "domain.com"
176 # Paths to use for ingress rules
180 # PathType for ingress rules
182 pathType: ImplementationSpecific
183 # Secret name containing the TLS certificate for alertmanager per replica ingress
184 # Secret must be manually created in the namespace
186 # Separated secret for each per replica Ingress. Can be used together with cert-manager
190 # Final form of the secret for each per replica ingress is
191 # {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
193 prefix: "alertmanager"
194## route (map) allows configuration of Gateway API HTTPRoute resources
195## Requires Gateway API resources and a suitable controller installed within the cluster
196## Ref. https://gateway-api.sigs.k8s.io/guides/http-routing/
201 ## apiVersion set by default to "gateway.networking.k8s.io/v1"
203 ## kind set by default to HTTPRoute
205 ## Annotations to attach to the HTTPRoute resource
207 ## Labels to attach to the HTTPRoute resource
209 ## ParentRefs references the resources (usually Gateways) this HTTPRoute should be attached to
214 ## Hostnames (templated) defines a set of hostnames that should match against the HTTP Host
215 ## header to select an HTTPRoute used to process the request
217 # - alertmanager.domain.com
219 ## additionalRules (templated) allows adding custom rules to the route
221 ## Filters define the filters that are applied to requests that match this rule
223 ## Matches define conditions used for matching the rule against incoming HTTP requests
228 ## httpsRedirect adds a filter for redirecting to https (HTTP 301 Moved Permanently).
229 ## To redirect HTTP traffic to HTTPS, you need a Gateway with both HTTP and HTTPS listeners.
230 ## Matches and filters do not take effect if enabled.
231 ## Ref. https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/
234# We usually recommend not to specify default resources and to leave this as a conscious
235# choice for the user. This also increases chances charts run on environments with little
236# resources, such as Minikube. If you do want to specify resources, uncomment the following
237# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
248## Pod anti-affinity can prevent the scheduler from placing Alertmanager replicas on the same node.
249## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
250## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
251## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
254## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
255## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
257podAntiAffinityTopologyKey: kubernetes.io/hostname
258## Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
259## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
260topologySpreadConstraints: []
262# topologyKey: failure-domain.beta.kubernetes.io/zone
263# whenUnsatisfiable: DoNotSchedule
266# app.kubernetes.io/instance: alertmanager
270## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
271## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
272## This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds
274## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds
278# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
279podDisruptionBudget: {}
285 ## If true, storage will create or use Persistence Volume
286 ## If false, storage will use emptyDir
289 ## Custom annotations for the PVC created by the alertmanager StatefulSet.
290 ## Useful for configuring storage provider options such as disk type, KMS encryption keys, or custom volume name prefixes.
292 ## Custom labels for the PVC created by the alertmanager StatefulSet.
293 ## Useful for selecting, grouping, and organizing so that they can be queried or targeted in deployments, policies, etc.
295 ## Persistent Volume Storage Class
296 ## If defined, storageClassName: <storageClass>
297 ## If set to "-", storageClassName: "", which disables dynamic provisioning
298 ## If undefined (the default) or set to null, no storageClassName spec is
299 ## set, choosing the default provisioner.
305 ## Configure emptyDir volume
309## For example if you want to provide private data from a secret vault
310## https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-secrets-webhook
311## P.s.: Add option `configMapMutation: true` for vault-secrets-webhook
312# vault.security.banzaicloud.io/vault-role: "admin"
313# vault.security.banzaicloud.io/vault-addr: "https://vault.vault.svc.cluster.local:8200"
314# vault.security.banzaicloud.io/vault-skip-verify: "true"
315# vault.security.banzaicloud.io/vault-path: "kubernetes"
316## Example for inject secret
317# slack_api_url: '${vault:secret/data/slack-hook-alerts#URL}'
325 - '/etc/alertmanager/*.tmpl'
327 - name: default-receiver
330 # send_resolved: true
334 receiver: default-receiver
336## Monitors ConfigMap changes and POSTs to a URL
337## Ref: https://github.com/prometheus-operator/prometheus-operator/tree/main/cmd/prometheus-config-reloader
340 ## If false, the configmap-reload container will not be deployed
343 ## configmap-reload container name
345 name: configmap-reload
346 ## configmap-reload container image
349 repository: cgr.dev/chainguard-private/prometheus-config-reloader
350 tag: latest@sha256:e577ca8ad74880486d549548ab42a7205d02f845baa177640d932d3728e0395e
351 pullPolicy: IfNotPresent
352 # containerPort: 9533
354 ## configmap-reload resource requests and limits
355 ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
370 ## Optionally specify extra list of additional volumeMounts
371 extraVolumeMounts: []
373 # mountPath: /usr/share/extras
376 ## Optionally specify extra environment variables to add to alertmanager container
385 # readOnlyRootFilesystem: true
390# alertmanager.tmpl: |-
392## Optionally specify extra list of additional volumeMounts
395# mountPath: /usr/share/extras
398## Optionally specify extra list of additional volumes
403## Optionally specify extra environment variables to add to alertmanager container
411 "helm.sh/hook": test-success
412 # "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
413# --- Vertical Pod Autoscaler
414verticalPodAutoscaler:
415 # -- Use VPA for alertmanager
418 # - name: 'alternative'
424 # - containerName: '*'
431 # controlledResources: ["cpu", "memory"]
432# --- Extra Pod Configs
434# dnsPolicy: ClusterFirstWithHostNet