VictoriaMetrics Cluster version - high-performance, cost-effective and scalable TSDB, long-term remote storage for Prometheus
Prerequisites #
Before installing this chart, ensure your environment meets the following requirements:
- Kubernetes cluster - A running Kubernetes cluster with sufficient resources
 - Helm - Helm package manager installed and configured
 
Additional requirements depend on your configuration:
- Persistent storage - Required if you enable persistent volumes for data retention (enabled by default)
 - kubectl - Needed for cluster management and troubleshooting
 
For installation instructions, refer to the official documentation:
Chart Details #
Note: this chart installs VictoriaMetrics cluster components such as vminsert, vmselect and vmstorage. It doesn’t create or configure metrics scraping. If you are looking for a chart to configure monitoring stack in cluster check out victoria-metrics-k8s-stack chart .
How to install #
Access a Kubernetes cluster.
Setup chart repository (can be omitted for OCI repositories) #
Add a chart helm repository with follow commands:
      helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
    List versions of vm/victoria-metrics-cluster chart available to installation:
      helm search repo vm/victoria-metrics-cluster -l
    Install victoria-metrics-cluster chart
#
Export default values of victoria-metrics-cluster chart to file values.yaml:
For HTTPS repository
helm show values vm/victoria-metrics-cluster > values.yamlFor OCI repository
helm show values oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster > values.yaml
Change the values according to the need of the environment in values.yaml file.
Consider setting .Values.nameOverride to a small value like vmc to avoid hitting resource name limits of 63 characters
Test the installation with command:
For HTTPS repository
helm install vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debugFor OCI repository
helm install vmc oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debug
Install chart with command:
For HTTPS repository
helm install vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACEFor OCI repository
helm install vmc oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster -f values.yaml -n NAMESPACE
Get the pods lists by running this commands:
      kubectl get pods -A | grep 'vmc'
    Get the application by running this command:
      helm list -f vmc -n NAMESPACE
    See the history of versions of vmc application with command.
      helm history vmc -n NAMESPACE
    How to uninstall #
Remove application with command.
      helm uninstall vmc -n NAMESPACE
    Documentation of Helm Chart #
Install helm-docs following the instructions on this
tutorial
.
Generate docs with helm-docs command.
      cd charts/victoria-metrics-cluster
helm-docs
    The markdown generation is entirely go template driven. The tool parses metadata from charts and generates a number of sub-templates that can be referenced in a template file (by default README.md.gotmpl). If no template file is provided, the tool has a default internal template that will generate a reasonably formatted README.
Parameters #
The following tables lists the configurable parameters of the chart and their default values.
Change the values according to the need of the environment in victoria-metrics-cluster/values.yaml file.
| Key | Description | 
|---|---|
 | (bool)use SRV discovery for storageNode and selectNode flags for enterprise version  | 
 | (object)common for all components image configuration  | 
 | (list)Add extra specs dynamically to this chart  | 
 | (list) | 
 | (object)k8s cluster domain suffix, uses for building storage pods’ FQDN. Details are here  | 
 | (object)Openshift security context compatibility configuration  | 
 | (string)Image registry, that can be shared across multiple helm charts  | 
 | (string)Image tag for all vm charts  | 
 | (list)Image pull secrets, that can be shared across multiple helm charts  | 
 | (object)Enterprise license key configuration for VictoriaMetrics enterprise. Required only for VictoriaMetrics enterprise. Check docs here, for more information, visit site. Request a trial license here Supported starting from VictoriaMetrics v1.94.0  | 
 | (string)License key  | 
 | (object)Use existing secret with license key  | 
 | (string)Key in secret with license key  | 
 | (string)Existing secret name  | 
 | (string)Override chart name  | 
 | (bool)Print information after deployment  | 
 | (object)Service account annotations  | 
 | (bool)mount API token to pod directly  | 
 | (bool)Specifies whether a service account should be created  | 
 | (object)Service account labels  | 
 | (string)The name of the service account to use. If not set and create is true, a name is generated using the fullname template  | 
 | (object)Pod affinity  | 
 | (object)VMAuth annotations  | 
 | (object)VMAuth configuration object. It’s possible to use given below predefined variables in config: *   | 
 | (string)VMAuth configuration secret name  | 
 | (string)Container workdir  | 
 | (bool)Enable deployment of vmauth component. With vmauth enabled please set   | 
 | (list)Additional environment variables (ex.: secret tokens, flags). Check here for details  | 
 | (list)Specify alternative source for env variables  | 
 | (object)Extra command line arguments for vmauth component  | 
 | (list)Extra containers to run in a pod with vmauth  | 
 | (object)VMAuth additional labels  | 
 | (list)Extra Volume Mounts for the container  | 
 | (list)Extra Volumes for the pod  | 
 | (string)Overrides the full name of vmauth component  | 
 | (object)Behavior settings for scaling by the HPA  | 
 | (bool)Use HPA for vmauth component  | 
 | (int)Maximum replicas for HPA to use to to scale the vmauth component  | 
 | (list)Metric for HPA to use to scale the vmauth component  | 
 | (int)Minimum replicas for HPA to use to scale the vmauth component  | 
 | (string)Image pull policy  | 
 | (string)Image registry  | 
 | (string)Image repository  | 
 | (string)Image tag override Chart.AppVersion  | 
 | (string)Variant of the image to use. e.g. cluster, enterprise-cluster  | 
 | (object)Ingress annotations  | 
 | (bool)Enable deployment of ingress for vmauth component  | 
 | (object) | 
 | (list)Array of host objects  | 
 | (string)pathType is only for k8s >= 1.1=  | 
 | (list)Array of TLS objects  | 
 | (list)Init containers for vmauth  | 
 | (object)Specify pod lifecycle  | 
 | (string)Override default   | 
 | (object)Pod’s node selector. Details are here  | 
 | (object)Pod’s annotations  | 
 | (object)See   | 
 | (object)VMAuth pod labels  | 
 | (object)Pod’s security context. Details are here  | 
 | (string)VMAuth http port name  | 
 | (string)Name of Priority Class  | 
 | (object)VMAuth liveness probe  | 
 | (object)VMAuth readiness probe  | 
 | (object)VMAuth startup probe  | 
 | (int)Count of vmauth pods  | 
 | (object)Resource object  | 
 | (object)HTTPRoute annotations  | 
 | (bool)Enable deployment of HTTPRoute for vmauth component  | 
 | (list)Extra rules to prepend to route. This is useful when working with annotation based services.  | 
 | (list)Filters for a default rule in HTTPRoute  | 
 | (list)Array of hostnames  | 
 | (object)HTTPRoute extra labels  | 
 | (list)Matches for a default rule in HTTPRoute  | 
 | (list)HTTPGateway objects refs  | 
 | (object)Pod’s security context. Details are here  | 
 | (object)Service annotations  | 
 | (string)Service ClusterIP  | 
 | (bool)Create VMAuth service  | 
 | (list)Service External IPs. Details are here  | 
 | (string)Service external traffic policy. Check here for details  | 
 | (list)Extra service ports  | 
 | (string)Health check node port for a service. Check here for details  | 
 | (list)List of service IP families. Check here for details.  | 
 | (string)Service IP family policy. Check here for details.  | 
 | (object)Service labels  | 
 | (string)Service load balancer IP  | 
 | (list)Load balancer source range  | 
 | (int)Service port  | 
 | (string)Target port  | 
 | (string)Traffic Distribution. Check Traffic distribution  | 
 | (string)Service type  | 
 | (bool)Enable UDP port. used if you have   | 
 | (object)Service Monitor annotations  | 
 | (object)Basic auth params for Service Monitor  | 
 | (bool)Enable deployment of Service Monitor for vmauth component. This is Prometheus operator object  | 
 | (object)Service Monitor labels  | 
 | (list)Service Monitor metricRelabelings  | 
 | (string)Target namespace of ServiceMonitor manifest  | 
 | (list)Service Monitor relabelings  | 
 | (object)VMAuth Deployment strategy  | 
 | (bool)Suppress rendering   | 
 | (list)Array of tolerations object. Details are here  | 
 | (list)Pod topologySpreadConstraints  | 
 | (object)Pod affinity  | 
 | (object)StatefulSet/Deployment annotations  | 
 | (string)Container workdir  | 
 | (bool)Enable deployment of vminsert component. Deployment is used  | 
 | (list)Additional environment variables (ex.: secret tokens, flags). Check here for details.  | 
 | (list)Specify alternative source for env variables  | 
 | (list)IDs of vmstorage nodes to exclude from writing  | 
 | (object)Extra command line arguments for vminsert component  | 
 | (list)Extra containers to run in a pod with vminsert  | 
 | (object)StatefulSet/Deployment additional labels  | 
 | (list)Extra Volume Mounts for the container  | 
 | (list)Extra Volumes for the pod  | 
 | (string)Overrides the full name of vminsert component  | 
 | (object)Behavior settings for scaling by the HPA  | 
 | (bool)Use HPA for vminsert component  | 
 | (int)Maximum replicas for HPA to use to to scale the vminsert component  | 
 | (list)Metric for HPA to use to scale the vminsert component  | 
 | (int)Minimum replicas for HPA to use to scale the vminsert component  | 
 | (string)Image pull policy  | 
 | (string)Image registry  | 
 | (string)Image repository  | 
 | (string)Image tag override Chart.AppVersion  | 
 | (string)Variant of the image to use. e.g. cluster, enterprise-cluster  | 
 | (object)Ingress annotations  | 
 | (bool)Enable deployment of ingress for vminsert component  | 
 | (object)Ingress extra labels  | 
 | (list)Array of host objects  | 
 | (string)Ingress controller class name  | 
 | (string)Ingress path type  | 
 | (list)Array of TLS objects  | 
 | (list)Init containers for vminsert  | 
 | (object)Specify pod lifecycle  | 
 | (string)Override default   | 
 | (object)Pod’s node selector. Details are here  | 
 | (object)Pod’s annotations  | 
 | (object)See   | 
 | (object)Pod’s additional labels  | 
 | (object)Pod’s security context. Details are here  | 
 | (string)VMInsert http port name  | 
 | (string)Name of Priority Class  | 
 | (object)Readiness & Liveness probes  | 
 | (object)VMInsert liveness probe  | 
 | (object)VMInsert readiness probe  | 
 | (object)VMInsert startup probe  | 
 | (object)Relabel configuration  | 
 | (string)Use existing configmap if specified otherwise .config values will be used. Relabel config should reside under   | 
 | (int)Count of vminsert pods  | 
 | (object)Resource object. Details are here  | 
 | (object)HTTPRoute annotations  | 
 | (bool)Enable deployment of HTTPRoute for insert component  | 
 | (list)Extra rules to prepend to route. This is useful when working with annotation based services.  | 
 | (list)Filters for a default rule in HTTPRoute  | 
 | (list)Array of hostnames  | 
 | (object)HTTPRoute extra labels  | 
 | (list)Matches for a default rule in HTTPRoute  | 
 | (list)HTTPGateway objects refs  | 
 | (object)Pod’s security context. Details are here  | 
 | (object)Service annotations  | 
 | (string)Service ClusterIP  | 
 | (bool)Create VMInsert service  | 
 | (list)Service external IPs. Details are here  | 
 | (string)Service external traffic policy. Check here for details  | 
 | (list)Extra service ports  | 
 | (string)Health check node port for a service. Check here for details  | 
 | (list)List of service IP families. Check here for details.  | 
 | (string)Service IP family policy. Check here for details.  | 
 | (object)Service labels  | 
 | (string)Service load balancer IP  | 
 | (list)Load balancer source range  | 
 | (int)Service port  | 
 | (string)Target port  | 
 | (string)Traffic Distribution. Check Traffic distribution  | 
 | (string)Service type  | 
 | (bool)Enable UDP port. used if you have   | 
 | (object)Service Monitor annotations  | 
 | (object)Basic auth params for Service Monitor  | 
 | (bool)Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object  | 
 | (object)Service Monitor labels  | 
 | (list)Service Monitor metricRelabelings  | 
 | (string)Target namespace of ServiceMonitor manifest  | 
 | (list)Service Monitor relabelings  | 
 | (object)VMInsert strategy  | 
 | (bool)Suppress rendering   | 
 | (int) | 
 | (list)Array of tolerations object. Details are here  | 
 | (list)Pod topologySpreadConstraints  | 
 | (object)Pod affinity  | 
 | (object)StatefulSet/Deployment annotations  | 
 | (string)Cache root folder  | 
 | (string)Container workdir  | 
 | (object)K8s Deployment specific variables  | 
 | (object)VMSelect strategy  | 
 | (object)Empty dir configuration if persistence is disabled  | 
 | (bool)Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet  | 
 | (list)Additional environment variables (ex.: secret tokens, flags). Check here for details.  | 
 | (list)Specify alternative source for env variables  | 
 | (object)Extra command line arguments for vmselect component  | 
 | (list)Extra containers to run in a pod with vmselect  | 
 | (list)Additional hostPath mounts  | 
 | (object)StatefulSet/Deployment additional labels  | 
 | (list)Extra Volume Mounts for the container  | 
 | (list)Extra Volumes for the pod  | 
 | (string)Overrides the full name of vmselect component  | 
 | (object)Behavior settings for scaling by the HPA  | 
 | (bool)Use HPA for vmselect component  | 
 | (int)Maximum replicas for HPA to use to to scale the vmselect component  | 
 | (list)Metric for HPA to use to scale the vmselect component  | 
 | (int)Minimum replicas for HPA to use to scale the vmselect component  | 
 | (string)Image pull policy  | 
 | (string)Image registry  | 
 | (string)Image repository  | 
 | (string)Image tag override Chart.AppVersion  | 
 | (string)Variant of the image to use. e.g. cluster, enterprise-cluster  | 
 | (object)Ingress annotations  | 
 | (bool)Enable deployment of ingress for vmselect component  | 
 | (object)Ingress extra labels  | 
 | (list)Array of host objects  | 
 | (string)Ingress controller class name  | 
 | (string)Ingress path type  | 
 | (list)Array of TLS objects  | 
 | (list)Init containers for vmselect  | 
 | (object)Specify pod lifecycle  | 
 | (string)vmselect mode: deployment, daemonSet  | 
 | (string)Override default   | 
 | (object)Pod’s node selector. Details are here  | 
 | (list)Array of access mode. Must match those of existing PV or dynamic provisioner. Details are here  | 
 | (object)Persistent volume annotations  | 
 | (bool)Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim  | 
 | (string)Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound  | 
 | (object)Persistent volume extra labels  | 
 | (string)Override Persistent Volume Claim name  | 
 | (string)Size of the volume. Better to set the same as resource limit memory property  | 
 | (string)Mount subpath  | 
 | (object)Pod’s annotations  | 
 | (object)See   | 
 | (bool)See   | 
 | (object)Pod’s additional labels  | 
 | (object)Pod’s security context. Details are here  | 
 | (string)VMSelect http port name  | 
 | (string)Name of Priority Class  | 
 | (object)Readiness & Liveness probes  | 
 | (object)VMSelect liveness probe  | 
 | (object)VMSelect readiness probe  | 
 | (object)VMSelect startup probe  | 
 | (int)Count of vmselect pods  | 
 | (object)Resource object. Details are here  | 
 | (object)HTTPRoute annotations  | 
 | (bool)Enable deployment of HTTPRoute for select component  | 
 | (list)Extra rules to prepend to route. This is useful when working with annotation based services.  | 
 | (list)Filters for a default rule in HTTPRoute  | 
 | (list)Array of hostnames  | 
 | (object)HTTPRoute extra labels  | 
 | (list)Matches for a default rule in HTTPRoute  | 
 | (list)HTTPGateway objects refs  | 
 | (object)Pod’s security context. Details are here  | 
 | (object)Service annotations  | 
 | (string)Service ClusterIP  | 
 | (bool)Create VMSelect service  | 
 | (list)Service external IPs. Details are here  | 
 | (string)Service external traffic policy. Check here for details  | 
 | (list)Extra service ports  | 
 | (string)Health check node port for a service. Check here for details  | 
 | (list)List of service IP families. Check here for details.  | 
 | (string)Service IP family policy. Check here for details.  | 
 | (object)Service labels  | 
 | (string)Service load balancer IP  | 
 | (list)Load balancer source range  | 
 | (int)Service port  | 
 | (string)Target port  | 
 | (string)Traffic Distribution. Check Traffic distribution  | 
 | (string)Service type  | 
 | (object)Service Monitor annotations  | 
 | (object)Basic auth params for Service Monitor  | 
 | (bool)Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object  | 
 | (object)Service Monitor labels  | 
 | (list)Service Monitor metricRelabelings  | 
 | (string)Target namespace of ServiceMonitor manifest  | 
 | (list)Service Monitor relabelings  | 
 | (object)K8s StatefulSet specific variables  | 
 | (string)Deploy order policy for StatefulSet pods  | 
 | (bool)Suppress rendering   | 
 | (int)Pod’s termination grace period in seconds  | 
 | (list)Array of tolerations object. Details are here  | 
 | (list)Pod topologySpreadConstraints  | 
 | (object)Pod affinity  | 
 | (object)StatefulSet/Deployment annotations  | 
 | (string)Container workdir  | 
 | (object)Empty dir configuration if persistence is disabled  | 
 | (bool)Enable deployment of vmstorage component. StatefulSet is used  | 
 | (list)Additional environment variables (ex.: secret tokens, flags). Check here for details  | 
 | (list)Specify alternative source for env variables  | 
 | (object)Additional vmstorage container arguments. Extra command line arguments for vmstorage component  | 
 | (list)Extra containers to run in a pod with vmstorage  | 
 | (list)Additional hostPath mounts  | 
 | (object)StatefulSet/Deployment additional labels  | 
 | (list)Extra secret mounts for vmstorage  | 
 | (list)Extra Volume Mounts for the container  | 
 | (list)Extra Volumes for the pod  | 
 | (string)Overrides the full name of vmstorage component  | 
 | (object)Behavior settings for scaling by the HPA  | 
 | (bool)Use HPA for vmstorage component  | 
 | (int)Maximum replicas for HPA to use to to scale the vmstorage component  | 
 | (list)Metric for HPA to use to scale the vmstorage component  | 
 | (int)Minimum replicas for HPA to use to scale the vmstorage component  | 
 | (string)Image pull policy  | 
 | (string)Image registry  | 
 | (string)Image repository  | 
 | (string)Image tag override Chart.AppVersion  | 
 | (string)Variant of the image to use. e.g. cluster, enterprise-cluster  | 
 | (list)Init containers for vmstorage  | 
 | (object)Specify pod lifecycle  | 
 | (int) | 
 | (string)Override default   | 
 | (object)Pod’s node selector. Details are here  | 
 | (list)Array of access modes. Must match those of existing PV or dynamic provisioner. Details are here  | 
 | (object)Persistent volume annotations  | 
 | (bool)Create/use Persistent Volume Claim for vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim  | 
 | (string)Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound  | 
 | (object)Persistent volume extra labels  | 
 | (string)Data root path. Vmstorage data Persistent Volume mount root path  | 
 | (string)Override Persistent Volume Claim name  | 
 | (string)Size of the volume.  | 
 | (string)Storage class name. Will be empty if not set  | 
 | (string)Mount subpath  | 
 | (object)Pod’s annotations  | 
 | (object)See   | 
 | (object)Pod’s additional labels  | 
 | (string)Deploy order policy for StatefulSet pods  | 
 | (object)Pod’s security context. Details are here  | 
 | (string)VMStorage http port name  | 
 | (string)Name of Priority Class  | 
 | (object)Readiness probes  | 
 | (object)VMStorage readiness probe  | 
 | (object)VMStorage startup probe  | 
 | (int)Count of vmstorage pods  | 
 | (object)Resource object. Details are here  | 
 | (int)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  | 
 | (string)Use an alternate scheduler, e.g. “stork”. Check here for details  | 
 | (object)Pod’s security context. Details are here  | 
 | (object)Service annotations  | 
 | (string)Service ClusterIP  | 
 | (bool) | 
 | (string)Service external traffic policy. Check here for details  | 
 | (list)Extra service ports  | 
 | (string)Health check node port for a service. Check here for details  | 
 | (list)List of service IP families. Check here for details.  | 
 | (string)Service IP family policy. Check here for details.  | 
 | (object)Service labels  | 
 | (int)Service port  | 
 | (string)Traffic Distribution. Check Traffic distribution  | 
 | (string)Service type  | 
 | (int)Port for accepting connections from vminsert  | 
 | (int)Port for accepting connections from vmselect  | 
 | (object)Service Monitor annotations  | 
 | (object)Basic auth params for Service Monitor  | 
 | (bool)Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object  | 
 | (object)Service Monitor labels  | 
 | (list)Service Monitor metricRelabelings  | 
 | (string)Target namespace of ServiceMonitor manifest  | 
 | (list)Service Monitor relabelings  | 
 | (int)Pod’s termination grace period in seconds  | 
 | (list)Array of tolerations object. Node tolerations for server scheduling to nodes with taints. Details are here  | 
 | (list)Pod topologySpreadConstraints  | 
 | (string)Backup destination at S3, GCS or local filesystem. Pod name will be included to path!  | 
 | (bool)Disable daily backups  | 
 | (bool)Disable hourly backups  | 
 | (bool)Disable monthly backups  | 
 | (bool)Disable weekly backups  | 
 | (bool)Enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages  | 
 | (list)Additional environment variables (ex.: secret tokens, flags). Check here for details  | 
 | (object)Extra command line arguments for container of component  | 
 | (list)Extra secret mounts for vmbackupmanager  | 
 | (string)VMBackupManager image registry  | 
 | (string)VMBackupManager image repository  | 
 | (string)VMBackupManager image tag override Chart.AppVersion  | 
 | (string)Variant of the image tag to use. e.g. enterprise.  | 
 | (object)Readiness & Liveness probes  | 
 | (object)VMBackupManager liveness probe  | 
 | (object)VMBackupManager readiness probe  | 
 | (object)VMBackupManager startup probe  | 
 | (object)Resource object. Details are here  | 
 | (object)Allows to enable restore options for pod. Check here for details  | 
 | (object)Backups’ retention settings  | 
 | (int)Keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off  | 
 | (int)Keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off  | 
 | (int)Keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off  | 
 | (int)Keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off  |