Version ArtifactHub License Slack X Reddit

Victoria Metrics Cluster version - high-performance, cost-effective and scalable TSDB, long-term remote storage for Prometheus

Prerequisites #

  • Install the follow packages: git, kubectl, helm, helm-docs. See this tutorial.

  • PV support on underlying infrastructure

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:

              1
2
3
4
            
              helm repo add vm https://victoriametrics.github.io/helm-charts/

helm repo update

            

List versions of vm/victoria-metrics-cluster chart available to installation:

              1
2
            
              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

                  1
    2
                
                  helm show values vm/victoria-metrics-cluster > values.yaml
    
                
  • For OCI repository

                  1
    2
                
                  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.

Test the installation with command:

  • For HTTPS repository

                  1
    2
                
                  helm install vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debug --dry-run
    
                
  • For OCI repository

                  1
    2
                
                  helm install vmc oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debug --dry-run
    
                

Install chart with command:

  • For HTTPS repository

                  1
    2
                
                  helm install vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE
    
                
  • For OCI repository

                  1
    2
                
                  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:

              1
2
            
              kubectl get pods -A | grep 'vmc'

            

Get the application by running this command:

              1
2
            
              helm list -f vmc -n NAMESPACE

            

See the history of versions of vmc application with command.

              1
2
            
              helm history vmc -n NAMESPACE

            

How to uninstall #

Remove application with command.

              1
2
            
              helm uninstall vmc -n NAMESPACE

            

Documentation of Helm Chart #

Install helm-docs following the instructions on this tutorial.

Generate docs with helm-docs command.

              1
2
3
            
              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.

KeyDescription
autoDiscovery: false
(bool)

use SRV discovery for storageNode and selectNode flags for enterprise version

common.image:
    tag: ""
(object)

common for all components image configuration

extraObjects: []
(list)

Add extra specs dynamically to this chart

extraSecrets: []
(list)
global.cluster:
    dnsDomain: cluster.local.
(object)

k8s cluster domain suffix, uses for building storage pods’ FQDN. Details are here

global.compatibility:
    openshift:
        adaptSecurityContext: auto
(object)

Openshift security context compatibility configuration

global.image.registry: ""
(string)

Image registry, that can be shared across multiple helm charts

global.image.vm.tag: ""
(string)

Image tag for all vm charts

global.imagePullSecrets: []
(list)

Image pull secrets, that can be shared across multiple helm charts

license:
    key: ""
    secret:
        key: ""
        name: ""
(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

license.key: ""
(string)

License key

license.secret:
    key: ""
    name: ""
(object)

Use existing secret with license key

license.secret.key: ""
(string)

Key in secret with license key

license.secret.name: ""
(string)

Existing secret name

nameOverride: ""
(string)

Override chart name

printNotes: true
(bool)

Print information after deployment

serviceAccount.annotations: {}
(object)

Service account annotations

serviceAccount.automountToken: true
(bool)

mount API token to pod directly

serviceAccount.create: true
(bool)

Specifies whether a service account should be created

serviceAccount.extraLabels: {}
(object)

Service account labels

serviceAccount.name: null
(string)

The name of the service account to use. If not set and create is true, a name is generated using the fullname template

vmauth.affinity: {}
(object)

Pod affinity

vmauth.annotations: {}
(object)

VMAuth annotations

vmauth.config: {}
(object)

VMAuth configuration object. It’s possible to use given below predefined variables in config: * {{ .vm.read }} - parsed vmselect URL * {{ .vm.write }} - parsed vminsert URL Example config: unauthorized_user: url_map: - src_paths: - ‘{{ .vm.read.path }}/.*’ url_prefix: - ‘{{ urlJoin (omit .vm.read “path”) }}/’

vmauth.configSecretName: ""
(string)

VMAuth configuration secret name

vmauth.containerWorkingDir: ""
(string)

Container workdir

vmauth.enabled: false
(bool)

Enable deployment of vmauth component. With vmauth enabled please set service.clusterIP: None and service.type: ClusterIP for vminsert and vmselect to use vmauth balancing benefits.

vmauth.env: []
(list)

Additional environment variables (ex.: secret tokens, flags). Check here for details

vmauth.envFrom: []
(list)

Specify alternative source for env variables

vmauth.extraArgs:
    envflag.enable: true
    envflag.prefix: VM_
    httpListenAddr: :8427
    loggerFormat: json
(object)

Extra command line arguments for vmauth component

vmauth.extraContainers: []
(list)

Extra containers to run in a pod with vmauth

vmauth.extraLabels: {}
(object)

VMAuth additional labels

vmauth.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vmauth.extraVolumes: []
(list)

Extra Volumes for the pod

vmauth.fullnameOverride: ""
(string)

Overrides the full name of vmauth component

vmauth.horizontalPodAutoscaler.behavior: {}
(object)

Behavior settings for scaling by the HPA

vmauth.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vmauth component

vmauth.horizontalPodAutoscaler.maxReplicas: 10
(int)

Maximum replicas for HPA to use to to scale the vmauth component

vmauth.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vmauth component

vmauth.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vmauth component

vmauth.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vmauth.image.registry: ""
(string)

Image registry

vmauth.image.repository: victoriametrics/vmauth
(string)

Image repository

vmauth.image.tag: ""
(string)

Image tag override Chart.AppVersion

vmauth.image.variant: ""
(string)

Variant of the image to use. e.g. cluster, enterprise-cluster

vmauth.ingress.annotations: {}
(object)

Ingress annotations

vmauth.ingress.enabled: false
(bool)

Enable deployment of ingress for vmauth component

vmauth.ingress.extraLabels: {}
(object)
vmauth.ingress.hosts:
    - name: vmauth.local
      path:
        - /insert
      port: http
(list)

Array of host objects

vmauth.ingress.pathType: Prefix
(string)

pathType is only for k8s >= 1.1=

vmauth.ingress.tls: []
(list)

Array of TLS objects

vmauth.initContainers: []
(list)

Init containers for vmauth

vmauth.lifecycle: {}
(object)

Specify pod lifecycle

vmauth.name: ""
(string)

Override default app label name

vmauth.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vmauth.podAnnotations: {}
(object)

Pod’s annotations

vmauth.podDisruptionBudget:
    enabled: false
    labels: {}
(object)

See kubectl explain poddisruptionbudget.spec for more. Details are here

vmauth.podLabels: {}
(object)

VMAuth pod labels

vmauth.podSecurityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vmauth.ports.name: http
(string)

VMAuth http port name

vmauth.priorityClassName: ""
(string)

Name of Priority Class

vmauth.probe.liveness:
    failureThreshold: 3
    initialDelaySeconds: 5
    periodSeconds: 15
    tcpSocket: {}
    timeoutSeconds: 5
(object)

VMAuth liveness probe

vmauth.probe.readiness:
    failureThreshold: 10
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

VMAuth readiness probe

vmauth.probe.startup: {}
(object)

VMAuth startup probe

vmauth.replicaCount: 2
(int)

Count of vmauth pods

vmauth.resources: {}
(object)

Resource object

vmauth.securityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vmauth.service.annotations: {}
(object)

Service annotations

vmauth.service.clusterIP: ""
(string)

Service ClusterIP

vmauth.service.enabled: true
(bool)

Create VMAuth service

vmauth.service.externalIPs: []
(list)

Service External IPs. Details are here

vmauth.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vmauth.service.extraPorts: []
(list)

Extra service ports

vmauth.service.healthCheckNodePort: ""
(string)

Health check node port for a service. Check here for details

vmauth.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vmauth.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vmauth.service.labels: {}
(object)

Service labels

vmauth.service.loadBalancerIP: ""
(string)

Service load balancer IP

vmauth.service.loadBalancerSourceRanges: []
(list)

Load balancer source range

vmauth.service.servicePort: 8427
(int)

Service port

vmauth.service.targetPort: http
(string)

Target port

vmauth.service.type: ClusterIP
(string)

Service type

vmauth.service.udp: false
(bool)

Enable UDP port. used if you have spec.opentsdbListenAddr specified Make sure that service is not type LoadBalancer, as it requires MixedProtocolLBService feature gate. Check here

vmauth.serviceMonitor.annotations: {}
(object)

Service Monitor annotations

vmauth.serviceMonitor.basicAuth: {}
(object)

Basic auth params for Service Monitor

vmauth.serviceMonitor.enabled: false
(bool)

Enable deployment of Service Monitor for vmauth component. This is Prometheus operator object

vmauth.serviceMonitor.extraLabels: {}
(object)

Service Monitor labels

vmauth.serviceMonitor.metricRelabelings: []
(list)

Service Monitor metricRelabelings

vmauth.serviceMonitor.namespace: ""
(string)

Target namespace of ServiceMonitor manifest

vmauth.serviceMonitor.relabelings: []
(list)

Service Monitor relabelings

vmauth.strategy: {}
(object)

VMAuth Deployment strategy

vmauth.suppressStorageFQDNsRender: false
(bool)

Suppress rendering --storageNode FQDNs based on vmstorage.replicaCount value. If true suppress rendering --storageNodes, they can be re-defined in extraArgs

vmauth.tolerations: []
(list)

Array of tolerations object. Details are here

vmauth.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vminsert.affinity: {}
(object)

Pod affinity

vminsert.annotations: {}
(object)

StatefulSet/Deployment annotations

vminsert.containerWorkingDir: ""
(string)

Container workdir

vminsert.enabled: true
(bool)

Enable deployment of vminsert component. Deployment is used

vminsert.env: []
(list)

Additional environment variables (ex.: secret tokens, flags). Check here for details.

vminsert.envFrom: []
(list)

Specify alternative source for env variables

vminsert.excludeStorageIDs: []
(list)

IDs of vmstorage nodes to exclude from writing

vminsert.extraArgs:
    envflag.enable: true
    envflag.prefix: VM_
    httpListenAddr: :8480
    loggerFormat: json
(object)

Extra command line arguments for vminsert component

vminsert.extraContainers: []
(list)

Extra containers to run in a pod with vminsert

vminsert.extraLabels: {}
(object)

StatefulSet/Deployment additional labels

vminsert.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vminsert.extraVolumes: []
(list)

Extra Volumes for the pod

vminsert.fullnameOverride: ""
(string)

Overrides the full name of vminsert component

vminsert.horizontalPodAutoscaler.behavior: {}
(object)

Behavior settings for scaling by the HPA

vminsert.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vminsert component

vminsert.horizontalPodAutoscaler.maxReplicas: 10
(int)

Maximum replicas for HPA to use to to scale the vminsert component

vminsert.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vminsert component

vminsert.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vminsert component

vminsert.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vminsert.image.registry: ""
(string)

Image registry

vminsert.image.repository: victoriametrics/vminsert
(string)

Image repository

vminsert.image.tag: ""
(string)

Image tag override Chart.AppVersion

vminsert.image.variant: cluster
(string)

Variant of the image to use. e.g. cluster, enterprise-cluster

vminsert.ingress.annotations: {}
(object)

Ingress annotations

vminsert.ingress.enabled: false
(bool)

Enable deployment of ingress for vminsert component

vminsert.ingress.extraLabels: {}
(object)

Ingress extra labels

vminsert.ingress.hosts:
    - name: vminsert.local
      path:
        - /insert
      port: http
(list)

Array of host objects

vminsert.ingress.ingressClassName: ""
(string)

Ingress controller class name

vminsert.ingress.pathType: Prefix
(string)

Ingress path type

vminsert.ingress.tls: []
(list)

Array of TLS objects

vminsert.initContainers: []
(list)

Init containers for vminsert

vminsert.lifecycle: {}
(object)

Specify pod lifecycle

vminsert.name: ""
(string)

Override default app label name

vminsert.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vminsert.podAnnotations: {}
(object)

Pod’s annotations

vminsert.podDisruptionBudget:
    enabled: false
    labels: {}
(object)

See kubectl explain poddisruptionbudget.spec for more. Details are here

vminsert.podLabels: {}
(object)

Pod’s additional labels

vminsert.podSecurityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vminsert.ports.name: http
(string)

VMInsert http port name

vminsert.priorityClassName: ""
(string)

Name of Priority Class

vminsert.probe:
    liveness:
        failureThreshold: 3
        initialDelaySeconds: 5
        periodSeconds: 15
        tcpSocket: {}
        timeoutSeconds: 5
    readiness:
        failureThreshold: 10
        httpGet: {}
        initialDelaySeconds: 5
        periodSeconds: 5
        timeoutSeconds: 5
    startup: {}
(object)

Readiness & Liveness probes

vminsert.probe.liveness:
    failureThreshold: 3
    initialDelaySeconds: 5
    periodSeconds: 15
    tcpSocket: {}
    timeoutSeconds: 5
(object)

VMInsert liveness probe

vminsert.probe.readiness:
    failureThreshold: 10
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

VMInsert readiness probe

vminsert.probe.startup: {}
(object)

VMInsert startup probe

vminsert.relabel:
    config: []
    configMap: ""
    enabled: false
(object)

Relabel configuration

vminsert.relabel.configMap: ""
(string)

Use existing configmap if specified otherwise .config values will be used. Relabel config should reside under relabel.yml key

vminsert.replicaCount: 2
(int)

Count of vminsert pods

vminsert.resources: {}
(object)

Resource object. Details are here

vminsert.securityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vminsert.service.annotations: {}
(object)

Service annotations

vminsert.service.clusterIP: ""
(string)

Service ClusterIP

vminsert.service.enabled: true
(bool)

Create VMInsert service

vminsert.service.externalIPs: []
(list)

Service external IPs. Details are here

vminsert.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vminsert.service.extraPorts: []
(list)

Extra service ports

vminsert.service.healthCheckNodePort: ""
(string)

Health check node port for a service. Check here for details

vminsert.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vminsert.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vminsert.service.labels: {}
(object)

Service labels

vminsert.service.loadBalancerIP: ""
(string)

Service load balancer IP

vminsert.service.loadBalancerSourceRanges: []
(list)

Load balancer source range

vminsert.service.servicePort: 8480
(int)

Service port

vminsert.service.targetPort: http
(string)

Target port

vminsert.service.type: ClusterIP
(string)

Service type

vminsert.service.udp: false
(bool)

Enable UDP port. used if you have spec.opentsdbListenAddr specified Make sure that service is not type LoadBalancer, as it requires MixedProtocolLBService feature gate. Check here for details

vminsert.serviceMonitor.annotations: {}
(object)

Service Monitor annotations

vminsert.serviceMonitor.basicAuth: {}
(object)

Basic auth params for Service Monitor

vminsert.serviceMonitor.enabled: false
(bool)

Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object

vminsert.serviceMonitor.extraLabels: {}
(object)

Service Monitor labels

vminsert.serviceMonitor.metricRelabelings: []
(list)

Service Monitor metricRelabelings

vminsert.serviceMonitor.namespace: ""
(string)

Target namespace of ServiceMonitor manifest

vminsert.serviceMonitor.relabelings: []
(list)

Service Monitor relabelings

vminsert.strategy: {}
(object)

VMInsert strategy

vminsert.suppressStorageFQDNsRender: false
(bool)

Suppress rendering --storageNode FQDNs based on vmstorage.replicaCount value. If true suppress rendering --storageNodes, they can be re-defined in extraArgs

vminsert.terminationGracePeriodSeconds: 30
(int)
vminsert.tolerations: []
(list)

Array of tolerations object. Details are here

vminsert.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vmselect.affinity: {}
(object)

Pod affinity

vmselect.annotations: {}
(object)

StatefulSet/Deployment annotations

vmselect.cacheMountPath: /cache
(string)

Cache root folder

vmselect.containerWorkingDir: ""
(string)

Container workdir

vmselect.deployment:
    spec:
        strategy: {}
(object)

K8s Deployment specific variables

vmselect.deployment.spec.strategy: {}
(object)

VMSelect strategy

vmselect.emptyDir: {}
(object)

Empty dir configuration if persistence is disabled

vmselect.enabled: true
(bool)

Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet

vmselect.env: []
(list)

Additional environment variables (ex.: secret tokens, flags). Check here for details.

vmselect.envFrom: []
(list)

Specify alternative source for env variables

vmselect.extraArgs:
    envflag.enable: true
    envflag.prefix: VM_
    httpListenAddr: :8481
    loggerFormat: json
(object)

Extra command line arguments for vmselect component

vmselect.extraContainers: []
(list)

Extra containers to run in a pod with vmselect

vmselect.extraHostPathMounts: []
(list)

Additional hostPath mounts

vmselect.extraLabels: {}
(object)

StatefulSet/Deployment additional labels

vmselect.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vmselect.extraVolumes: []
(list)

Extra Volumes for the pod

vmselect.fullnameOverride: ""
(string)

Overrides the full name of vmselect component

vmselect.horizontalPodAutoscaler.behavior: {}
(object)

Behavior settings for scaling by the HPA

vmselect.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vmselect component

vmselect.horizontalPodAutoscaler.maxReplicas: 10
(int)

Maximum replicas for HPA to use to to scale the vmselect component

vmselect.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vmselect component

vmselect.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vmselect component

vmselect.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vmselect.image.registry: ""
(string)

Image registry

vmselect.image.repository: victoriametrics/vmselect
(string)

Image repository

vmselect.image.tag: ""
(string)

Image tag override Chart.AppVersion

vmselect.image.variant: cluster
(string)

Variant of the image to use. e.g. cluster, enterprise-cluster

vmselect.ingress.annotations: {}
(object)

Ingress annotations

vmselect.ingress.enabled: false
(bool)

Enable deployment of ingress for vmselect component

vmselect.ingress.extraLabels: {}
(object)

Ingress extra labels

vmselect.ingress.hosts:
    - name: vmselect.local
      path:
        - /select
      port: http
(list)

Array of host objects

vmselect.ingress.ingressClassName: ""
(string)

Ingress controller class name

vmselect.ingress.pathType: Prefix
(string)

Ingress path type

vmselect.ingress.tls: []
(list)

Array of TLS objects

vmselect.initContainers: []
(list)

Init containers for vmselect

vmselect.lifecycle: {}
(object)

Specify pod lifecycle

vmselect.mode: deployment
(string)

vmselect mode: deployment, daemonSet

vmselect.name: ""
(string)

Override default app label name

vmselect.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vmselect.persistentVolume.accessModes:
    - ReadWriteOnce
(list)

Array of access mode. Must match those of existing PV or dynamic provisioner. Details are here

vmselect.persistentVolume.annotations: {}
(object)

Persistent volume annotations

vmselect.persistentVolume.enabled: false
(bool)

Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim

vmselect.persistentVolume.existingClaim: ""
(string)

Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound

vmselect.persistentVolume.labels: {}
(object)

Persistent volume labels

vmselect.persistentVolume.size: 2Gi
(string)

Size of the volume. Better to set the same as resource limit memory property

vmselect.persistentVolume.subPath: ""
(string)

Mount subpath

vmselect.podAnnotations: {}
(object)

Pod’s annotations

vmselect.podDisruptionBudget:
    enabled: false
    labels: {}
(object)

See kubectl explain poddisruptionbudget.spec for more. Details are here

vmselect.podDisruptionBudget.enabled: false
(bool)

See kubectl explain poddisruptionbudget.spec for more. Details are here

vmselect.podLabels: {}
(object)

Pod’s additional labels

vmselect.podSecurityContext:
    enabled: true
(object)

Pod’s security context. Details are here

vmselect.ports.name: http
(string)

VMSelect http port name

vmselect.priorityClassName: ""
(string)

Name of Priority Class

vmselect.probe:
    liveness:
        failureThreshold: 3
        initialDelaySeconds: 5
        periodSeconds: 15
        tcpSocket: {}
        timeoutSeconds: 5
    readiness:
        failureThreshold: 10
        httpGet: {}
        initialDelaySeconds: 5
        periodSeconds: 5
        timeoutSeconds: 5
    startup: {}
(object)

Readiness & Liveness probes

vmselect.probe.liveness:
    failureThreshold: 3
    initialDelaySeconds: 5
    periodSeconds: 15
    tcpSocket: {}
    timeoutSeconds: 5
(object)

VMSelect liveness probe

vmselect.probe.readiness:
    failureThreshold: 10
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

VMSelect readiness probe

vmselect.probe.startup: {}
(object)

VMSelect startup probe

vmselect.replicaCount: 2
(int)

Count of vmselect pods

vmselect.resources: {}
(object)

Resource object. Details are here

vmselect.securityContext:
    enabled: true
(object)

Pod’s security context. Details are here

vmselect.service.annotations: {}
(object)

Service annotations

vmselect.service.clusterIP: ""
(string)

Service ClusterIP

vmselect.service.enabled: true
(bool)

Create VMSelect service

vmselect.service.externalIPs: []
(list)

Service external IPs. Details are here

vmselect.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vmselect.service.extraPorts: []
(list)

Extra service ports

vmselect.service.healthCheckNodePort: ""
(string)

Health check node port for a service. Check here for details

vmselect.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vmselect.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vmselect.service.labels: {}
(object)

Service labels

vmselect.service.loadBalancerIP: ""
(string)

Service load balancer IP

vmselect.service.loadBalancerSourceRanges: []
(list)

Load balancer source range

vmselect.service.servicePort: 8481
(int)

Service port

vmselect.service.targetPort: http
(string)

Target port

vmselect.service.type: ClusterIP
(string)

Service type

vmselect.serviceMonitor.annotations: {}
(object)

Service Monitor annotations

vmselect.serviceMonitor.basicAuth: {}
(object)

Basic auth params for Service Monitor

vmselect.serviceMonitor.enabled: false
(bool)

Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object

vmselect.serviceMonitor.extraLabels: {}
(object)

Service Monitor labels

vmselect.serviceMonitor.metricRelabelings: []
(list)

Service Monitor metricRelabelings

vmselect.serviceMonitor.namespace: ""
(string)

Target namespace of ServiceMonitor manifest

vmselect.serviceMonitor.relabelings: []
(list)

Service Monitor relabelings

vmselect.statefulSet:
    spec:
        podManagementPolicy: OrderedReady
(object)

K8s StatefulSet specific variables

vmselect.statefulSet.spec.podManagementPolicy: OrderedReady
(string)

Deploy order policy for StatefulSet pods

vmselect.suppressStorageFQDNsRender: false
(bool)

Suppress rendering --storageNode FQDNs based on vmstorage.replicaCount value. If true suppress rendering --storageNodes, they can be re-defined in extraArgs

vmselect.terminationGracePeriodSeconds: 60
(int)

Pod’s termination grace period in seconds

vmselect.tolerations: []
(list)

Array of tolerations object. Details are here

vmselect.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vmstorage.affinity: {}
(object)

Pod affinity

vmstorage.annotations: {}
(object)

StatefulSet/Deployment annotations

vmstorage.containerWorkingDir: ""
(string)

Container workdir

vmstorage.emptyDir: {}
(object)

Empty dir configuration if persistence is disabled

vmstorage.enabled: true
(bool)

Enable deployment of vmstorage component. StatefulSet is used

vmstorage.env: []
(list)

Additional environment variables (ex.: secret tokens, flags). Check here for details

vmstorage.envFrom: []
(list)

Specify alternative source for env variables

vmstorage.extraArgs:
    envflag.enable: true
    envflag.prefix: VM_
    httpListenAddr: :8482
    loggerFormat: json
(object)

Additional vmstorage container arguments. Extra command line arguments for vmstorage component

vmstorage.extraContainers: []
(list)

Extra containers to run in a pod with vmstorage

vmstorage.extraHostPathMounts: []
(list)

Additional hostPath mounts

vmstorage.extraLabels: {}
(object)

StatefulSet/Deployment additional labels

vmstorage.extraSecretMounts: []
(list)

Extra secret mounts for vmstorage

vmstorage.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vmstorage.extraVolumes: []
(list)

Extra Volumes for the pod

vmstorage.fullnameOverride: null
(string)

Overrides the full name of vmstorage component

vmstorage.horizontalPodAutoscaler.behavior:
    scaleDown:
        selectPolicy: Disabled
(object)

Behavior settings for scaling by the HPA

vmstorage.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vmstorage component

vmstorage.horizontalPodAutoscaler.maxReplicas: 10
(int)

Maximum replicas for HPA to use to to scale the vmstorage component

vmstorage.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vmstorage component

vmstorage.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vmstorage component

vmstorage.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vmstorage.image.registry: ""
(string)

Image registry

vmstorage.image.repository: victoriametrics/vmstorage
(string)

Image repository

vmstorage.image.tag: ""
(string)

Image tag override Chart.AppVersion

vmstorage.image.variant: cluster
(string)

Variant of the image to use. e.g. cluster, enterprise-cluster

vmstorage.initContainers: []
(list)

Init containers for vmstorage

vmstorage.lifecycle: {}
(object)

Specify pod lifecycle

vmstorage.minReadySeconds: 5
(int)
vmstorage.name: ""
(string)

Override default app label name

vmstorage.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vmstorage.persistentVolume.accessModes:
    - ReadWriteOnce
(list)

Array of access modes. Must match those of existing PV or dynamic provisioner. Details are here

vmstorage.persistentVolume.annotations: {}
(object)

Persistent volume annotations

vmstorage.persistentVolume.enabled: true
(bool)

Create/use Persistent Volume Claim for vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim

vmstorage.persistentVolume.existingClaim: ""
(string)

Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound

vmstorage.persistentVolume.labels: {}
(object)

Persistent volume labels

vmstorage.persistentVolume.mountPath: /storage
(string)

Data root path. Vmstorage data Persistent Volume mount root path

vmstorage.persistentVolume.name: vmstorage-volume
(string)
vmstorage.persistentVolume.size: 8Gi
(string)

Size of the volume.

vmstorage.persistentVolume.storageClassName: ""
(string)

Storage class name. Will be empty if not set

vmstorage.persistentVolume.subPath: ""
(string)

Mount subpath

vmstorage.podAnnotations: {}
(object)

Pod’s annotations

vmstorage.podDisruptionBudget:
    enabled: false
    labels: {}
(object)

See kubectl explain poddisruptionbudget.spec for more. Details are here

vmstorage.podLabels: {}
(object)

Pod’s additional labels

vmstorage.podManagementPolicy: OrderedReady
(string)

Deploy order policy for StatefulSet pods

vmstorage.podSecurityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vmstorage.ports.name: http
(string)

VMStorage http port name

vmstorage.priorityClassName: ""
(string)

Name of Priority Class

vmstorage.probe:
    readiness:
        failureThreshold: 10
        httpGet: {}
        initialDelaySeconds: 5
        periodSeconds: 5
        timeoutSeconds: 5
    startup: {}
(object)

Readiness probes

vmstorage.probe.readiness:
    failureThreshold: 10
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

VMStorage readiness probe

vmstorage.probe.startup: {}
(object)

VMStorage startup probe

vmstorage.replicaCount: 2
(int)

Count of vmstorage pods

vmstorage.resources: {}
(object)

Resource object. Details are here

vmstorage.retentionPeriod: 1
(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

vmstorage.schedulerName: ""
(string)

Use an alternate scheduler, e.g. “stork”. Check here for details

vmstorage.securityContext:
    enabled: false
(object)

Pod’s security context. Details are here

vmstorage.service.annotations: {}
(object)

Service annotations

vmstorage.service.clusterIP: None
(string)

Service ClusterIP

vmstorage.service.enabled: true
(bool)
vmstorage.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vmstorage.service.extraPorts: []
(list)

Extra service ports

vmstorage.service.healthCheckNodePort: ""
(string)

Health check node port for a service. Check here for details

vmstorage.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vmstorage.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vmstorage.service.labels: {}
(object)

Service labels

vmstorage.service.servicePort: 8482
(int)

Service port

vmstorage.service.type: ClusterIP
(string)

Service type

vmstorage.service.vminsertPort: 8400
(int)

Port for accepting connections from vminsert

vmstorage.service.vmselectPort: 8401
(int)

Port for accepting connections from vmselect

vmstorage.serviceMonitor.annotations: {}
(object)

Service Monitor annotations

vmstorage.serviceMonitor.basicAuth: {}
(object)

Basic auth params for Service Monitor

vmstorage.serviceMonitor.enabled: false
(bool)

Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object

vmstorage.serviceMonitor.extraLabels: {}
(object)

Service Monitor labels

vmstorage.serviceMonitor.metricRelabelings: []
(list)

Service Monitor metricRelabelings

vmstorage.serviceMonitor.namespace: ""
(string)

Target namespace of ServiceMonitor manifest

vmstorage.serviceMonitor.relabelings: []
(list)

Service Monitor relabelings

vmstorage.terminationGracePeriodSeconds: 60
(int)

Pod’s termination grace period in seconds

vmstorage.tolerations: []
(list)

Array of tolerations object. Node tolerations for server scheduling to nodes with taints. Details are here

vmstorage.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vmstorage.vmbackupmanager.destination: ""
(string)

Backup destination at S3, GCS or local filesystem. Pod name will be included to path!

vmstorage.vmbackupmanager.disableDaily: false
(bool)

Disable daily backups

vmstorage.vmbackupmanager.disableHourly: false
(bool)

Disable hourly backups

vmstorage.vmbackupmanager.disableMonthly: false
(bool)

Disable monthly backups

vmstorage.vmbackupmanager.disableWeekly: false
(bool)

Disable weekly backups

vmstorage.vmbackupmanager.enabled: false
(bool)

Enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages

vmstorage.vmbackupmanager.env: []
(list)

Additional environment variables (ex.: secret tokens, flags). Check here for details

vmstorage.vmbackupmanager.extraArgs:
    envflag.enable: true
    envflag.prefix: VM_
    loggerFormat: json
(object)

Extra command line arguments for container of component

vmstorage.vmbackupmanager.extraSecretMounts: []
(list)

Extra secret mounts for vmbackupmanager

vmstorage.vmbackupmanager.image.registry: ""
(string)

VMBackupManager image registry

vmstorage.vmbackupmanager.image.repository: victoriametrics/vmbackupmanager
(string)

VMBackupManager image repository

vmstorage.vmbackupmanager.image.tag: ""
(string)

VMBackupManager image tag override Chart.AppVersion

vmstorage.vmbackupmanager.image.variant: cluster
(string)

Variant of the image tag to use. e.g. enterprise.

vmstorage.vmbackupmanager.probe:
    liveness:
        failureThreshold: 10
        initialDelaySeconds: 30
        periodSeconds: 30
        tcpSocket:
            port: manager-http
        timeoutSeconds: 5
    readiness:
        failureThreshold: 10
        httpGet:
            port: manager-http
        initialDelaySeconds: 5
        periodSeconds: 5
        timeoutSeconds: 5
    startup: {}
(object)

Readiness & Liveness probes

vmstorage.vmbackupmanager.probe.liveness:
    failureThreshold: 10
    initialDelaySeconds: 30
    periodSeconds: 30
    tcpSocket:
        port: manager-http
    timeoutSeconds: 5
(object)

VMBackupManager liveness probe

vmstorage.vmbackupmanager.probe.readiness:
    failureThreshold: 10
    httpGet:
        port: manager-http
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

VMBackupManager readiness probe

vmstorage.vmbackupmanager.probe.startup: {}
(object)

VMBackupManager startup probe

vmstorage.vmbackupmanager.resources: {}
(object)

Resource object. Details are here

vmstorage.vmbackupmanager.restore:
    onStart:
        enabled: false
(object)

Allows to enable restore options for pod. Check here for details

vmstorage.vmbackupmanager.retention:
    keepLastDaily: 2
    keepLastHourly: 2
    keepLastMonthly: 2
    keepLastWeekly: 2
(object)

Backups’ retention settings

vmstorage.vmbackupmanager.retention.keepLastDaily: 2
(int)

Keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off

vmstorage.vmbackupmanager.retention.keepLastHourly: 2
(int)

Keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off

vmstorage.vmbackupmanager.retention.keepLastMonthly: 2
(int)

Keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off

vmstorage.vmbackupmanager.retention.keepLastWeekly: 2
(int)

Keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off