Files
devops-infra-helm-charts-gcp/helm-templates/victoria-metrics-alert-stateful/values.yaml
T
2026-08-26 03:39:42 +05:30

712 lines
22 KiB
YAML

# 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
# -- 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: vmalert-infra-stg-stateful
# -- 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
# minAvailable: 1
# maxUnavailable: 1
# Labels should be defined in custom-values.yaml override files if needed
# Common labels are already applied via server.labels
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: 2
# -- Pod topologySpreadConstraints
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: vmalert
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
type: vmalert
# - 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: "http://vmselect-infra-stg.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for datasource
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for datasource
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
remote:
write:
# -- VMAlert remote write URL
url: "http://vminsert-infra-stg.victoriametrics.svc.cluster.local:8480/insert/100/prometheus/"
# -- Basic auth for remote write
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote write
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
read:
# -- VMAlert remote read URL
url: "http://vmselect-infra-stg.victoriametrics.svc.cluster.local:8481/select/100/prometheus"
# -- Basic auth for remote read
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for remote read
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Notifier to use for alerts.
# Multiple notifiers can be enabled by using `notifiers` section
notifier:
alertmanager:
url: "http://alertmanager-infra-stg-0.alertmanager-infra-stg-headless.alertmanager.svc.cluster.local:9093"
# -- Basic auth for alertmanager
basicAuth:
username: ""
password: ""
# -- Auth based on Bearer token for alertmanager
bearer:
# -- Token with Bearer token. You can use one of token or tokenFile. You don't need to add "Bearer" prefix string
token: ""
# -- Token Auth file with Bearer token. You can use one of token or tokenFile
tokenFile: ""
# -- Additional notifiers to use for alerts
notifiers:
- alertmanager:
url: "http://alertmanager-infra-stg-1.alertmanager-infra-stg-headless.alertmanager.svc.cluster.local:9093"
basicAuth:
username: ""
password: ""
bearer:
token: ""
tokenFile: ""
# - alertmanager:
# url: ""
# basicAuth:
# username: ""
# password: ""
# bearer:
# token: ""
# tokenFile: ""
# -- Extra command line arguments for container of component
extraArgs:
envflag.enable: true
envflag.prefix: VM_
loggerFormat: json
httpListenAddr: :8880
rule:
- /alert-rules/**/*.yaml
- /alert-rules/**/*.yml
evaluationInterval: 60s
configCheckInterval: 10s
# -- 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 annotations
annotations: {}
# -- Service labels
# Labels should be defined in custom-values.yaml override files
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: 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: []
ingress:
# -- Enable deployment of ingress for vmalert component
enabled: true
# -- Ingress annotations
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
# -- Ingress extra labels
extraLabels: {}
# -- Array of host objects
hosts:
- name: vmalert-infra-stg-stateful.meeshogcp.in
path:
- /
port: http
# -- Array of TLS objects
tls: []
# - secretName: vmselect-ingress-tls
# hosts:
# - vmselect.local
# -- Ingress controller class name
ingressClassName: "nginx-internal"
# -- 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: 500m
memory: 1Gi
# -- Annotations to be added to the deployment
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
# -- Labels to be added to the deployment
# Labels should be defined in custom-values.yaml override files
labels: {}
# -- Annotations to be added to pod
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8880"
# -- Pod's additional labels
# Pod labels should be defined in custom-values.yaml override files if needed
# Common labels are already applied via server.labels
podLabels: {}
# -- Pod's node selector. Details are [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector)
nodeSelector: {}
# dedicated: "vminsert"
# -- 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: {}
# - key: "dedicated"
# operator: "Equal"
# value: "vminsert"
# effect: "NoSchedule"
# -- Pod affinity
affinity: {}
# -- VMAlert alert rules configuration.
# Use existing configmap if specified
configMap: ""
# -- VMAlert configuration
config:
alerts:
groups: []
# -- Persistent Volume configuration for alert rules
persistentVolume:
# -- Create/use Persistent Volume Claim for alert rules. Empty dir if false
enabled: true
# -- 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:
- ReadWriteMany
# -- Persistent volume annotations
annotations: {}
# -- PVC extra labels
extraLabels: {}
# -- StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically
storageClassName: "pulse-nfs-sc-prd"
# -- Existing Claim name. If defined, PVC must be created manually before volume will be bound
existingClaim: ""
# -- Mount path. Alert rules Persistent Volume mount root path.
mountPath: /alert-rules
# -- Mount subpath
subPath: ""
# -- Size of the volume. Better to set the same as resource limit memory property.
size: 10Gi
# -- 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:
# Must be "Recreate" when we have a persistent volume
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.27.0
# -- 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 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: []
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
# -- 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: ""