Version ArtifactHub License Slack X Reddit

The VictoriaTraces cluster Helm chart deploys VictoriaTraces cluster database in Kubernetes.

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:

Quick start #

The chart deploys VictoriaTraces cluster database. It deploys the following components according to VictoriaTraces cluster architecture :

  • vtstorage stores the ingested traces to the configured persistent volumes
  • vtinsert receives incoming traces and spreads them evenly across vtstorage nodes
  • vtselect provides API for querying the ingested traces

The default chart setup is shown below:

graph LR
    Collector["Log Collector"] --> VTI1["vtinsert-1"]
    Collector --> VTI2["vtinsert-2"]

    subgraph "VictoriaTraces Cluster"
        VTI1 --> VTS1["vtstorage-1"]
        VTI1 --> VTS2["vtstorage-2"]
        VTI2 --> VTS1
        VTI2 --> VTS2

        VTS1 <--> VTQ1["vtselect-1"]
        VTS1 <--> VTQ2["vtselect-2"]
        VTS2 <--> VTQ1
        VTS2 <--> VTQ2
    end

    VTQ2 <--> Users

For a quick start, install victoria-traces-cluster using the following commands, making sure to replace the environment variables with your own values:

      export RETENTION=30d
export PVC_SIZE=10Gi
export VTSTORAGE_REPLICAS=2
export NAMESPACE=traces

# Install victoria-traces-cluster chart
helm install vtc vm/victoria-traces-cluster --namespace $NAMESPACE --wait \
    --set "vtstorage.retentionPeriod=$RETENTION" --set "vtstorage.persistentVolume.size=$PVC_SIZE" \
    --set vmauth.enabled=true \
    --set vtstorage.replicaCount=$VTSTORAGE_REPLICAS

In the example above, two `vtstorage` instances are deployed, each with a 30-day retention period and a 10 Gi PVC.

To access the data within the cluster, use the vmauth address: `http://vtc-victoria-traces-cluster-vmauth.logging.svc.cluster.local:8427`.
You can use this address as Data Source URL in Grafana.
The vmui interface is available at: `http://vtc-victoria-traces-cluster-vmauth.logging.svc.cluster.local:8427/select/vmui/`.

To uninstall these charts, run: `helm uninstall vts`.
Note that this *will not* remove the PVCs, so you will need to delete them manually if no longer needed.

For finer control and easier maintenance, it is recommended to set these
values in a separate `values` file and use it during installation.
See [how to install victoria-traces-single](https://docs.victoriametrics.com/helm/victoria-traces-single/#install-victoria-traces-single-chart) for an example.
You can do this later if you want to configure more settings than shown in the default example.

## Chart configuration

### vmauth

When you enable `vmauth` with:

```yaml
vmauth:
  enabled: true
    

The chart launches an vmauth service for proxying and load-balancing incoming data ingestion requests to vtinsert nodes and for proxying and load-balancing incoming queries to vtselect nodes.

So, the chart can now be thought of as:

graph LR
    Collector["Traces Collector"] --> VTI1["vtinsert-1"]
    Collector --> VTI2["vtinsert-2"]

    subgraph "VictoriaTraces Cluster"
        VTI1 --> VTS1["vtstorage-1"]
        VTI1 --> VTS2["vtstorage-2"]
        VTI2 --> VTS1
        VTI2 --> VTS2

        VTS1 <--> VTQ1["vtselect-1"]
        VTS1 <--> VTQ2["vtselect-2"]
        VTS2 <--> VTQ1
        VTS2 <--> VTQ2
    end

    VTQ1 <--> Users["vmauth"]
    VTQ2 <--> Users

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-traces-cluster chart available to installation:

      helm search repo vm/victoria-traces-cluster -l

    

Install victoria-traces-cluster chart #

Export default values of victoria-traces-cluster chart to file values.yaml:

  • For HTTPS repository

          helm show values vm/victoria-traces-cluster > values.yaml
    
        
  • For OCI repository

          helm show values oci://ghcr.io/victoriametrics/helm-charts/victoria-traces-cluster > values.yaml
    
        

Change the values according to the need of the environment in values.yaml file.

Note

Consider setting .Values.nameOverride to a small value like vtc to avoid hitting resource name limits of 63 characters

Test the installation with command:

  • For HTTPS repository

          helm install vtc vm/victoria-traces-cluster -f values.yaml -n NAMESPACE --debug
    
        
  • For OCI repository

          helm install vtc oci://ghcr.io/victoriametrics/helm-charts/victoria-traces-cluster -f values.yaml -n NAMESPACE --debug
    
        

Install chart with command:

  • For HTTPS repository

          helm install vtc vm/victoria-traces-cluster -f values.yaml -n NAMESPACE
    
        
  • For OCI repository

          helm install vtc oci://ghcr.io/victoriametrics/helm-charts/victoria-traces-cluster -f values.yaml -n NAMESPACE
    
        

Get the pods lists by running this commands:

      kubectl get pods -A | grep 'vtc'

    

Get the application by running this command:

      helm list -f vtc -n NAMESPACE

    

See the history of versions of vtc application with command.

      helm history vtc -n NAMESPACE

    

How to uninstall #

Remove application with command.

      helm uninstall vtc -n NAMESPACE

    

Documentation of Helm Chart #

Install helm-docs following the instructions on this tutorial .

Generate docs with helm-docs command.

      cd charts/victoria-traces-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-traces-cluster/values.yaml file.

KeyDescription
common.image:
    tag: ""
(object)

common for all components image configuration

extraObjects: []
(list)

Add extra specs dynamically to this chart

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.imagePullSecrets: []
(list)

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

nameOverride: vt-cluster
(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: false
(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.configSecretName: ""
(string)

VMAuth configuration secret name

vmauth.containerWorkingDir: ""
(string)

Container workdir

vmauth.enabled: false
(bool)

Enable deployment of vmauth component, to help better balance the read and write requests to vtinsert and vtselect components. With vmauth enabled, please also set service.clusterIP: None and service.type: ClusterIP for vtinsert and vtselect.

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
    http.shutdownDelay: 15s
    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: v1.116.0
(string)

Image tag override the default Chart.AppVersion, which is for vtraces components

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: true
    fsGroup: 1000
(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: 3
    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: true
    runAsGroup: 1000
    runAsNonRoot: true
    runAsUser: 1000
(object)

Check here for details.

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.strategy: {}
(object)

VMAuth Deployment strategy

vmauth.tolerations: []
(list)

Array of tolerations object. Details are here

vmauth.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vmauth.vmServiceScrape.annotations: {}
(object)

VMServiceScrape annotations

vmauth.vmServiceScrape.enabled: false
(bool)

Enable VMServiceScrape for vmauth component, which is managed by vm-operator.

vmauth.vmServiceScrape.extraLabels: {}
(object)

VMServiceScrape labels

vmauth.vmServiceScrape.namespace: ""
(string)

Target namespace of VMServiceScrape manifest

vmauth.vmServiceScrape.spec.endpoints[0].port: http
(string)
vmauth.vmServiceScrape.useServiceMonitor: false
(bool)

Create ServiceMonitor instead of VMServiceScrape, which is managed by prometheus-operator

vtinsert.affinity: {}
(object)

Pod affinity

vtinsert.annotations: {}
(object)

Deployment annotations

vtinsert.containerWorkingDir: ""
(string)

Container workdir

vtinsert.enabled: true
(bool)

Enable deployment of vtinsert component.

vtinsert.env: []
(list)

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

vtinsert.envFrom: []
(list)

Specify alternative source for env variables

vtinsert.excludeStorageIDs: []
(list)

IDs of vtstorage nodes to exclude from writing

vtinsert.extraArgs:
    envflag.enable: true
    http.shutdownDelay: 15s
    httpListenAddr: :10481
    loggerFormat: json
(object)

Extra command line arguments for vtinsert component

vtinsert.extraContainers: []
(list)

Extra containers to run in a pod with vtinsert

vtinsert.extraLabels: {}
(object)

Deployment additional labels

vtinsert.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vtinsert.extraVolumes: []
(list)

Extra Volumes for the pod

vtinsert.fullnameOverride: ""
(string)

Overrides the full name of vtinsert component

vtinsert.horizontalPodAutoscaler.behavior: {}
(object)

Behavior settings for scaling by the HPA

vtinsert.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vtinsert component

vtinsert.horizontalPodAutoscaler.maxReplicas: 10
(int)

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

vtinsert.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vtinsert component

vtinsert.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vtinsert component

vtinsert.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vtinsert.image.registry: ""
(string)

Image registry

vtinsert.image.repository: victoriametrics/victoria-traces
(string)

Image repository

vtinsert.image.tag: ""
(string)

Image tag override Chart.AppVersion

vtinsert.image.variant: ""
(string)

Image tag suffix, which is appended to Chart.AppVersion if no server.image.tag is defined

vtinsert.ingress.annotations: {}
(object)

Ingress annotations

vtinsert.ingress.enabled: false
(bool)

Enable ingress for vtinsert component

vtinsert.ingress.extraLabels: {}
(object)

Ingress extra labels

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

Array of host objects

vtinsert.ingress.ingressClassName: ""
(string)

Ingress controller class name

vtinsert.ingress.pathType: Prefix
(string)

Ingress path type

vtinsert.ingress.tls: []
(list)

Array of TLS objects

vtinsert.initContainers: []
(list)

Init containers for vtinsert

vtinsert.lifecycle: {}
(object)

Specify pod lifecycle

vtinsert.name: ""
(string)

Override default app label name

vtinsert.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vtinsert.podAnnotations: {}
(object)

Pod’s annotations

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

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

vtinsert.podLabels: {}
(object)

Pod’s additional labels

vtinsert.podSecurityContext:
    enabled: true
    fsGroup: 1000
(object)

Pod’s security context. Details are here

vtinsert.ports.name: http
(string)

vtinsert http port name

vtinsert.priorityClassName: ""
(string)

Name of Priority Class

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

Readiness & Liveness probes

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

vtinsert liveness probe

vtinsert.probe.readiness:
    failureThreshold: 3
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

vtinsert readiness probe

vtinsert.probe.startup: {}
(object)

vtinsert startup probe

vtinsert.replicaCount: 2
(int)

Count of vtinsert pods

vtinsert.resources: {}
(object)

Resource object. Details are here

vtinsert.securityContext:
    enabled: true
    runAsGroup: 1000
    runAsNonRoot: true
    runAsUser: 1000
(object)

Check here for details.

vtinsert.service.annotations: {}
(object)

Service annotations

vtinsert.service.clusterIP: ""
(string)

Service ClusterIP

vtinsert.service.enabled: true
(bool)

Create vtinsert service

vtinsert.service.externalIPs: []
(list)

Service external IPs. Details are here

vtinsert.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vtinsert.service.extraPorts: []
(list)

Extra service ports

vtinsert.service.healthCheckNodePort: ""
(string)

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

vtinsert.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vtinsert.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vtinsert.service.labels: {}
(object)

Service labels

vtinsert.service.loadBalancerIP: ""
(string)

Service load balancer IP

vtinsert.service.loadBalancerSourceRanges: []
(list)

Load balancer source range

vtinsert.service.servicePort: 10481
(int)

Service port

vtinsert.service.targetPort: http
(string)

Target port

vtinsert.service.type: ClusterIP
(string)

Service type

vtinsert.strategy: {}
(object)

vtinsert strategy

vtinsert.suppressStorageFQDNsRender: false
(bool)

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

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

Array of tolerations object. Details are here

vtinsert.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vtinsert.vmServiceScrape.annotations: {}
(object)

VMServiceScrape annotations

vtinsert.vmServiceScrape.enabled: false
(bool)

Enable VMServiceScrape for vtinsert component, which is managed by vm-operator.

vtinsert.vmServiceScrape.extraLabels: {}
(object)

VMServiceScrape labels

vtinsert.vmServiceScrape.namespace: ""
(string)

Target namespace of VMServiceScrape manifest

vtinsert.vmServiceScrape.spec.endpoints[0].port: http
(string)
vtinsert.vmServiceScrape.useServiceMonitor: false
(bool)

Create ServiceMonitor instead of VMServiceScrape, which is managed by prometheus-operator

vtselect.affinity: {}
(object)

Pod affinity

vtselect.annotations: {}
(object)

Deployment annotations

vtselect.containerWorkingDir: ""
(string)

Container workdir

vtselect.enabled: true
(bool)

Enable deployment of vtselect component.

vtselect.env: []
(list)

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

vtselect.envFrom: []
(list)

Specify alternative source for env variables

vtselect.extraArgs:
    envflag.enable: true
    http.shutdownDelay: 15s
    httpListenAddr: :10471
    loggerFormat: json
(object)

Extra command line arguments for vtselect component

vtselect.extraContainers: []
(list)

Extra containers to run in a pod with vtselect

vtselect.extraLabels: {}
(object)

Deployment additional labels

vtselect.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vtselect.extraVolumes: []
(list)

Extra Volumes for the pod

vtselect.fullnameOverride: ""
(string)

Overrides the full name of vtselect component

vtselect.horizontalPodAutoscaler.behavior: {}
(object)

Behavior settings for scaling by the HPA

vtselect.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vtselect component

vtselect.horizontalPodAutoscaler.maxReplicas: 10
(int)

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

vtselect.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vtselect component

vtselect.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vtselect component

vtselect.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vtselect.image.registry: ""
(string)

Image registry

vtselect.image.repository: victoriametrics/victoria-traces
(string)

Image repository

vtselect.image.tag: ""
(string)

Image tag override Chart.AppVersion

vtselect.image.variant: ""
(string)

Image tag suffix, which is appended to Chart.AppVersion if no server.image.tag is defined

vtselect.ingress.annotations: {}
(object)

Ingress annotations

vtselect.ingress.enabled: false
(bool)

Enable deployment of ingress for vtselect component

vtselect.ingress.extraLabels: {}
(object)

Ingress extra labels

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

Array of host objects

vtselect.ingress.ingressClassName: ""
(string)

Ingress controller class name

vtselect.ingress.pathType: Prefix
(string)

Ingress path type

vtselect.ingress.tls: []
(list)

Array of TLS objects

vtselect.initContainers: []
(list)

Init containers for vtselect

vtselect.lifecycle: {}
(object)

Specify pod lifecycle

vtselect.name: ""
(string)

Override default app label name

vtselect.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vtselect.podAnnotations: {}
(object)

Pod’s annotations

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

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

vtselect.podDisruptionBudget.enabled: false
(bool)

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

vtselect.podLabels: {}
(object)

Pod’s additional labels

vtselect.podSecurityContext:
    enabled: true
    fsGroup: 1000
(object)

Pod’s security context. Details are here

vtselect.ports.name: http
(string)

vtselect http port name

vtselect.priorityClassName: ""
(string)

Name of Priority Class

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

Readiness & Liveness probes

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

vtselect liveness probe

vtselect.probe.readiness:
    failureThreshold: 3
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

vtselect readiness probe

vtselect.probe.startup: {}
(object)

vtselect startup probe

vtselect.replicaCount: 2
(int)

Count of vtselect pods

vtselect.resources: {}
(object)

Resource object. Details are here

vtselect.securityContext:
    enabled: true
    runAsGroup: 1000
    runAsNonRoot: true
    runAsUser: 1000
(object)

Check here for details.

vtselect.service.annotations: {}
(object)

Service annotations

vtselect.service.clusterIP: ""
(string)

Service ClusterIP

vtselect.service.enabled: true
(bool)

Create vtselect service

vtselect.service.externalIPs: []
(list)

Service external IPs. Details are here

vtselect.service.externalTrafficPolicy: ""
(string)

Service external traffic policy. Check here for details

vtselect.service.extraPorts: []
(list)

Extra service ports

vtselect.service.healthCheckNodePort: ""
(string)

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

vtselect.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vtselect.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vtselect.service.labels: {}
(object)

Service labels

vtselect.service.loadBalancerIP: ""
(string)

Service load balancer IP

vtselect.service.loadBalancerSourceRanges: []
(list)

Load balancer source range

vtselect.service.servicePort: 10471
(int)

Service port

vtselect.service.targetPort: http
(string)

Target port

vtselect.service.type: ClusterIP
(string)

Service type

vtselect.strategy: {}
(object)
vtselect.suppressStorageFQDNsRender: false
(bool)

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

vtselect.terminationGracePeriodSeconds: 60
(int)

Pod’s termination grace period in seconds

vtselect.tolerations: []
(list)

Array of tolerations object. Details are here

vtselect.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vtselect.vmServiceScrape.annotations: {}
(object)

VMServiceScrape annotations

vtselect.vmServiceScrape.enabled: false
(bool)

Enable VMServiceScrape for vtselect component, which is managed by vm-operator.

vtselect.vmServiceScrape.extraLabels: {}
(object)

VMServiceScrape labels

vtselect.vmServiceScrape.namespace: ""
(string)

Target namespace of VMServiceScrape manifest

vtselect.vmServiceScrape.spec.endpoints[0].port: http
(string)
vtselect.vmServiceScrape.useServiceMonitor: false
(bool)

Create ServiceMonitor instead of VMServiceScrape, which is managed by prometheus-operator

vtstorage.affinity: {}
(object)

Pod affinity

vtstorage.annotations: {}
(object)

StatefulSet/Deployment annotations

vtstorage.containerWorkingDir: ""
(string)

Container workdir

vtstorage.emptyDir: {}
(object)

Empty dir configuration if persistence is disabled

vtstorage.enabled: true
(bool)

Enable deployment of vtstorage component. StatefulSet is used

vtstorage.env: []
(list)

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

vtstorage.envFrom: []
(list)

Specify alternative source for env variables

vtstorage.extraArgs:
    envflag.enable: true
    http.shutdownDelay: 15s
    httpListenAddr: :10491
    loggerFormat: json
(object)

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

vtstorage.extraContainers: []
(list)

Extra containers to run in a pod with vtstorage

vtstorage.extraLabels: {}
(object)

StatefulSet/Deployment additional labels

vtstorage.extraVolumeMounts: []
(list)

Extra Volume Mounts for the container

vtstorage.extraVolumes: []
(list)

Extra Volumes for the pod

vtstorage.fullnameOverride: null
(string)

Overrides the full name of vtstorage component

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

Behavior settings for scaling by the HPA

vtstorage.horizontalPodAutoscaler.enabled: false
(bool)

Use HPA for vtstorage component

vtstorage.horizontalPodAutoscaler.maxReplicas: 10
(int)

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

vtstorage.horizontalPodAutoscaler.metrics: []
(list)

Metric for HPA to use to scale the vtstorage component

vtstorage.horizontalPodAutoscaler.minReplicas: 2
(int)

Minimum replicas for HPA to use to scale the vtstorage component

vtstorage.image.pullPolicy: IfNotPresent
(string)

Image pull policy

vtstorage.image.registry: ""
(string)

Image registry

vtstorage.image.repository: victoriametrics/victoria-traces
(string)

Image repository

vtstorage.image.tag: ""
(string)

Image tag override Chart.AppVersion

vtstorage.image.variant: ""
(string)

Image tag suffix, which is appended to Chart.AppVersion if no server.image.tag is defined

vtstorage.initContainers: []
(list)

Init containers for vtstorage

vtstorage.lifecycle: {}
(object)

Specify pod lifecycle

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

Override default app label name

vtstorage.nodeSelector: {}
(object)

Pod’s node selector. Details are here

vtstorage.persistentVolume.accessModes:
    - ReadWriteOnce
(list)

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

vtstorage.persistentVolume.annotations: {}
(object)

Persistent volume annotations

vtstorage.persistentVolume.enabled: true
(bool)

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

vtstorage.persistentVolume.existingClaim: ""
(string)

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

vtstorage.persistentVolume.labels: {}
(object)

Persistent volume labels

vtstorage.persistentVolume.mountPath: /storage
(string)

Data root path. vtstorage data Persistent Volume mount root path

vtstorage.persistentVolume.name: vtstorage-volume
(string)
vtstorage.persistentVolume.size: 10Gi
(string)

Size of the volume.

vtstorage.persistentVolume.storageClassName: ""
(string)

Storage class name. Will be empty if not set

vtstorage.persistentVolume.subPath: ""
(string)

Mount subpath

vtstorage.podAnnotations: {}
(object)

Pod’s annotations

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

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

vtstorage.podLabels: {}
(object)

Pod’s additional labels

vtstorage.podManagementPolicy: OrderedReady
(string)

Deploy order policy for StatefulSet pods

vtstorage.podSecurityContext:
    enabled: true
    fsGroup: 1000
(object)

Pod’s security context. Details are here

vtstorage.ports.name: http
(string)

vtstorage http port name

vtstorage.priorityClassName: ""
(string)

Name of Priority Class

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

Readiness probes

vtstorage.probe.readiness:
    failureThreshold: 3
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 5
(object)

vtstorage readiness probe

vtstorage.probe.startup: {}
(object)

vtstorage startup probe

vtstorage.replicaCount: 2
(int)

Count of vtstorage pods

vtstorage.resources: {}
(object)

Resource object. Details are here

vtstorage.retentionDiskSpaceUsage: ""
(string)

Data retention max capacity. Default unit is GiB. See these docs

vtstorage.retentionPeriod: 7d
(string)

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

vtstorage.securityContext:
    enabled: true
    runAsGroup: 1000
    runAsNonRoot: true
    runAsUser: 1000
(object)

Check here for details.

vtstorage.service.annotations: {}
(object)

Service annotations

vtstorage.service.clusterIP: None
(string)

Service ClusterIP

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

Service external traffic policy. Check here for details

vtstorage.service.extraPorts: []
(list)

Extra service ports

vtstorage.service.healthCheckNodePort: ""
(string)

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

vtstorage.service.ipFamilies: []
(list)

List of service IP families. Check here for details.

vtstorage.service.ipFamilyPolicy: ""
(string)

Service IP family policy. Check here for details.

vtstorage.service.labels: {}
(object)

Service labels

vtstorage.service.servicePort: 10491
(int)

Service port

vtstorage.service.targetPort: http
(string)

Target port

vtstorage.service.type: ClusterIP
(string)

Service type

vtstorage.terminationGracePeriodSeconds: 60
(int)

Pod’s termination grace period in seconds

vtstorage.tolerations: []
(list)

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

vtstorage.topologySpreadConstraints: []
(list)

Pod topologySpreadConstraints

vtstorage.vmServiceScrape.annotations: {}
(object)

VMServiceScrape annotations

vtstorage.vmServiceScrape.enabled: false
(bool)

Enable VMServiceScrape for vtstorage component, which is managed by vm-operator.

vtstorage.vmServiceScrape.extraLabels: {}
(object)

VMServiceScrape labels

vtstorage.vmServiceScrape.namespace: ""
(string)

Target namespace of VMServiceScrape manifest

vtstorage.vmServiceScrape.spec.endpoints[0].port: http
(string)
vtstorage.vmServiceScrape.useServiceMonitor: false
(bool)

Create ServiceMonitor instead of VMServiceScrape, which is managed by prometheus-operator