1# Default values for victoria-metrics.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5 # -- Image pull secrets, that can be shared across multiple helm charts
8 # -- Image registry, that can be shared across multiple helm charts
10 # -- Openshift security context compatibility configuration
13 adaptSecurityContext: "auto"
14 # -- Automount OpenShift service signing CA into the pod
15 automountServiceSigningCA: "auto"
17 # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
18 dnsDomain: cluster.local.
19 # -- Labels added to all resources
21 # -- Annotations added to all resources
24 # -- Enables Role/RoleBinding creation
26 # -- If true and `rbac.enabled`, will deploy a Role/RoleBinding instead of a ClusterRole/ClusterRoleBinding
28 # -- Role/RoleBinding labels
30 # -- Role/RoleBinding annotations
32# -- Override chart name
37 # -- Create service account.
39 # -- The name of the service account to use.
40 # If not set and create is true, a name is generated using the fullname template
42 # -- ServiceAccount labels
44 # -- ServiceAccount annotations
46 # -- Mount API token to pod directly
48# -- See `kubectl explain poddisruptionbudget.spec` for more. Details are [here](https://kubernetes.io/docs/tasks/run-application/configure-pdb/)
51 # -- min number or percentage of pods that can be unavailable
53 # -- max number or percentage of pods that can be unavailable
55 # -- Defines criteria when unhealthy pods should be considered for eviction
56 unhealthyPodEvictionPolicy:
59 # -- Enable deployment of server component. Deployed as StatefulSet
61 # -- Override default `app` label name
67 repository: chainguard-private/victoria-metrics
69 tag: latest@sha256:6a9067a4f056e3532ede217d3f6d6526c1b53abe202e865819e74a64b63ac264
70 # Variant of the image tag to use.
73 # -- Image pull policy
74 pullPolicy: IfNotPresent
75 # -- Override default container command. Use when the VictoriaMetrics binary is available at a custom path
77 # -- Image pull secrets
79 # -- Specify pod lifecycle
81 # -- Number of victoriametrics single replicas
83 # -- Name of Priority Class
85 # -- Name of the [RuntimeClass](https://kubernetes.io/docs/concepts/containers/runtime-class/) used to run the pod, e.g. "gvisor"
87 # -- Overrides the full name of server component
89 # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#retention)
91 # -- HTTP listen address configuration. See https://docs.victoriametrics.com/helm/victoria-metrics-single/#http-listen-address for details.
102 tlsAutocertCacheDir: ""
105 # -- Extra command line arguments for container of component
110 # Enable IPv6 support. Useful for running in IPv6-only Kubernetes clusters
112 # Additional hostPath mounts
113 extraHostPathMounts: []
115 # mountPath: /etc/kubernetes/certs
117 # hostPath: /etc/kubernetes/certs
120 # Extra Volumes for the pod
126 # -- Extra Volume Mounts for the container
127 extraVolumeMounts: []
129 # mountPath: /example
131 # -- Extra containers to run in a pod with VM single
133 #- name: config-reloader
134 # image: reloader-image
136 # -- Init containers for VM single pod
139 # image: victoriametrics/vmrestore:latest
141 # - mountPath: /storage
142 # name: vmstorage-volume
143 # - mountPath: /etc/vm/creds
144 # name: secret-remote-storage-keys
147 # - -storageDataPath=/storage
148 # - -src=s3://your_bucket/folder/latest
149 # - -credsFilePath=/etc/vm/creds/credentials
151 # -- Node tolerations for server scheduling to nodes with taints. Details are [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)
154 # operator: "Equal|Exists"
156 # effect: "NoSchedule|PreferNoSchedule"
158 # -- Pod's node selector. Details are [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector)
163 # -- Additional environment variables (ex.: secret tokens, flags). Check [here](https://docs.victoriametrics.com/victoriametrics/#environment-variables) for more details
165 # -- Specify alternative source for env variables
168 # name: special-config
170 # -- Container workdir
171 containerWorkingDir: ""
172 # -- Use an alternate scheduler, e.g. "stork". Check [here](https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/) for more details
176 # -- Create/use Persistent Volume Claim for server component. Empty dir if false
178 # -- Override Persistent Volume Claim name
180 # -- Array of access modes. Must match those of existing PV or dynamic provisioner. Details are [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
183 # -- VolumeClassAttribute to user for persistent volume
184 volumeAttributesClassName:
185 # -- Persistent volume annotations
189 # -- StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically
191 # -- Existing Claim name. If defined, PVC must be created manually before volume will be bound
193 # -- Bind Persistent Volume by labels. Must match all labels of targeted PV.
195 # -- Mount path. Server data Persistent Volume mount root path.
199 # -- Size of the volume. Should be calculated based on the metrics you send and retention policy you set.
201 # -- Sts/Deploy additional labels
203 # -- Pod's additional labels
205 # -- Pod's annotations
207 # -- Resource object. Details are [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
216 # -- Readiness & Liveness probes
218 # -- Indicates whether the Container is ready to service requests. If the readiness probe fails, the endpoints controller removes the Pod's IP address from the endpoints of all Services that match the Pod. The default state of readiness before the initial delay is Failure. If a Container does not provide a readiness probe, the default state is Success.
221 initialDelaySeconds: 5
225 # -- Indicates whether the Container is running. If the liveness probe fails, the kubelet kills the Container, and the Container is subjected to its restart policy. If a Container does not provide a liveness probe, the default state is Success.
228 initialDelaySeconds: 30
232 # -- Indicates whether the Container is done with potentially costly initialization. If set it is executed first. If it fails Container is restarted. If it succeeds liveness and readiness probes takes over.
234 #failureThreshold: 30
238 # -- Security context to be added to server pods
241 # -- Pod's security context. Details are [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
245 # -- Enable deployment of ingress for server component
247 # -- Ingress annotations
249 # kubernetes.io/ingress.class: nginx
250 # kubernetes.io/tls-acme: 'true'
252 # -- Ingress extra labels
254 # -- Array of host objects
256 - name: vmsingle.local
260 # -- Array of TLS objects
262 # - secretName: vmselect-ingress-tls
265 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
266 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
267 # ingressClassName: nginx
270 # -- Enable deployment of HTTPRoute for single component
272 # -- HTTPRoute annotations
274 # -- HTTPRoute extra labels
276 # -- HTTPGateway objects refs
278 # -- Array of hostnames
280 # -- Extra rules to prepend to route. This is useful when working with annotation based services.
282 # -- Filters for a default rule in HTTPRoute
284 # -- Matches for a default rule in HTTPRoute
288 value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.server }}'
290 # -- Enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages
293 # -- VMBackupManager image registry
295 # -- VMBackupManager image repository
296 repository: victoriametrics/vmbackupmanager
297 # -- VMBackupManager image tag
299 # Variant of the image tag to use.
302 # -- Disable hourly backups
304 # -- Disable daily backups
306 # -- Disable weekly backups
308 # -- Disable monthly backups
309 disableMonthly: false
310 # -- Backup destination at S3, GCS or local filesystem. Release name will be included to path!
312 # -- Backups' retention settings
314 # -- Keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off
316 # -- Keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off
318 # -- Keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off
320 # -- Keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off
322 # -- Extra command line arguments for container of component
327 # Extra Volume Mounts for the container
328 extraVolumeMounts: []
330 # mountPath: /example
331 # -- Allows to enable restore options for pod.
332 # Read more [here](https://docs.victoriametrics.com/victoriametrics/vmbackupmanager/#restore-commands)
336 # -- Resource object. Details are [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
338 # -- Additional environment variables (ex.: secret tokens, flags). Check [here](https://docs.victoriametrics.com/victoriametrics/#environment-variables)
340 # -- Readiness & Liveness probes
342 # -- VMBackupManager readiness probe
346 initialDelaySeconds: 5
350 # -- VMBackupManager liveness probe
354 initialDelaySeconds: 30
358 # -- VMBackupManager startup probe
363 # -- Service traffic distribution. Details are [here](https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution)
364 trafficDistribution: ""
365 # -- Service annotations
369 # -- Service ClusterIP
371 # -- Service external IPs. Details are [here](https://kubernetes.io/docs/concepts/services-networking/service/#external-ips)
373 # -- Service load balancer IP
375 # -- Load balancer source range
376 loadBalancerSourceRanges: []
383 # -- 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
384 externalTrafficPolicy: ""
385 # -- 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
386 healthCheckNodePort: ""
387 # -- Service IP family policy. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details.
389 # -- List of service IP families. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details.
391 # -- VictoriaMetrics mode: deployment, statefulSet
393 # -- [K8s Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) specific variables
397 # Must be "Recreate" when we have a persistent volume
399 # -- [K8s StatefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) specific variables
402 # -- Deploy order policy for StatefulSet pods
403 podManagementPolicy: OrderedReady
404 # -- StatefulSet update strategy. Check [here](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies) for details.
406 # type: RollingUpdate
407 # -- Pod's termination grace period in seconds
408 terminationGracePeriodSeconds: 60
410 # -- Enable deployment of Service Monitor for server component. This is Prometheus operator object
412 # -- Service Monitor labels
414 # -- Service Monitor annotations
416 # -- Service Monitor path
418 # -- Basic auth params for Service Monitor
420 # -- Commented. Prometheus scrape interval for server component
423 # -- Commented. Prometheus pre-scrape timeout for server component
425 # -- Commented. HTTP scheme to use for scraping.
427 # -- Commented. TLS configuration to use when scraping the endpoint
429 # insecureSkipVerify: true
430 # -- Service Monitor relabelings
432 # -- Service Monitor metricRelabelings
433 metricRelabelings: []
434 # -- Service Monitor port. Uses primary http item name by default
436 # -- Service Monitor target port. Overrides port when set
438 # -- Global relabel configuration
442 # -- Use existing configmap if specified
443 # otherwise .config values will be used. Relabel config **should** reside under `relabel.yml` key
445 # Scrape configuration for victoriametrics
447 # -- If true scrapes targets, creates config map or use specified one with scrape targets
449 # -- Use existing configmap if specified
450 # otherwise .config values will be used. Scrape config **should** reside under `scrape.yml` key
458 # Scrape rule for scrape victoriametrics
459 - job_name: victoriametrics
461 - targets: ["localhost:8428"]
462 # COPY from Prometheus helm chart https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml
464 # Scrape config for API servers.
466 # Kubernetes exposes API servers as endpoints to the default/kubernetes
467 # service so this uses `endpoints` role and uses relabelling to only keep
468 # the endpoints associated with the default/kubernetes service using the
469 # default named port `https`. This works for single API server deployments as
470 # well as HA API server deployments.
471 - job_name: "kubernetes-apiservers"
472 kubernetes_sd_configs:
474 # Default to scraping over https. If required, just disable this or change to
477 # This TLS & bearer token file config is used to connect to the actual scrape
478 # endpoints for cluster components. This is separate to discovery auth
479 # configuration because discovery & scraping are two separate concerns in
480 # Prometheus. The discovery auth config is automatic if Prometheus runs inside
481 # the cluster. Otherwise, more config options have to be provided within the
482 # <kubernetes_sd_config>.
484 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
485 # If your node certificates are self-signed or use a different CA to the
486 # master CA, then you need to disable certificate verification. Note that
487 # certificate verification is an integral part of a secure infrastructure
488 # so this should only be disabled in a controlled environment. You can
489 # enable certificate verification by commenting the line below.
491 insecure_skip_verify: true
492 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
493 # Keep only the default/kubernetes service endpoints for the https port. This
494 # will add targets for each API server which Kubernetes adds an endpoint to
495 # the default/kubernetes service.
497 - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
499 regex: default;kubernetes;https
500 # Scrape rule using kubernetes service discovery for nodes
501 - job_name: "kubernetes-nodes"
502 # Default to scraping over https. If required, just disable this or change to
505 # This TLS & bearer token file config is used to connect to the actual scrape
506 # endpoints for cluster components. This is separate to discovery auth
507 # configuration because discovery & scraping are two separate concerns in
508 # Prometheus. The discovery auth config is automatic if Prometheus runs inside
509 # the cluster. Otherwise, more config options have to be provided within the
510 # <kubernetes_sd_config>.
512 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
513 # If your node certificates are self-signed or use a different CA to the
514 # master CA, then you need to disable certificate verification. Note that
515 # certificate verification is an integral part of a secure infrastructure
516 # so this should only be disabled in a controlled environment. You can
517 # enable certificate verification by commenting the line below.
519 insecure_skip_verify: true
520 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
521 kubernetes_sd_configs:
525 regex: __meta_kubernetes_node_label_(.+)
526 # Scrape rule using kubernetes service discovery for cadvisor
527 - job_name: "kubernetes-nodes-cadvisor"
528 # Default to scraping over https. If required, just disable this or change to
531 # This TLS & bearer token file config is used to connect to the actual scrape
532 # endpoints for cluster components. This is separate to discovery auth
533 # configuration because discovery & scraping are two separate concerns in
534 # Prometheus. The discovery auth config is automatic if Prometheus runs inside
535 # the cluster. Otherwise, more config options have to be provided within the
536 # <kubernetes_sd_config>.
538 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
539 # If your node certificates are self-signed or use a different CA to the
540 # master CA, then you need to disable certificate verification. Note that
541 # certificate verification is an integral part of a secure infrastructure
542 # so this should only be disabled in a controlled environment. You can
543 # enable certificate verification by commenting the line below.
545 insecure_skip_verify: true
546 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
547 kubernetes_sd_configs:
549 metrics_path: /metrics/cadvisor
552 regex: __meta_kubernetes_node_label_(.+)
553 - source_labels: [__metrics_path__]
554 target_label: metrics_path
555 # ignore timestamps of cadvisor's metrics by default
556 # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535
557 honor_timestamps: false
558 # Scrape config for service endpoints.
560 # The relabeling allows the actual service scrape endpoint to be configured
561 # via the following annotations:
563 # * `prometheus.io/scrape`: Only scrape services that have a value of `true`
564 # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need
565 # to set this to `https` & most likely set the `tls_config` of the scrape config.
566 # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
567 # * `prometheus.io/port`: If the metrics are exposed on a different port to the
568 # service then set this appropriately.
570 # Scrape rule using kubernetes service discovery for endpoints
571 - job_name: "kubernetes-service-endpoints"
572 kubernetes_sd_configs:
576 source_labels: [__meta_kubernetes_pod_container_init]
578 - action: keep_if_equal
579 source_labels: [__meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
580 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
583 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
585 target_label: __scheme__
587 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
589 target_label: __metrics_path__
591 - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
593 target_label: __address__
594 regex: ([^:]+)(?::\d+)?;(\d+)
597 regex: __meta_kubernetes_service_label_(.+)
598 - source_labels: [__meta_kubernetes_namespace]
600 target_label: namespace
601 - source_labels: [__meta_kubernetes_service_name]
603 target_label: service
604 - source_labels: [__meta_kubernetes_pod_node_name]
607 # Scrape config for slow service endpoints; same as above, but with a larger
608 # timeout and a larger interval
610 # The relabeling allows the actual service scrape endpoint to be configured
611 # via the following annotations:
613 # * `prometheus.io/scrape-slow`: Only scrape services that have a value of `true`
614 # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need
615 # to set this to `https` & most likely set the `tls_config` of the scrape config.
616 # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
617 # * `prometheus.io/port`: If the metrics are exposed on a different port to the
618 # service then set this appropriately.
620 - job_name: "kubernetes-service-endpoints-slow"
623 kubernetes_sd_configs:
627 source_labels: [__meta_kubernetes_pod_container_init]
629 - action: keep_if_equal
630 source_labels: [__meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
631 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape_slow]
634 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
636 target_label: __scheme__
638 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
640 target_label: __metrics_path__
642 - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
644 target_label: __address__
645 regex: ([^:]+)(?::\d+)?;(\d+)
648 regex: __meta_kubernetes_service_label_(.+)
649 - source_labels: [__meta_kubernetes_namespace]
651 target_label: namespace
652 - source_labels: [__meta_kubernetes_service_name]
654 target_label: service
655 - source_labels: [__meta_kubernetes_pod_node_name]
658 # Example scrape config for probing services via the Blackbox Exporter.
660 # The relabeling allows the actual service scrape endpoint to be configured
661 # via the following annotations:
663 # * `prometheus.io/probe`: Only probe services that have a value of `true`
665 - job_name: "kubernetes-services"
669 kubernetes_sd_configs:
672 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
675 - source_labels: [__address__]
676 target_label: __param_target
677 - target_label: __address__
678 replacement: blackbox
679 - source_labels: [__param_target]
680 target_label: instance
682 regex: __meta_kubernetes_service_label_(.+)
683 - source_labels: [__meta_kubernetes_namespace]
684 target_label: namespace
685 - source_labels: [__meta_kubernetes_service_name]
686 target_label: service
687 # Example scrape config for pods
689 # The relabeling allows the actual pod scrape endpoint to be configured via the
690 # following annotations:
692 # * `prometheus.io/scrape`: Only scrape pods that have a value of `true`
693 # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
694 # * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
696 - job_name: "kubernetes-pods"
697 kubernetes_sd_configs:
701 source_labels: [__meta_kubernetes_pod_container_init]
703 - action: keep_if_equal
704 source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
705 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
708 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
710 target_label: __metrics_path__
712 - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
714 regex: ([^:]+)(?::\d+)?;(\d+)
716 target_label: __address__
718 regex: __meta_kubernetes_pod_label_(.+)
719 - source_labels: [__meta_kubernetes_namespace]
721 target_label: namespace
722 - source_labels: [__meta_kubernetes_pod_name]
726 # -- Extra scrape configs that will be appended to `server.scrape.config`
727 extraScrapeConfigs: []
728 # - job_name: 'prometheus-blackbox-exporter'
729 # metrics_path: /probe
734 # - https://example.com
736 # - source_labels: [__address__]
737 # target_label: __param_target
738 # - source_labels: [__param_target]
739 # target_label: instance
740 # - target_label: __address__
741 # replacement: prometheus-blackbox-exporter:9115
742# -- Add extra specs dynamically to this chart
744# -- Enterprise license key configuration for VictoriaMetrics enterprise.
745# Required only for VictoriaMetrics enterprise. Check docs [here](https://docs.victoriametrics.com/victoriametrics/enterprise/),
746# for more information, visit [site](https://victoriametrics.com/products/enterprise/).
747# Request a trial license [here](https://victoriametrics.com/products/enterprise/trial/)
748# Supported starting from VictoriaMetrics v1.94.0
752 # -- Use existing secret with license key
754 # -- Existing secret name
756 # -- Key in secret with license key