# Default values for victoria-metrics. # This is a YAML-formatted file. # Declare variables to be passed into your templates. # -- k8s cluster domain suffix, uses for building storage pods' FQDN. Ref: [https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) clusterDomainSuffix: cluster.local printNotes: true rbac: create: true # Note: The PSP will only be deployed, if Kubernetes (<1.25) supports the resource. pspEnabled: true namespaced: false extraLabels: {} # annotations: {} serviceAccount: create: true # name: extraLabels: {} # annotations: {} # mount API token to pod directly automountToken: true extraSecrets: [] # - name: secret-remote-storage-keys # annotations: [] # labels: [] # data: | # credentials: b64_encoded_str vmselect: # -- Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet enabled: true # -- Vmselect container name name: vmselect strategy: {} # rollingUpdate: # maxSurge: 25% # maxUnavailable: 25% # type: RollingUpdate image: # -- Image repository repository: victoriametrics/vmselect # -- Image tag tag: v1.91.3-cluster # -- Image pull policy pullPolicy: IfNotPresent # -- Name of Priority Class priorityClassName: "" # -- Overrides the full name of vmselect component fullnameOverride: "" # -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs suppresStorageFQDNsRender: false automountServiceAccountToken: true # Extra command line arguments for vmselect component splitService: False extraArgs: envflag.enable: "true" envflag.prefix: VM_ loggerFormat: json annotations: {} extraLabels: {} # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables env: [] # Readiness & Liveness probes probe: readiness: initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 liveness: initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 horizontalPodAutoscaler: # -- Use HPA for vmselect component enabled: false # -- Maximum replicas for HPA to use to to scale the vmselect component maxReplicas: 10 # -- Minimum replicas for HPA to use to scale the vmselect component minReplicas: 2 # -- Metric for HPA to use to scale the vmselect component metrics: [] # Additional hostPath mounts extraHostPathMounts: [] # - name: certs-dir # mountPath: /etc/kubernetes/certs # subPath: "" # hostPath: /etc/kubernetes/certs # readOnly: true # Extra Volumes for the pod extraVolumes: [] # - name: example # configMap: # name: example # Extra Volume Mounts for the container extraVolumeMounts: [] # - name: example # mountPath: /example extraContainers: [] # - name: config-reloader # image: reloader-image initContainers: [] # - name: example # image: example-image podDisruptionBudget: # -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ enabled: false # minAvailable: 1 # maxUnavailable: 1 labels: {} # -- Array of tolerations object. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) tolerations: [] # - key: "key" # operator: "Equal|Exists" # value: "value" # effect: "NoSchedule|PreferNoSchedule" # -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/) nodeSelector: {} # -- Pod affinity affinity: {} # -- Pod topologySpreadConstraints topologySpreadConstraints: [] # -- Pod's annotations podAnnotations: {} # -- Count of vmselect pods replicaCount: 2 # -- Container workdir containerWorkingDir: "" # -- Resource object resources: {} # limits: # cpu: 50m # memory: 64Mi # requests: # cpu: 50m # memory: 64Mi # -- Pod's security context. Ref: [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} podSecurityContext: {} # -- Cache root folder cacheMountPath: /cache service: # -- Service annotations annotations: {} # -- Service labels labels: {} # -- Service ClusterIP clusterIP: "" # -- Service External IPs. Ref: [https://kubernetes.io/docs/user-guide/services/#external-ips](https://kubernetes.io/docs/user-guide/services/#external-ips) externalIPs: [] # -- Extra service ports extraServicePorts: [] # -- Service load balacner IP loadBalancerIP: "" # -- Load balancer source range loadBalancerSourceRanges: [] # -- Service port servicePort: 8481 # -- Target port targetPort: http # -- Service type type: ClusterIP ingress: # -- Enable deployment of ingress for vmselect component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' extraLabels: {} # -- Array of host objects hosts: [] # - name: vmselect.local # path: /select # port: http # -- Array of TLS objects tls: [] # - secretName: vmselect-ingress-tls # hosts: # - vmselect.local # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress # ingressClassName: nginx # -- pathType is only for k8s >= 1.1= pathType: Prefix clusternativeService: enabled: false port: 8401 targetPort: "" sessionAffinity: None ipFamilyPolicy: "" sessionAffinityConfig: {} statefulSet: # -- Deploy StatefulSet instead of Deployment for vmselect. Useful if you want to keep cache data. enabled: false # -- Deploy order policy for StatefulSet pods podManagementPolicy: OrderedReady ## Headless service for statefulset service: # -- Headless service annotations annotations: {} # -- Headless service labels labels: {} # -- Headless service port servicePort: 8481 persistentVolume: # -- Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim enabled: false # -- Array of access mode. Must match those of existing PV or dynamic provisioner. Ref: [http://kubernetes.io/docs/user-guide/persistent-volumes/](http://kubernetes.io/docs/user-guide/persistent-volumes/) accessModes: - ReadWriteOnce # -- Persistent volume annotations annotations: {} # -- Persistent volume labels labels: {} # -- Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound existingClaim: "" ## Vmselect data Persistent Volume mount root path ## # -- Size of the volume. Better to set the same as resource limit memory property size: 2Gi # -- Mount subpath subPath: "" serviceMonitor: # -- Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object enabled: false # -- Target namespace of ServiceMonitor manifest namespace: "" # -- Service Monitor labels extraLabels: {} # -- Service Monitor annotations annotations: {} # Commented. Prometheus scare interval for vmselect component # interval: 15s # Commented. Prometheus pre-scrape timeout for vmselect component # scrapeTimeout: 5s # -- Commented. HTTP scheme to use for scraping. # scheme: https # -- Commented. TLS configuration to use when scraping the endpoint # tlsConfig: # insecureSkipVerify: true # -- Service Monitor relabelings relabelings: [] vminsert: # -- Enable deployment of vminsert component. Deployment is used enabled: true # -- vminsert container name name: vminsert strategy: {} # rollingUpdate: # maxSurge: 25% # maxUnavailable: 25% # type: RollingUpdate image: # -- Image repository repository: victoriametrics/vminsert # -- Image tag tag: v1.91.3-cluster # -- Image pull policy pullPolicy: IfNotPresent # -- Name of Priority Class priorityClassName: "" # -- Overrides the full name of vminsert component fullnameOverride: "" # Extra command line arguments for vminsert component extraArgs: envflag.enable: "true" envflag.prefix: VM_ loggerFormat: json annotations: {} extraLabels: {} # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables env: [] # -- Suppress rendering `--storageNode` FQDNs based on `vmstorage.replicaCount` value. If true suppress rendering `--storageNodes`, they can be re-defined in extraArgs suppresStorageFQDNsRender: false automountServiceAccountToken: true # Readiness & Liveness probes probe: readiness: initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 liveness: initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 # Horizontal Pod Autoscaling horizontalPodAutoscaler: # -- Use HPA for vminsert component enabled: false # -- Maximum replicas for HPA to use to to scale the vminsert component maxReplicas: 10 # -- Minimum replicas for HPA to use to scale the vminsert component minReplicas: 2 # -- Metric for HPA to use to scale the vminsert component metrics: [] # Extra Volumes for the pod extraVolumes: [] # - name: example # configMap: # name: example # Extra Volume Mounts for the container extraVolumeMounts: [] # - name: example # mountPath: /example extraContainers: [] # - name: config-reloader # image: reloader-image initContainers: [] # - name: example # image: example-image podDisruptionBudget: # -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: [https://kubernetes.io/docs/tasks/run-application/configure-pdb/](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) enabled: false # minAvailable: 1 # maxUnavailable: 1 labels: {} # -- Array of tolerations object. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) tolerations: [] # - key: "key" # operator: "Equal|Exists" # value: "value" # effect: "NoSchedule|PreferNoSchedule" # -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/) nodeSelector: {} # -- Pod affinity affinity: {} # -- Pod's annotations podAnnotations: {} # -- Count of vminsert pods replicaCount: 2 # -- Container workdir containerWorkingDir: "" # -- Resource object resources: {} # limits: # cpu: 50m # memory: 64Mi # requests: # cpu: 50m # memory: 64Mi # -- Pod's security context. Ref: [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) securityContext: {} podSecurityContext: {} service: # -- Service annotations annotations: {} # -- Service labels labels: {} # -- Service ClusterIP clusterIP: "" # -- Service External IPs. Ref: [https://kubernetes.io/docs/user-guide/services/#external-ips]( https://kubernetes.io/docs/user-guide/services/#external-ips) externalIPs: [] # -- Extra service ports extraServicePorts: [] # -- Service load balancer IP loadBalancerIP: "" # -- Load balancer source range loadBalancerSourceRanges: [] # -- Service port servicePort: 8480 # -- Target port targetPort: http # -- Service type type: ClusterIP # -- Enable UDP port. used if you have "spec.opentsdbListenAddr" specified # -- Make sure that service is not type "LoadBalancer", as it requires "MixedProtocolLBService" feature gate. ref: https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/ udp: false ingress: # -- Enable deployment of ingress for vminsert component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' extraLabels: {} # -- Array of host objects hosts: [] # - name: vminsert.local # path: /insert # port: http # -- Array of TLS objects tls: [] # - secretName: vminsert-ingress-tls # hosts: # - vminsert.local # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress # ingressClassName: nginx # -- pathType is only for k8s >= 1.1= pathType: Prefix serviceMonitor: # -- Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object enabled: false # -- Target namespace of ServiceMonitor manifest namespace: "" # -- Service Monitor labels extraLabels: {} # -- Service Monitor annotations annotations: {} # Commented. Prometheus scare interval for vminsert component # interval: 15s # Commented. Prometheus pre-scrape timeout for vminsert component # scrapeTimeout: 5s # -- Commented. HTTP scheme to use for scraping. # scheme: https # -- Commented. TLS configuration to use when scraping the endpoint # tlsConfig: # insecureSkipVerify: true # -- Service Monitor relabelings relabelings: [] vmstorage: # -- Enable deployment of vmstorage component. StatefulSet is used enabled: true # -- vmstorage container name name: vmstorage image: # -- Image repository repository: victoriametrics/vmstorage # -- Image tag tag: v1.91.3-cluster # -- Image pull policy pullPolicy: IfNotPresent # -- Name of Priority Class priorityClassName: "" # -- Overrides the full name of vmstorage component fullnameOverride: automountServiceAccountToken: true # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables env: [] # -- Data retention period. Supported values 1w, 1d, number without measurement means month, e.g. 2 = 2month retentionPeriod: 1 # Additional vmstorage container arguments. Extra command line arguments for vmstorage component extraArgs: envflag.enable: "true" envflag.prefix: VM_ loggerFormat: json # Additional hostPath mounts extraHostPathMounts: [] # - name: certs-dir # mountPath: /etc/kubernetes/certs # subPath: "" # hostPath: /etc/kubernetes/certs # readOnly: true # Extra Volumes for the pod extraVolumes: [] # - name: example # configMap: # name: example # Extra Volume Mounts for the container extraVolumeMounts: [] # - name: example # mountPath: /example extraContainers: [] # - name: config-reloader # image: reloader-image extraSecretMounts: [] # - name: secret # mountPath: /etc/credentials # subPath: "" # readOnly: true initContainers: [] # - name: vmrestore # image: victoriametrics/vmrestore:latest # volumeMounts: # - mountPath: /storage # name: vmstorage-volume # - mountPath: /etc/vm/creds # name: secret-remote-storage-keys # readOnly: true # args: # - -storageDataPath=/storage # - -src=s3://your_bucket/folder/latest # - -credsFilePath=/etc/vm/creds/credentials # -- See `kubectl explain poddisruptionbudget.spec` for more. Ref: [https://kubernetes.io/docs/tasks/run-application/configure-pdb/](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) podDisruptionBudget: enabled: false # minAvailable: 1 # maxUnavailable: 1 labels: {} # -- Array of tolerations object. Node tolerations for server scheduling to nodes with taints. Ref: [https://kubernetes.io/docs/concepts/configuration/assign-pod-node/](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) ## tolerations: [] # - key: "key" # operator: "Equal|Exists" # value: "value" # effect: "NoSchedule|PreferNoSchedule" # -- Pod's node selector. Ref: [https://kubernetes.io/docs/user-guide/node-selection/](https://kubernetes.io/docs/user-guide/node-selection/) nodeSelector: {} # -- Pod affinity affinity: {} ## Use an alternate scheduler, e.g. "stork". ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## # schedulerName: persistentVolume: # -- Create/use Persistent Volume Claim for vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim enabled: true # -- Array of access modes. Must match those of existing PV or dynamic provisioner. Ref: [http://kubernetes.io/docs/user-guide/persistent-volumes/](http://kubernetes.io/docs/user-guide/persistent-volumes/) accessModes: - ReadWriteOnce # -- Persistent volume annotations annotations: {} # -- Persistent volume labels labels: {} # -- Storage class name. Will be empty if not setted storageClass: "" # -- Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound existingClaim: "" # -- Data root path. Vmstorage data Persistent Volume mount root path mountPath: /storage # -- Size of the volume. Better to set the same as resource limit memory property size: 8Gi # -- Mount subpath subPath: "" # -- Pod's annotations podAnnotations: {} annotations: {} extraLabels: {} # -- Count of vmstorage pods replicaCount: 2 # -- Container workdir containerWorkingDir: "" # -- Deploy order policy for StatefulSet pods podManagementPolicy: OrderedReady # -- Resource object. Ref: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) resources: {} # limits: # cpu: 500m # memory: 512Mi # requests: # cpu: 500m # memory: 512Mi # -- Pod's security context. Ref: [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) securityContext: {} podSecurityContext: {} service: # -- Service annotations annotations: {} # -- Service labels labels: {} # -- Service port servicePort: 8482 # -- Port for accepting connections from vminsert vminsertPort: 8400 # -- Port for accepting connections from vmselect vmselectPort: 8401 # -- Extra service ports extraServicePorts: [] # -- Pod's termination grace period in seconds terminationGracePeriodSeconds: 60 probe: readiness: httpGet: path: /health port: http initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 liveness: tcpSocket: port: http initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 5 failureThreshold: 10 vmbackupmanager: # -- enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages enable: false # -- should be true and means that you have the legal right to run a backup manager # that can either be a signed contract or an email with confirmation to run the service in a trial period # # https://victoriametrics.com/legal/eula/ eula: false image: # -- vmbackupmanager image repository repository: victoriametrics/vmbackupmanager # -- vmbackupmanager image tag tag: v1.91.3-enterprise # -- disable hourly backups disableHourly: false # -- disable daily backups disableDaily: false # -- disable weekly backups disableWeekly: false # -- disable monthly backups disableMonthly: false # -- backup destination at S3, GCS or local filesystem. Pod name will be included to path! destination: "" # -- backups' retention settings retention: # -- keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off keepLastHourly: 2 # -- keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off keepLastDaily: 2 # -- keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off keepLastWeekly: 2 # -- keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off keepLastMonthly: 2 extraArgs: envflag.enable: "true" envflag.prefix: VM_ loggerFormat: json # -- Allows to enable restore options for pod. # Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands restore: onStart: enabled: false resources: {} # -- Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables env: [] readinessProbe: httpGet: path: /health port: manager-http initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 livenessProbe: tcpSocket: port: manager-http initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 5 failureThreshold: 10 extraSecretMounts: [] # - name: secret # mountPath: /etc/credentials # subPath: "" # readOnly: true serviceMonitor: # -- Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object enabled: false # -- Target namespace of ServiceMonitor manifest namespace: "" # -- Service Monitor labels extraLabels: {} # -- Service Monitor annotations annotations: {} # Commented. Prometheus scare interval for vmstorage component # interval: 15s # Commented. Prometheus pre-scrape timeout for vmstorage component # scrapeTimeout: 5s # -- Commented. HTTP scheme to use for scraping. # scheme: https # -- Commented. TLS configuration to use when scraping the endpoint # tlsConfig: # insecureSkipVerify: true # -- Service Monitor relabelings relabelings: []