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:a3bf5afed597dfdb38a438ffd22cab7dbabe5923a283414b544e1eb23e129a70
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"
195# We usually recommend not to specify default resources and to leave this as a conscious
196# choice for the user. This also increases chances charts run on environments with little
197# resources, such as Minikube. If you do want to specify resources, uncomment the following
198# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
209## Pod anti-affinity can prevent the scheduler from placing Alertmanager replicas on the same node.
210## 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.
211## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
212## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
215## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
216## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
218podAntiAffinityTopologyKey: kubernetes.io/hostname
219## Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
220## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
221topologySpreadConstraints: []
223# topologyKey: failure-domain.beta.kubernetes.io/zone
224# whenUnsatisfiable: DoNotSchedule
227# app.kubernetes.io/instance: alertmanager
231## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
232## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
233## This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds
235## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds
239# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
240podDisruptionBudget: {}
246 ## If true, storage will create or use Persistence Volume
247 ## If false, storage will use emptyDir
250 ## Custom annotations for the PVC created by the alertmanager StatefulSet.
251 ## Useful for configuring storage provider options such as disk type, KMS encryption keys, or custom volume name prefixes.
253 ## Custom labels for the PVC created by the alertmanager StatefulSet.
254 ## Useful for selecting, grouping, and organizing so that they can be queried or targeted in deployments, policies, etc.
256 ## Persistent Volume Storage Class
257 ## If defined, storageClassName: <storageClass>
258 ## If set to "-", storageClassName: "", which disables dynamic provisioning
259 ## If undefined (the default) or set to null, no storageClassName spec is
260 ## set, choosing the default provisioner.
266 ## Configure emptyDir volume
270## For example if you want to provide private data from a secret vault
271## https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-secrets-webhook
272## P.s.: Add option `configMapMutation: true` for vault-secrets-webhook
273# vault.security.banzaicloud.io/vault-role: "admin"
274# vault.security.banzaicloud.io/vault-addr: "https://vault.vault.svc.cluster.local:8200"
275# vault.security.banzaicloud.io/vault-skip-verify: "true"
276# vault.security.banzaicloud.io/vault-path: "kubernetes"
277## Example for inject secret
278# slack_api_url: '${vault:secret/data/slack-hook-alerts#URL}'
286 - '/etc/alertmanager/*.tmpl'
288 - name: default-receiver
291 # send_resolved: true
295 receiver: default-receiver
297## Monitors ConfigMap changes and POSTs to a URL
298## Ref: https://github.com/prometheus-operator/prometheus-operator/tree/main/cmd/prometheus-config-reloader
301 ## If false, the configmap-reload container will not be deployed
304 ## configmap-reload container name
306 name: configmap-reload
307 ## configmap-reload container image
310 repository: cgr.dev/chainguard-private/prometheus-config-reloader
311 tag: latest@sha256:101fbbbccedc1551ae0b96737686dac80e33cef55eed40324d653cc5c8619529
312 pullPolicy: IfNotPresent
313 # containerPort: 9533
315 ## configmap-reload resource requests and limits
316 ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
331 ## Optionally specify extra list of additional volumeMounts
332 extraVolumeMounts: []
334 # mountPath: /usr/share/extras
337 ## Optionally specify extra environment variables to add to alertmanager container
346 # readOnlyRootFilesystem: true
351# alertmanager.tmpl: |-
353## Optionally specify extra list of additional volumeMounts
356# mountPath: /usr/share/extras
359## Optionally specify extra list of additional volumes
364## Optionally specify extra environment variables to add to alertmanager container
372 "helm.sh/hook": test-success
373 # "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
374# --- Vertical Pod Autoscaler
375verticalPodAutoscaler:
376 # -- Use VPA for alertmanager
379 # - name: 'alternative'
385 # - containerName: '*'
392 # controlledResources: ["cpu", "memory"]
393# --- Extra Pod Configs
395# dnsPolicy: ClusterFirstWithHostNet