Skip to content

Latest commit

 

History

History
493 lines (434 loc) · 29.1 KB

File metadata and controls

493 lines (434 loc) · 29.1 KB

Helm Chart For Victoria Metrics kubernetes monitoring stack.

Type: application Version: 0.3.0

Kubernetes monitoring on VictoriaMetrics stack. Includes VictoriaMetrics Operator, Grafana dashboards, ServiceScrapes and VMRules

Title

Prerequisites

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

  • Add dependency chart repositories

helm repo add grafana https://grafana.github.io/helm-charts
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
  • PV support on underlying infrastructure.

Chart Details

This chart will do the following:

  • Rollout victoria metrics operator, grafana, prometheus-node-exporter and kube-state-metrics helm charts
  • Create VMSingle, VMAgent, VMAlert, VMAlertManager CRDs
  • Configure Grafana for VictoriaMetrics datasource
  • Configure ServiceScrapes for Node Exporter, kube-state-metrics and various kubernetes metrics
  • Install Grafana dashboards for kubernetes monitoring based on kube-prometheus

Dependencies

By default this chart installs additional, dependent charts:

See helm dependency for command documentation.

ATTENTION !!! Default values are inherited from helm charts declared as a dependency in the Chart.yaml file. If you want to change the default values that are inherited, access the documentation and the values.yaml file for each chart to understand the content and create a customized values.yaml file for your need.

How to install

Access a Kubernetes cluster.

Add a chart helm repository with follow commands:

helm repo add vm https://victoriametrics.github.io/helm-charts/

helm repo update

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

for helm v3
helm search repo vm/victoria-metrics-k8s-stack -l

Export default values of victoria-metrics-k8s-stack chart to file values.yaml:

helm show values vm/victoria-metrics-k8s-stack > values.yaml

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

Test the installation with command:

helm install [RELEASE_NAME] vm/victoria-metrics-k8s-stack -f values.yaml -n NAMESPACE --debug --dry-run

Install chart with command:

for helm v3
helm install [RELEASE_NAME] vm/victoria-metrics-k8s-stack -f values.yaml -n NAMESPACE

Get the pods lists by running this commands:

kubectl get pods -A | grep 'victoria-metrics'

How to uninstall

Remove application with command.

helm uninstall [RELEASE_NAME] -n NAMESPACE

This removes all the Kubernetes components associated with the chart and deletes the release.

See helm uninstall for command documentation.

CRDs created by this chart are not removed by default and should be manually cleaned up:

kubectl get crd | grep victoriametrics.com | awk '{print $1 }' | xargs -i kubectl delete crd {}

Troubleshooting

  • If you cannot install helm chart with error configmap already exist. It could happen because of name collisions, if you set too long release name. Kubernetes by default, allows only 63 symbols at resource names and all resource names are trimmed by helm to 63 symbols. To mitigate it, use shorter name for helm chart release name, like:
# stack - is short enough
helm upgrade -i stack vm/victoria-metrics-k8s-stack

Or use override for helm chart release name:

helm upgrade -i some-very-long-name vm/victoria-metrics-k8s-stack --set fullnameOverride=stack

Upgrade guide

Usually, helm upgrade doesn't requires manual actions. But release with CRD update must be patched manually with kubectl. Just execute command:

$ helm upgrade [RELEASE_NAME] vm/victoria-metrics-k8s-stack

All CRD manual actions upgrades listed below:

Upgrade from 0.2.8 to 0.2.9

Update VMAgent crd

command:

kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.16.0/config/crd/bases/operator.victoriametrics.com_vmagents.yaml

Upgrade from 0.2.5 to 0.2.6

New CRD added to operator - VMUser and VMAuth, new fields added to exist crd. Manual commands:

kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmusers.yaml
kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmauths.yaml
kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmalerts.yaml
kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmagents.yaml
kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmsingles.yaml
kubectl apply -f https://raw.githubusercontent.com/VictoriaMetrics/operator/v0.15.0/config/crd/bases/operator.victoriametrics.com_vmclusters.yaml

Documentation of Helm Chart

Install helm-docs following the instructions on this tutorial.

Generate docs with helm-docs command.

cd charts/victoria-metrics-k8s-stack

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-k8s-stack/values.yaml file.

Key Type Default Description
alertmanager.config.global.resolve_timeout string "5m"
alertmanager.config.global.slack_api_url string "http://slack:30500/"
alertmanager.config.receivers[0].name string "slack-monitoring"
alertmanager.config.receivers[0].slack_configs[0].actions[0].text string "Runbook :green_book:"
alertmanager.config.receivers[0].slack_configs[0].actions[0].type string "button"
alertmanager.config.receivers[0].slack_configs[0].actions[0].url string "{{ (index .Alerts 0).Annotations.runbook }}"
alertmanager.config.receivers[0].slack_configs[0].actions[1].text string "Query :mag:"
alertmanager.config.receivers[0].slack_configs[0].actions[1].type string "button"
alertmanager.config.receivers[0].slack_configs[0].actions[1].url string "{{ (index .Alerts 0).GeneratorURL }}"
alertmanager.config.receivers[0].slack_configs[0].actions[2].text string "Dashboard :grafana:"
alertmanager.config.receivers[0].slack_configs[0].actions[2].type string "button"
alertmanager.config.receivers[0].slack_configs[0].actions[2].url string "{{ (index .Alerts 0).Annotations.dashboard }}"
alertmanager.config.receivers[0].slack_configs[0].actions[3].text string "Silence :no_bell:"
alertmanager.config.receivers[0].slack_configs[0].actions[3].type string "button"
alertmanager.config.receivers[0].slack_configs[0].actions[3].url string "{{ template \"__alert_silence_link\" . }}"
alertmanager.config.receivers[0].slack_configs[0].actions[4].text string "{{ template \"slack.monzo.link_button_text\" . }}"
alertmanager.config.receivers[0].slack_configs[0].actions[4].type string "button"
alertmanager.config.receivers[0].slack_configs[0].actions[4].url string "{{ .CommonAnnotations.link_url }}"
alertmanager.config.receivers[0].slack_configs[0].channel string "#channel"
alertmanager.config.receivers[0].slack_configs[0].color string "{{ template \"slack.monzo.color\" . }}"
alertmanager.config.receivers[0].slack_configs[0].icon_emoji string "{{ template \"slack.monzo.icon_emoji\" . }}"
alertmanager.config.receivers[0].slack_configs[0].send_resolved bool true
alertmanager.config.receivers[0].slack_configs[0].text string "{{ template \"slack.monzo.text\" . }}"
alertmanager.config.receivers[0].slack_configs[0].title string "{{ template \"slack.monzo.title\" . }}"
alertmanager.config.receivers[1].name string "slack-code-owners"
alertmanager.config.receivers[1].slack_configs[0].actions[0].text string "Runbook :green_book:"
alertmanager.config.receivers[1].slack_configs[0].actions[0].type string "button"
alertmanager.config.receivers[1].slack_configs[0].actions[0].url string "{{ (index .Alerts 0).Annotations.runbook }}"
alertmanager.config.receivers[1].slack_configs[0].actions[1].text string "Query :mag:"
alertmanager.config.receivers[1].slack_configs[0].actions[1].type string "button"
alertmanager.config.receivers[1].slack_configs[0].actions[1].url string "{{ (index .Alerts 0).GeneratorURL }}"
alertmanager.config.receivers[1].slack_configs[0].actions[2].text string "Dashboard :grafana:"
alertmanager.config.receivers[1].slack_configs[0].actions[2].type string "button"
alertmanager.config.receivers[1].slack_configs[0].actions[2].url string "{{ (index .Alerts 0).Annotations.dashboard }}"
alertmanager.config.receivers[1].slack_configs[0].actions[3].text string "Silence :no_bell:"
alertmanager.config.receivers[1].slack_configs[0].actions[3].type string "button"
alertmanager.config.receivers[1].slack_configs[0].actions[3].url string "{{ template \"__alert_silence_link\" . }}"
alertmanager.config.receivers[1].slack_configs[0].actions[4].text string "{{ template \"slack.monzo.link_button_text\" . }}"
alertmanager.config.receivers[1].slack_configs[0].actions[4].type string "button"
alertmanager.config.receivers[1].slack_configs[0].actions[4].url string "{{ .CommonAnnotations.link_url }}"
alertmanager.config.receivers[1].slack_configs[0].channel string "#{{- template \"slack.monzo.code_owner_channel\" . -}}"
alertmanager.config.receivers[1].slack_configs[0].color string "{{ template \"slack.monzo.color\" . }}"
alertmanager.config.receivers[1].slack_configs[0].icon_emoji string "{{ template \"slack.monzo.icon_emoji\" . }}"
alertmanager.config.receivers[1].slack_configs[0].send_resolved bool true
alertmanager.config.receivers[1].slack_configs[0].text string "{{ template \"slack.monzo.text\" . }}"
alertmanager.config.receivers[1].slack_configs[0].title string "{{ template \"slack.monzo.title\" . }}"
alertmanager.config.route.group_by[0] string "job"
alertmanager.config.route.group_interval string "5m"
alertmanager.config.route.group_wait string "30s"
alertmanager.config.route.receiver string "slack-monitoring"
alertmanager.config.route.repeat_interval string "12h"
alertmanager.config.route.routes[0].match_re.code_owner string ".+"
alertmanager.config.route.routes[0].routes[0].continue bool true
alertmanager.config.route.routes[0].routes[0].match.severity string `"info warning
alertmanager.config.route.routes[0].routes[0].receiver string "slack-code-owners"
alertmanager.config.route.routes[1].continue bool true
alertmanager.config.route.routes[1].match_re.severity string `"info warning
alertmanager.config.route.routes[1].receiver string "slack-monitoring"
alertmanager.config.templates[0] string "/etc/vm/configs/**/*.tmpl"
alertmanager.enabled bool true
alertmanager.ingress.annotations object {}
alertmanager.ingress.enabled bool false
alertmanager.ingress.extraPaths list []
alertmanager.ingress.hosts[0] string "alertmanager.domain.com"
alertmanager.ingress.labels object {}
alertmanager.ingress.path string "/"
alertmanager.ingress.pathType string "Prefix"
alertmanager.ingress.tls list []
alertmanager.monzoTemplate.enabled bool true
alertmanager.spec.externalURL string ""
alertmanager.spec.image.tag string "v0.22.2"
alertmanager.spec.routePrefix string "/"
coreDns.enabled bool true
coreDns.service.enabled bool true
coreDns.service.port int 9153
coreDns.service.targetPort int 9153
coreDns.vmServiceScrape.enabled bool true
coreDns.vmServiceScrape.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
coreDns.vmServiceScrape.spec.endpoints[0].port string "http-metrics"
defaultRules.additionalRuleLabels object {}
defaultRules.annotations object {}
defaultRules.appNamespacesTarget string ".*"
defaultRules.create bool true
defaultRules.labels object {}
defaultRules.rules.etcd bool true
defaultRules.rules.general bool true
defaultRules.rules.k8s bool true
defaultRules.rules.kubeApiserver bool true
defaultRules.rules.kubeApiserverAvailability bool true
defaultRules.rules.kubeApiserverSlos bool true
defaultRules.rules.kubePrometheusGeneral bool true
defaultRules.rules.kubePrometheusNodeRecording bool true
defaultRules.rules.kubeScheduler bool true
defaultRules.rules.kubeStateMetrics bool true
defaultRules.rules.kubelet bool true
defaultRules.rules.kubernetesApps bool true
defaultRules.rules.kubernetesResources bool true
defaultRules.rules.kubernetesStorage bool true
defaultRules.rules.kubernetesSystem bool true
defaultRules.rules.network bool true
defaultRules.rules.node bool true
defaultRules.runbookUrl string "https://runbooks.prometheus-operator.dev/runbooks"
fullnameOverride string ""
grafana.additionalDataSources list []
grafana.dashboardProviders."dashboardproviders.yaml".apiVersion int 1
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].disableDeletion bool false
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].editable bool true
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].folder string ""
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].name string "default"
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].options.path string "/var/lib/grafana/dashboards/default"
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].orgId int 1
grafana.dashboardProviders."dashboardproviders.yaml".providers[0].type string "file"
grafana.dashboards.default.nodeexporter.datasource string "VictoriaMetrics"
grafana.dashboards.default.nodeexporter.gnetId int 1860
grafana.dashboards.default.nodeexporter.revision int 22
grafana.dashboards.default.victoriametrics.url string "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/victoriametrics.json"
grafana.dashboards.default.vmagent.url string "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmagent.json"
grafana.defaultDashboardsEnabled bool true
grafana.enabled bool true
grafana.ingress.annotations object {}
grafana.ingress.enabled bool false
grafana.ingress.extraPaths list []
grafana.ingress.hosts[0] string "grafana.domain.com"
grafana.ingress.labels object {}
grafana.ingress.path string "/"
grafana.ingress.pathType string "Prefix"
grafana.ingress.tls list []
grafana.sidecar.dashboards.enabled bool true
grafana.sidecar.datasources.createVMReplicasDatasources bool false
grafana.sidecar.datasources.enabled bool true
grafana.vmServiceScrape.enabled bool true
grafana.vmServiceScrape.spec object {}
kube-state-metrics.enabled bool true
kube-state-metrics.vmServiceScrape.spec object {}
kubeApiServer.enabled bool true
kubeApiServer.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubeApiServer.spec.endpoints[0].port string "https"
kubeApiServer.spec.endpoints[0].scheme string "https"
kubeApiServer.spec.endpoints[0].tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubeApiServer.spec.endpoints[0].tlsConfig.serverName string "kubernetes"
kubeApiServer.spec.jobLabel string "component"
kubeApiServer.spec.namespaceSelector.matchNames[0] string "default"
kubeApiServer.spec.selector.matchLabels.component string "apiserver"
kubeApiServer.spec.selector.matchLabels.provider string "kubernetes"
kubeControllerManager.enabled bool true
kubeControllerManager.endpoints list []
kubeControllerManager.service.enabled bool true
kubeControllerManager.service.port int 10252
kubeControllerManager.service.targetPort int 10252
kubeControllerManager.vmServiceScrape.enabled bool true
kubeControllerManager.vmServiceScrape.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubeControllerManager.vmServiceScrape.spec.endpoints[0].port string "http-metrics"
kubeControllerManager.vmServiceScrape.spec.endpoints[0].scheme string "https"
kubeControllerManager.vmServiceScrape.spec.endpoints[0].tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubeControllerManager.vmServiceScrape.spec.endpoints[0].tlsConfig.serverName string "kubernetes"
kubeControllerManager.vmServiceScrape.spec.jobLabel string "jobLabel"
kubeEtcd.enabled bool true
kubeEtcd.endpoints list []
kubeEtcd.service.enabled bool true
kubeEtcd.service.port int 2379
kubeEtcd.service.targetPort int 2379
kubeEtcd.vmServiceScrape.enabled bool true
kubeEtcd.vmServiceScrape.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubeEtcd.vmServiceScrape.spec.endpoints[0].port string "http-metrics"
kubeEtcd.vmServiceScrape.spec.endpoints[0].scheme string "https"
kubeEtcd.vmServiceScrape.spec.endpoints[0].tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubeEtcd.vmServiceScrape.spec.jobLabel string "jobLabel"
kubeProxy.enabled bool false
kubeProxy.endpoints list []
kubeProxy.service.enabled bool true
kubeProxy.service.port int 10249
kubeProxy.service.targetPort int 10249
kubeProxy.vmServiceScrape.enabled bool true
kubeProxy.vmServiceScrape.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubeProxy.vmServiceScrape.spec.endpoints[0].port string "http-metrics"
kubeProxy.vmServiceScrape.spec.endpoints[0].scheme string "https"
kubeProxy.vmServiceScrape.spec.endpoints[0].tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubeProxy.vmServiceScrape.spec.jobLabel string "jobLabel"
kubeScheduler.enabled bool true
kubeScheduler.endpoints list []
kubeScheduler.service.enabled bool true
kubeScheduler.service.port int 10251
kubeScheduler.service.targetPort int 10251
kubeScheduler.vmServiceScrape.enabled bool true
kubeScheduler.vmServiceScrape.spec.endpoints[0].bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubeScheduler.vmServiceScrape.spec.endpoints[0].port string "http-metrics"
kubeScheduler.vmServiceScrape.spec.endpoints[0].scheme string "https"
kubeScheduler.vmServiceScrape.spec.endpoints[0].tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubeScheduler.vmServiceScrape.spec.jobLabel string "jobLabel"
kubelet.cadvisor bool true
kubelet.enabled bool true
kubelet.probes bool true
kubelet.spec.bearerTokenFile string "/var/run/secrets/kubernetes.io/serviceaccount/token"
kubelet.spec.honorLabels bool true
kubelet.spec.interval string "30s"
kubelet.spec.relabelConfigs[0].action string "labelmap"
kubelet.spec.relabelConfigs[0].regex string "__meta_kubernetes_node_label_(.+)"
kubelet.spec.relabelConfigs[1].sourceLabels[0] string "__metrics_path__"
kubelet.spec.relabelConfigs[1].targetLabel string "metrics_path"
kubelet.spec.relabelConfigs[2].replacement string "kubelet"
kubelet.spec.relabelConfigs[2].targetLabel string "job"
kubelet.spec.scheme string "https"
kubelet.spec.scrapeTimeout string "5s"
kubelet.spec.tlsConfig.caFile string "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
kubelet.spec.tlsConfig.insecureSkipVerify bool true
nameOverride string ""
operator.cleanupCRD bool true
operator.cleanupSA.create bool true
operator.cleanupSA.name string ""
operator.enabled bool true
operator.kubectlImage.pullPolicy string "IfNotPresent"
operator.kubectlImage.repository string "gcr.io/google_containers/hyperkube"
operator.kubectlImage.tag string "v1.16.0"
prometheus-node-exporter.enabled bool true
prometheus-node-exporter.extraArgs[0] string `"--collector.filesystem.ignored-mount-points=^/(dev proc
prometheus-node-exporter.extraArgs[1] string `"--collector.filesystem.ignored-fs-types=^(autofs binfmt_misc
prometheus-node-exporter.podLabels.jobLabel string "node-exporter"
prometheus-node-exporter.vmServiceScrape.enabled bool true
prometheus-node-exporter.vmServiceScrape.spec.jobLabel string "jobLabel"
serviceAccount.annotations object {}
serviceAccount.create bool true
serviceAccount.name string ""
victoria-metrics-operator.createCRD bool false
victoria-metrics-operator.operator.disable_prometheus_converter bool true By default, operator converts prometheus-operator objects.
vmagent.enabled bool true
vmagent.ingress.annotations object {}
vmagent.ingress.enabled bool false
vmagent.ingress.extraPaths list []
vmagent.ingress.hosts[0] string "vmagent.domain.com"
vmagent.ingress.labels object {}
vmagent.ingress.path string "/"
vmagent.ingress.pathType string "Prefix"
vmagent.ingress.tls list []
vmagent.spec.externalLabels.cluster string "cluster-name"
vmagent.spec.extraArgs."promscrape.streamParse" string "true"
vmagent.spec.image.tag string "v1.63.0"
vmagent.spec.scrapeInterval string "25s"
vmalert.enabled bool true
vmalert.ingress.annotations object {}
vmalert.ingress.enabled bool false
vmalert.ingress.extraPaths list []
vmalert.ingress.hosts[0] string "vmalert.domain.com"
vmalert.ingress.labels object {}
vmalert.ingress.path string "/"
vmalert.ingress.pathType string "Prefix"
vmalert.ingress.tls list []
vmalert.spec.evaluationInterval string "15s"
vmalert.spec.image.tag string "v1.63.0"
vmcluster.enabled bool false
vmcluster.ingress.insert.annotations object {}
vmcluster.ingress.insert.enabled bool false
vmcluster.ingress.insert.extraPaths list []
vmcluster.ingress.insert.hosts[0] string "vminsert.domain.com"
vmcluster.ingress.insert.labels object {}
vmcluster.ingress.insert.path string "/"
vmcluster.ingress.insert.pathType string "Prefix"
vmcluster.ingress.insert.tls list []
vmcluster.ingress.select.annotations object {}
vmcluster.ingress.select.enabled bool false
vmcluster.ingress.select.extraPaths list []
vmcluster.ingress.select.hosts[0] string "vmselect.domain.com"
vmcluster.ingress.select.labels object {}
vmcluster.ingress.select.path string "/"
vmcluster.ingress.select.pathType string "Prefix"
vmcluster.ingress.select.tls list []
vmcluster.ingress.storage.annotations object {}
vmcluster.ingress.storage.enabled bool false
vmcluster.ingress.storage.extraPaths list []
vmcluster.ingress.storage.hosts[0] string "vmstorage.domain.com"
vmcluster.ingress.storage.labels object {}
vmcluster.ingress.storage.path string "/"
vmcluster.ingress.storage.pathType string "Prefix"
vmcluster.ingress.storage.tls list []
vmcluster.spec.replicationFactor int 2
vmcluster.spec.retentionPeriod string "14"
vmcluster.spec.vminsert.image.tag string "v1.63.0-cluster"
vmcluster.spec.vminsert.replicaCount int 2
vmcluster.spec.vminsert.resources.limits.cpu string "1"
vmcluster.spec.vminsert.resources.limits.memory string "1000Mi"
vmcluster.spec.vminsert.resources.requests.cpu string "0.5"
vmcluster.spec.vminsert.resources.requests.memory string "500Mi"
vmcluster.spec.vmselect.cacheMountPath string "/select-cache"
vmcluster.spec.vmselect.image.tag string "v1.63.0-cluster"
vmcluster.spec.vmselect.replicaCount int 2
vmcluster.spec.vmselect.resources.limits.cpu string "1"
vmcluster.spec.vmselect.resources.limits.memory string "1000Mi"
vmcluster.spec.vmselect.resources.requests.cpu string "0.5"
vmcluster.spec.vmselect.resources.requests.memory string "500Mi"
vmcluster.spec.vmselect.storage.volumeClaimTemplate.spec.resources.requests.storage string "2Gi"
vmcluster.spec.vmstorage.image.tag string "v1.63.0-cluster"
vmcluster.spec.vmstorage.replicaCount int 2
vmcluster.spec.vmstorage.resources.limits.cpu string "1"
vmcluster.spec.vmstorage.resources.limits.memory string "1500Mi"
vmcluster.spec.vmstorage.storage.volumeClaimTemplate.spec.resources.requests.storage string "10Gi"
vmcluster.spec.vmstorage.storageDataPath string "/vm-data"
vmsingle.enabled bool true
vmsingle.ingress.annotations object {}
vmsingle.ingress.enabled bool false
vmsingle.ingress.extraPaths list []
vmsingle.ingress.hosts[0] string "vmsingle.domain.com"
vmsingle.ingress.labels object {}
vmsingle.ingress.path string "/"
vmsingle.ingress.pathType string "Prefix"
vmsingle.ingress.tls list []
vmsingle.spec.image.tag string "v1.63.0"
vmsingle.spec.replicaCount int 1
vmsingle.spec.retentionPeriod string "14"
vmsingle.spec.storage.accessModes[0] string "ReadWriteOnce"
vmsingle.spec.storage.resources.requests.storage string "20Gi"