# Default values for victoria-metrics-alert. # This is a YAML-formatted file. # Declare variables to be passed into your templates. global: # -- Image pull secrets, that can be shared across multiple helm charts imagePullSecrets: [] image: # -- Image registry, that can be shared across multiple helm charts registry: "" # -- Openshift security context compatibility configuration compatibility: openshift: adaptSecurityContext: "auto" cluster: # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) dnsDomain: cluster.local. 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: # -- Mount API token to pod directly automountToken: true # -- Override chart name nameOverride: "" server: # -- Override default `app` label name name: "" # -- VMAlert image configuration image: registry: "" repository: victoriametrics/vmalert tag: "" # rewrites Chart.AppVersion # Variant of the image to use. # e.g. enterprise, scratch variant: "" pullPolicy: IfNotPresent # -- Override vmalert resources fullname fullnameOverride: "" # -- Image pull secrets imagePullSecrets: [] # -- See `kubectl explain poddisruptionbudget.spec` for more. Or check [docs](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) podDisruptionBudget: enabled: false # -- min number or percentage of pods that can be unavailable minAvailable: 0 # -- max number or percentage of pods that can be unavailable maxUnavailable: 0 # -- Defines criteria when unhealthy pods should be considered for eviction unhealthyPodEvictionPolicy: labels: {} # -- Additional environment variables (ex.: secret tokens, flags). Check [here](https://docs.victoriametrics.com/victoriametrics/#environment-variables) for details. env: [] # - name: VM_remoteWrite_basicAuth_password # valueFrom: # secretKeyRef: # name: auth_secret # key: password # -- Specify alternative source for env variables envFrom: [] #- configMapRef: # name: special-config probe: # -- Readiness probe readiness: httpGet: {} initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 # -- Liveness probe liveness: tcpSocket: {} initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 # -- Startup probe startup: {} # -- Replica count replicaCount: 1 # -- Pod topologySpreadConstraints topologySpreadConstraints: [] # - maxSkew: 1 # topologyKey: topology.kubernetes.io/zone # whenUnsatisfiable: DoNotSchedule # -- Deployment strategy, set to standard k8s default strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% # -- Specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing/terminating # 0 is the standard k8s default minReadySeconds: 0 # -- VMAlert reads metrics from source, next section represents its configuration. It can be any service which supports # MetricsQL or PromQL. datasource: url: "" # -- Basic auth username for remote write basicAuth.username: "" # -- Basic auth password for remote write basicAuth.password: "" # -- Auth based on Bearer token for remote write bearerToken: "" # -- Auth based on Bearer token file path for remote write bearerTokenFile: "" # -- HTTP headers for remote write headers: {} # -- VMAlert remote write configuration remoteWrite: {} # url: "" # basicAuth.username: "" # basicAuth.password: "" # bearerToken: "" # bearerTokenFile: "" # headers: {} # -- VMAlert remote read configuration remoteRead: {} # url: "" # basicAuth.username: "" # basicAuth.password: "" # bearerToken: "" # bearerTokenFile: "" # headers: {} # -- Default VMAlertmanager notifier configuration. notifier: {} # url: "" # basicAuth.username: "" # basicAuth.password: "" # bearerToken: "" # bearerTokenFile: "" # -- Additional notifiers to use for alerts notifiers: [] # - url: "" # basicAuth.username: "" # basicAuth.password: "" # bearerToken: "" # bearerTokenFile: "" # -- Extra command line arguments for container of component extraArgs: envflag.enable: true envflag.prefix: VM_ loggerFormat: json httpListenAddr: :8880 # Enable IPv6 support. Useful for running in IPv6-only Kubernetes clusters # enableTCP6: true rule: - /config/alert-rules.yaml # -- Additional hostPath mounts extraHostPathMounts: [] # - name: certs-dir # mountPath: /etc/kubernetes/certs # subPath: "" # hostPath: /etc/kubernetes/certs # readOnly: true # -- Extra Volumes for the pod extraVolumes: [] # - name: example # configMap: # name: example # -- Extra Volume Mounts for the container. # Expects a lice of [volume mounts](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) extraVolumeMounts: [] # - name: example # mountPath: /example # subPath: "" # -- Additional containers to run in the same pod extraContainers: [] #- name: config-reloader # image: reloader-image service: # -- Service traffic distribution. Details are [here](https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution) trafficDistribution: "" # -- Service annotations annotations: {} # -- Service labels labels: {} # -- Service ClusterIP clusterIP: "None" # -- Service external IPs. Check [here](https://kubernetes.io/docs/concepts/services-networking/service/#external-ips) for details externalIPs: [] # -- Service load balancer IP loadBalancerIP: "" # -- Load balancer source range loadBalancerSourceRanges: [] # -- Service port servicePort: 8880 # nodePort: 30000 # -- Service type type: ClusterIP # -- Service external traffic policy. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details externalTrafficPolicy: "" # -- Health check node port for a service. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details healthCheckNodePort: "" # -- Service IP family policy. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details. ipFamilyPolicy: "" # -- List of service IP families. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details. ipFamilies: [] route: # -- Enable deployment of HTTPRoute for VMAlert enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels extraLabels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: / ingress: # -- Enable deployment of ingress for vmalert component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' # -- Ingress extra labels extraLabels: {} # -- Array of host objects hosts: - name: vmalert.local path: - / port: http # -- Array of TLS objects tls: [] # - secretName: vmselect-ingress-tls # hosts: # - vmselect.local # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Pod's security context. Details are [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) podSecurityContext: enabled: true # fsGroup: 2000 # -- Security context to be added to server pods securityContext: enabled: true # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 # -- Resource object. Details are [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) 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: 100m # memory: 128Mi # -- Annotations to be added to the deployment annotations: {} # -- Labels to be added to the deployment labels: {} # -- Annotations to be added to pod podAnnotations: {} # -- Pod's additional labels podLabels: {} # -- Pod's node selector. Details are [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) nodeSelector: {} # -- Name of Priority Class priorityClassName: "" # -- Node tolerations for server scheduling to nodes with taints. Details are [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) tolerations: [] # -- Pod affinity affinity: {} # -- VMAlert alert rules configuration. # Use existing configmap if specified configMap: "" # -- VMAlert configuration config: alerts: groups: [] # -- Vertical Pod Autoscaler verticalPodAutoscaler: # -- Use VPA for vmalert enabled: false # recommenders: # - name: 'alternative' # updatePolicy: # updateMode: "Auto" # minReplicas: 1 # resourcePolicy: # containerPolicies: # - containerName: '*' # minAllowed: # cpu: 100m # memory: 128Mi # maxAllowed: # cpu: 1 # memory: 500Mi # controlledResources: ["cpu", "memory"] # -- Additional initContainers to initialize the pod initContainers: [] serviceMonitor: # -- Enable deployment of Service Monitor for server component. This is Prometheus operator object enabled: false # -- Service Monitor labels extraLabels: {} # -- Service Monitor annotations annotations: {} # -- Service Monitor relabelings relabelings: [] # -- Basic auth params for Service Monitor basicAuth: {} # -- Service Monitor metricRelabelings metricRelabelings: [] # interval: 15s # scrapeTimeout: 5s # -- Commented. HTTP scheme to use for scraping. # scheme: https # -- Commented. TLS configuration to use when scraping the endpoint # tlsConfig: # insecureSkipVerify: true alertmanager: # -- Create alertmanager resources enabled: false # -- Alertmanager Pod labels podLabels: {} # -- Override Alertmanager resources fullname fullnameOverride: "" # -- Alertmanager Pod annotations podAnnotations: {} # -- Alertmanager mode: deployment, statefulSet mode: deployment # -- [K8s Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) specific variables deployment: spec: strategy: type: Recreate # -- [K8s StatefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) specific variables statefulSet: spec: # -- Deploy order policy for StatefulSet pods podManagementPolicy: OrderedReady # -- StatefulSet update strategy. Check [here](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies) for details. updateStrategy: {} # type: RollingUpdate # -- Alertmanager image configuration image: registry: "" repository: prom/alertmanager tag: v0.32.1 # -- Alertmanager retention retention: 120h # -- Replica count replicaCount: 1 # -- Cluster configuration for alertmanager cluster: # -- Cluster listen address listenAddress: "0.0.0.0:9094" # -- Cluster push/pull interval pushPullInterval: 60s # -- Cluster gossip interval gossipInterval: 200ms # -- Cluster peer timeout peerTimeout: 15s # -- Cluster settle timeout settleTimeout: 1m # -- Pod's node selector. Details are [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) nodeSelector: {} # -- Name of Priority Class priorityClassName: "" # -- Resource object. Details are [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) resources: {} # -- Node tolerations for server scheduling to nodes with taints. Details are [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) tolerations: [] # -- Image pull secrets imagePullSecrets: [] probe: # -- Readiness probe readiness: httpGet: path: '{{ ternary "" .app.baseURLPrefix (empty .app.baseURLPrefix) }}/-/ready' port: web # -- Liveness probe liveness: httpGet: path: '{{ ternary "" .app.baseURLPrefix (empty .app.baseURLPrefix) }}/-/healthy' port: web # -- Startup probe startup: httpGet: path: '{{ ternary "" .app.baseURLPrefix (empty .app.baseURLPrefix) }}/-/ready' port: web # -- Pod's security context. Details are [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) podSecurityContext: enabled: false # -- Security context to be added to server pods securityContext: enabled: false # -- Pod topologySpreadConstraints topologySpreadConstraints: [] # - maxSkew: 1 # topologyKey: topology.kubernetes.io/zone # whenUnsatisfiable: DoNotSchedule # -- Alertmanager listen address listenAddress: "0.0.0.0:9093" # -- Extra command line arguments for container of component extraArgs: {} # -- Specify alternative source for env variables envFrom: [] # -- External URL, that alertmanager will expose to receivers baseURL: "" # -- External URL Prefix, Prefix for the internal routes of web endpoints baseURLPrefix: "" # -- Use existing configmap if specified # otherwise .config values will be used configMap: "" # -- Alertmanager web configuration webConfig: {} # -- Alertmanager configuration config: global: resolve_timeout: 5m route: # default receiver receiver: devnull # tag to group by group_by: ["alertname"] # How long to initially wait to send a notification for a group of alerts group_wait: 30s # How long to wait before sending a notification about new alerts that are added to a group group_interval: 10s # How long to wait before sending a notification again if it has already been sent successfully for an alert repeat_interval: 24h receivers: - name: devnull # -- Alertmanager extra templates templates: {} # alertmanager.tmpl: |- service: # -- Service traffic distribution. Details are [here](https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution) trafficDistribution: "" # -- Service annotations annotations: {} # -- Service labels labels: {} # -- Service ClusterIP clusterIP: "" # -- Service external IPs. Check [here](https://kubernetes.io/docs/concepts/services-networking/service/#external-ips) for details externalIPs: [] # -- Service load balancer IP loadBalancerIP: "" # -- Load balancer source range loadBalancerSourceRanges: [] # -- Service port servicePort: 9093 # nodePort: 30000 # -- Service type type: ClusterIP # -- Service external traffic policy. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details externalTrafficPolicy: "" # -- Health check node port for a service. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details healthCheckNodePort: "" # -- Service IP family policy. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details. ipFamilyPolicy: "" # -- List of service IP families. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details. ipFamilies: [] route: # -- Enable deployment of HTTPRoute for VMAlertmanager enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels extraLabels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: / ingress: # -- Enable deployment of ingress for alertmanager component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' # -- Ingress extra labels extraLabels: {} # -- Array of host objects hosts: - name: alertmanager.local path: - / port: web # -- Array of TLS objects tls: [] # - secretName: alertmanager-ingress-tls # hosts: # - alertmanager.local # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Empty dir configuration if persistence is disabled for Alertmanager emptyDir: {} persistentVolume: # -- Create/use Persistent Volume Claim for alertmanager component. Empty dir if false enabled: false # -- Override Persistent Volume Claim name name: "" # -- Array of access modes. Must match those of existing PV or dynamic provisioner. Details are [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) accessModes: - ReadWriteOnce # -- VolumeClassAttribute to user for persistent volume volumeAttributesClassName: # -- Persistent volume annotations annotations: {} # -- PVC extra labels extraLabels: {} # -- StorageClass to use for persistent volume. Requires alertmanager.persistentVolume.enabled: true. If defined, PVC created automatically storageClassName: "" # -- Existing Claim name. If defined, PVC must be created manually before volume will be bound existingClaim: "" # -- Mount path. Alertmanager data Persistent Volume mount root path. mountPath: /data # -- Mount subpath subPath: "" # -- Size of the volume. Better to set the same as resource limit memory property. size: 50Mi # -- Additional hostPath mounts extraHostPathMounts: [] # - name: certs-dir # mountPath: /etc/kubernetes/certs # subPath: "" # hostPath: /etc/kubernetes/certs # readOnly: true # -- Extra Volumes for the pod extraVolumes: [] #- name: example # configMap: # name: example # -- Extra Volume Mounts for the container extraVolumeMounts: [] # - name: example # mountPath: /example # -- Extra containers to run in a pod with alertmanager extraContainers: [] #- name: config-reloader # image: reloader-image # -- Additional initContainers to initialize the pod initContainers: [] # -- Add extra specs dynamically to this chart extraObjects: [] # -- Enterprise license key configuration for VictoriaMetrics enterprise. # Required only for VictoriaMetrics enterprise. Check docs [here](https://docs.victoriametrics.com/victoriametrics/enterprise/), # for more information, visit [site](https://victoriametrics.com/products/enterprise/). # Request a trial license [here](https://victoriametrics.com/products/enterprise/trial/) # Supported starting from VictoriaMetrics v1.94.0 license: # -- License key key: "" # -- Use existing secret with license key secret: # -- Existing secret name name: "" # -- Key in secret with license key key: ""