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.
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
133 # kubernetes.io/ingress.class: nginx
134 # kubernetes.io/tls-acme: "true"
136 - host: alertmanager.domain.com
139 pathType: ImplementationSpecific
141 # - secretName: chart-example-tls
143 # - alertmanager.domain.com
144# Configuration for creating an Ingress that will map to each Alertmanager replica service
145# alertmanager.servicePerReplica must be enabled
149 # className for the ingresses
154 # Final form of the hostname for each per replica ingress is
155 # {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
157 # Prefix for the per replica ingress that will have `-$replicaNumber`
158 # appended to the end
159 hostPrefix: "alertmanager"
160 # Domain that will be used for the per replica ingress
161 hostDomain: "domain.com"
162 # Paths to use for ingress rules
166 # PathType for ingress rules
168 pathType: ImplementationSpecific
169 # Secret name containing the TLS certificate for alertmanager per replica ingress
170 # Secret must be manually created in the namespace
172 # Separated secret for each per replica Ingress. Can be used together with cert-manager
176 # Final form of the secret for each per replica ingress is
177 # {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
179 prefix: "alertmanager"
181# We usually recommend not to specify default resources and to leave this as a conscious
182# choice for the user. This also increases chances charts run on environments with little
183# resources, such as Minikube. If you do want to specify resources, uncomment the following
184# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
195## Pod anti-affinity can prevent the scheduler from placing Alertmanager replicas on the same node.
196## 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.
197## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
198## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
201## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
202## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
204podAntiAffinityTopologyKey: kubernetes.io/hostname
205## Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
206## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
207topologySpreadConstraints: []
209# topologyKey: failure-domain.beta.kubernetes.io/zone
210# whenUnsatisfiable: DoNotSchedule
213# app.kubernetes.io/instance: alertmanager
217## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
218## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
219## This is an alpha field from kubernetes 1.22 until 1.24 which requires enabling the StatefulSetMinReadySeconds
221## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds
225# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
226podDisruptionBudget: {}
232 ## If true, storage will create or use Persistence Volume
233 ## If false, storage will use emptyDir
236 ## Custom annotations for the PVC created by the alertmanager StatefulSet.
237 ## Useful for configuring storage provider options such as disk type, KMS encryption keys, or custom volume name prefixes.
239 ## Custom labels for the PVC created by the alertmanager StatefulSet.
240 ## Useful for selecting, grouping, and organizing so that they can be queried or targeted in deployments, policies, etc.
242 ## Persistent Volume Storage Class
243 ## If defined, storageClassName: <storageClass>
244 ## If set to "-", storageClassName: "", which disables dynamic provisioning
245 ## If undefined (the default) or set to null, no storageClassName spec is
246 ## set, choosing the default provisioner.
252 ## Configure emptyDir volume
256## For example if you want to provide private data from a secret vault
257## https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-secrets-webhook
258## P.s.: Add option `configMapMutation: true` for vault-secrets-webhook
259# vault.security.banzaicloud.io/vault-role: "admin"
260# vault.security.banzaicloud.io/vault-addr: "https://vault.vault.svc.cluster.local:8200"
261# vault.security.banzaicloud.io/vault-skip-verify: "true"
262# vault.security.banzaicloud.io/vault-path: "kubernetes"
263## Example for inject secret
264# slack_api_url: '${vault:secret/data/slack-hook-alerts#URL}'
272 - '/etc/alertmanager/*.tmpl'
274 - name: default-receiver
277 # send_resolved: true
281 receiver: default-receiver
283## Monitors ConfigMap changes and POSTs to a URL
284## Ref: https://github.com/prometheus-operator/prometheus-operator/tree/main/cmd/prometheus-config-reloader
287 ## If false, the configmap-reload container will not be deployed
290 ## configmap-reload container name
292 name: configmap-reload
293 ## configmap-reload container image
296 repository: cgr.dev/chainguard-private/prometheus-config-reloader
298 pullPolicy: IfNotPresent
299 # containerPort: 9533
301 ## configmap-reload resource requests and limits
302 ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
317 ## Optionally specify extra list of additional volumeMounts
318 extraVolumeMounts: []
320 # mountPath: /usr/share/extras
323 ## Optionally specify extra environment variables to add to alertmanager container
332 # readOnlyRootFilesystem: true
337# alertmanager.tmpl: |-
339## Optionally specify extra list of additional volumeMounts
342# mountPath: /usr/share/extras
345## Optionally specify extra list of additional volumes
350## Optionally specify extra environment variables to add to alertmanager container
358 "helm.sh/hook": test-success
359 # "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
360# --- Vertical Pod Autoscaler
361verticalPodAutoscaler:
362 # -- Use VPA for alertmanager
365 # - name: 'alternative'
371 # - containerName: '*'
378 # controlledResources: ["cpu", "memory"]
379# --- Extra Pod Configs
381# dnsPolicy: ClusterFirstWithHostNet