global: # -- Cluster label to use for dashboards and rules clusterLabel: cluster # -- Global license configuration license: key: "" keyRef: {} # name: secret-license # key: license cluster: # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) dnsDomain: cluster.local. # -- Labels added to all resources extraLabels: {} # -- Annotations added to all resources extraAnnotations: {} # -- Override chart name nameOverride: "" # -- Resource full name override fullnameOverride: "" # -- Tenant to use for Grafana datasources and remote write tenant: "0" # -- If this chart is used in "Argocd" with "releaseName" field then # VMServiceScrapes couldn't select the proper services. # For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' argocdReleaseOverride: "" # -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/configuration/#environment-variables) possible ENV variables to configure operator behaviour victoria-metrics-operator: enabled: true crds: plain: true cleanup: enabled: true image: repository: registry.k8s.io/kubectl pullPolicy: IfNotPresent serviceMonitor: enabled: true admissionWebhooks: # -- Default the validating webhook `failurePolicy` to `Ignore` so the stack can be installed/upgraded in a single pass without races against the operator's webhook server. Override to `Fail` for strict validation once the operator is in steady state. policy: Ignore operator: # -- By default, operator converts prometheus-operator objects. disable_prometheus_converter: false defaultDashboards: # -- Enable dashboard sync via sync-job enabled: true # -- Additional labels for dashboard resources (ConfigMaps or GrafanaDashboard CRDs) labels: {} # -- Additional annotations for dashboard resources annotations: {} grafanaOperator: # -- Create GrafanaDashboard CRDs instead of ConfigMaps (requires grafana-operator) enabled: false spec: instanceSelector: matchLabels: dashboards: grafana allowCrossNamespaceImport: false # -- Per-dashboard configuration. Keys match dashboard names from JSON content. # Set enabled: false to skip a dashboard. Set clusterMetric to patch the cluster variable query. dashboards: victoriametrics-single-node: clusterMetric: vm_app_version victoriametrics-vmagent: clusterMetric: vm_app_version victoriametrics-cluster: clusterMetric: vm_app_version victoriametrics-vmalert: enabled: true clusterMetric: vm_app_version victoriametrics-operator: enabled: true clusterMetric: vm_app_version victorialogs-cluster: clusterMetric: vm_app_version victorialogs-single-node: clusterMetric: vm_app_version victorialogs-vlagent: clusterMetric: vm_app_version victoriatraces-single-node: clusterMetric: vm_app_version victoriatraces-cluster: clusterMetric: vm_app_version node-exporter-full: enabled: true clusterMetric: node_uname_info alertmanager-overview: enabled: '{{ .Values.alertmanager.enabled }}' grafana-overview: enabled: '{{ .Values.grafana.enabled }}' controller-manager: enabled: '{{ .Values.kubeControllerManager.enabled }}' kubelet: enabled: '{{ .Values.kubelet.enabled }}' proxy: enabled: '{{ .Values.kubeProxy.enabled }}' scheduler: enabled: '{{ .Values.kubeScheduler.enabled }}' # -- Dashboard sources. Set enabled: false on any entry to disable it. Add new keys to extend. sources: victoriatraces-cluster: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaTraces/master/dashboards/victoriatraces-cluster.json enabled: '{{ .Values.vtcluster.enabled }}' victoriatraces-single-node: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaTraces/master/dashboards/victoriatraces.json enabled: '{{ .Values.vtsingle.enabled }}' victorialogs-cluster: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/dashboards/victorialogs-cluster.json enabled: '{{ or .Values.vlcluster.enabled .Values.vldistributed.enabled }}' victorialogs-single-node: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/dashboards/victorialogs.json enabled: '{{ .Values.vlsingle.enabled }}' victorialogs-vlagent: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/dashboards/vlagent.json enabled: '{{ .Values.vlagent.enabled }}' victoriametrics-single-node: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/victoriametrics.json enabled: '{{ .Values.vmsingle.enabled }}' victoriametrics-vmagent: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmagent.json enabled: '{{ .Values.vmagent.enabled }}' victoriametrics-cluster: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/victoriametrics-cluster.json enabled: '{{ .Values.vmcluster.enabled }}' victoriametrics-vmalert: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmalert.json enabled: '{{ .Values.vmalert.enabled }}' victoriametrics-operator: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/operator.json enabled: '{{ index .Values "victoria-metrics-operator" "enabled" }}' victoriametrics-backupmanager: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/backupmanager.json enabled: '{{ or (not (empty (dig "spec" "vmBackup" "destination" "" .Values.vmsingle))) (not (empty (dig "spec" "storage" "vmBackup" "destination" "" .Values.vmcluster))) }}' kubernetes-views-global: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-global.json kubernetes-views-namespaces: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-namespaces.json kubernetes-views-pods: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-pods.json kubernetes-views-nodes: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-nodes.json kubernetes-system-api-server: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-system-api-server.json enabled: '{{ .Values.kubeApiServer.enabled }}' kubernetes-system-coredns: url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-system-coredns.json enabled: '{{ .Values.coreDns.enabled }}' node-exporter-full: url: https://raw.githubusercontent.com/rfmoz/grafana-dashboards/master/prometheus/node-exporter-full.json enabled: '{{ index .Values "prometheus-node-exporter" "enabled" }}' etcd: url: https://raw.githubusercontent.com/monitoring-mixins/website/master/assets/etcd/dashboards/etcd.json enabled: '{{ .Values.kubeEtcd.enabled }}' kube-prometheus: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/grafana-dashboardDefinitions.yaml syncJob: # -- Fetch dashboards and rules from upstream sources at deploy time. # Creates ConfigMaps (for Grafana sidecar) or GrafanaDashboard CRDs and VMRules directly in the cluster. # A new Job runs automatically whenever this config changes. enabled: true image: repository: ghcr.io/victoriametrics/sync-job # renovate: image=ghcr.io/victoriametrics/sync-job tag: v0.0.13 pullPolicy: IfNotPresent # -- Seconds to keep a finished job before automatic deletion ttlSecondsAfterFinished: 600 # -- Delete managed resources that are no longer in the current config prune: true # -- Set owner references on managed resources so they are automatically garbage-collected # by Kubernetes when the chart is uninstalled, regardless of the deployment tool (Helm, ArgoCD, etc.) useOwnerReferences: true # -- Prefix for managed resource names (VMRules, ConfigMaps, GrafanaDashboards). # Defaults to the Helm release name when empty. resourcePrefix: "" # -- Override multicluster mode for dashboard and rule patching. # Falls back to grafana.sidecar.dashboards.multicluster when not set. # multicluster: false resources: {} nodeSelector: {} tolerations: [] # -- Maximum number of retries before the Job is considered failed backoffLimit: 3 # -- Annotations to add to the sync-job Pod podAnnotations: {} # -- Security context for the sync-job Pod podSecurityContext: {} # -- Security context for the sync-job container containerSecurityContext: {} # -- Affinity for sync-job Pod scheduling affinity: {} # -- Custom dns config for the sync job Pod. dnsConfig: {} # -- Alternative DNS policy for the sync job Pod dnsPolicy: "" # -- Extra env variables for sync job env: [] # -- Extra volumes to add to the sync-job Pod. # Useful for mounting custom CA certificates; set SSL_CERT_FILE in env to point to the mounted cert. extraVolumes: [] # -- Extra volume mounts to add to the sync-job container. extraVolumeMounts: [] # -- Create default rules for monitoring the cluster defaultRules: # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` extraGroupByLabels: [] enabled: true # -- Inject namespace=~"" filter into metric selectors for metrics scraped by the given job. # Merged with per-group jobNamespaces (per-group wins on conflict). # Only use for jobs whose metrics are always namespace-scoped. jobNamespaces: {} # -- Common properties for VMRule groups group: spec: {} # -- Common properties for all VMRules rule: spec: # -- Additional labels for all VMRules labels: {} # -- Additional annotations for all VMRules annotations: {} # -- Common properties for VMRules alerts alerting: spec: # -- Additional labels for VMRule alerts labels: {} # -- Additional annotations for VMRule alerts annotations: {} # -- Common properties for VMRules recording rules recording: spec: # -- Additional labels for VMRule recording rules labels: {} # -- Additional annotations for VMRule recording rules annotations: {} # -- Per rule properties rules: {} # CPUThrottlingHigh: # enabled: false # spec: # for: 15m # labels: # severity: critical # -- Rule group properties. Keys must match upstream group names exactly. groups: etcd: # -- Enable/disable rule group enabled: true # -- Per-group override for extraGroupByLabels. When set, replaces the global extraGroupByLabels for this group only. # extraGroupByLabels: [] # -- Common properties for all rules in a group rules: {} # spec: # annotations: # dashboard: https://example.com/dashboard/1 # -- Common properties for all recording rules in a group recording: {} # spec: # annotations: # dashboard: https://example.com/dashboard/1 # -- Common properties for all alerting rules in a group alerting: {} # spec: # annotations: # dashboard: https://example.com/dashboard/1 alertmanager.rules: rules: {} general.rules: rules: {} k8s.rules.container_cpu_limits: rules: {} k8s.rules.container_cpu_requests: rules: {} k8s.rules.container_cpu_usage_seconds_total: rules: {} k8s.rules.container_memory_limits: rules: {} k8s.rules.container_memory_requests: rules: {} k8s.rules.container_memory_rss: rules: {} k8s.rules.container_memory_cache: rules: {} k8s.rules.container_memory_working_set_bytes: rules: {} k8s.rules.container_memory_swap: rules: {} k8s.rules.pod_owner: rules: {} kube-apiserver-burnrate.rules: rules: {} kube-apiserver-histogram.rules: rules: {} kube-apiserver-slos: rules: {} kube-prometheus-general.rules: rules: {} kube-prometheus-node-recording.rules: rules: {} kube-scheduler.rules: rules: {} kube-state-metrics: rules: {} kubelet.rules: rules: {} kubernetes-apps: rules: {} jobNamespaces: kube-state-metrics: ".*" kubernetes-resources: rules: {} kubernetes-storage: rules: {} jobNamespaces: kubelet: ".*" kubernetes-system: rules: {} kubernetes-system-apiserver: rules: {} kubernetes-system-controller-manager: rules: {} kubernetes-system-kubelet: rules: {} kubernetes-system-scheduler: rules: {} node-exporter: rules: {} node-exporter.rules: rules: {} node-network: rules: {} node.rules: rules: {} vm-health: rules: {} vmagent: rules: {} vmalert: rules: {} vmcluster: rules: {} vmoperator: rules: {} vmsingle: rules: {} # -- Runbook url prefix for default rules runbookUrl: https://runbooks.prometheus-operator.dev/runbooks # -- Labels for default rules labels: {} # -- Annotations for default rules annotations: {} # -- Rule sources. Set enabled: false on any entry to disable it. Add new keys to extend. sources: etcd: url: https://raw.githubusercontent.com/monitoring-mixins/website/master/assets/etcd/alerts.yaml enabled: '{{ .Values.kubeEtcd.enabled }}' alertmanager: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/alertmanager-prometheusRule.yaml enabled: '{{ .Values.alertmanager.enabled }}' kubernetes-control-plane: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/kubernetesControlPlane-prometheusRule.yaml kubernetes: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/kubePrometheus-prometheusRule.yaml kube-state-metrics: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/kubeStateMetrics-prometheusRule.yaml enabled: '{{ index .Values "kube-state-metrics" "enabled" }}' node-exporter: url: https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/nodeExporter-prometheusRule.yaml enabled: '{{ index .Values "prometheus-node-exporter" "enabled" }}' vmhealth: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-health.yml enabled: '{{ or .Values.vmsingle.enabled .Values.vmcluster.enabled }}' vmagent: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-vmagent.yml enabled: '{{ .Values.vmagent.enabled }}' vmalert: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-vmalert.yml enabled: '{{ .Values.vmalert.enabled }}' vmsingle: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-single-node.yml enabled: '{{ .Values.vmsingle.enabled }}' vmcluster: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-cluster.yml enabled: '{{ .Values.vmcluster.enabled }}' vmoperator: url: https://raw.githubusercontent.com/VictoriaMetrics/operator/master/config/alerting/vmoperator-rules.yaml enabled: '{{ index .Values "victoria-metrics-operator" "enabled" }}' vlhealth: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/deployment/docker/rules/alerts-health.yml enabled: '{{ or .Values.vlsingle.enabled .Values.vlcluster.enabled .Values.vldistributed.enabled .Values.vlagent.enabled }}' vlagent: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/deployment/docker/rules/alerts-vlagent.yml enabled: '{{ .Values.vlagent.enabled }}' victorialogs: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaLogs/master/deployment/docker/rules/alerts-vlogs.yml enabled: '{{ or .Values.vlsingle.enabled .Values.vlcluster.enabled .Values.vldistributed.enabled }}' victoriatraces: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaTraces/master/deployment/docker/rules/alerts-vtraces.yml enabled: '{{ or .Values.vtsingle.enabled .Values.vtcluster.enabled }}' vthealth: url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaTraces/master/deployment/docker/rules/alerts-health.yml enabled: '{{ or .Values.vtsingle.enabled .Values.vtcluster.enabled }}' # -- Provide custom recording or alerting rules to be deployed into the cluster. extraRules: {} # rule-name: # groups: # - name: my_group # rules: # - record: my_record # expr: 100 * my_record # -- deprecated. use extraRules instead additionalVictoriaMetricsMap: {} # rule-name: # groups: # - name: my_group # rules: # - record: my_record # expr: 100 * my_record external: grafana: # -- External Grafana host host: "" # -- External Grafana datasource name datasource: VictoriaMetrics # -- External VM read and write URLs vm: read: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken write: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken # -- External VL read and write URLs vl: read: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken write: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken # -- External VT read and write URLs vt: read: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken write: url: "" # bearerTokenSecret: # name: dbaas-read-access-token # key: bearerToken # Configures VLSingle params vlsingle: # -- VLSingle labels labels: {} # -- VLSingle annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Create VLSingle CR enabled: false # -- Full spec for VLSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api/#vlsinglespec) spec: port: "9428" image: # renovate: image=victoriametrics/victoria-logs tag: v1.52.0 # -- 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](https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#retention) retentionPeriod: "1" replicaCount: 1 extraArgs: {} storage: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi ingress: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress default path path: "" # -- Ingress path type pathType: Prefix # -- Ingress controller class name ingressClassName: "" # -- Array of host objects hosts: [] # - vlsingle.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vlsingle-ingress-tls # hosts: # - vlsingle.domain.com route: # -- Enable deployment of HTTPRoute for server component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vlsingle.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vlsingle }}' vlcluster: # -- Create VLCluster CR enabled: false # -- VLCluster labels labels: {} # -- VLCluster annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Full spec for VLCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vlclusterspec) spec: # renovate: image=victoriametrics/victoria-logs clusterVersion: v1.52.0 vlstorage: replicaCount: 2 # -- 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](https://docs.victoriametrics.com/victorialogs/#retention) retentionPeriod: 14d storageDataPath: /vl-data port: "9491" storage: volumeClaimTemplate: spec: resources: requests: storage: 10Gi resources: {} # limits: # cpu: "1" # memory: 1500Mi vlselect: # -- Set this value to false to disable VMSelect enabled: true port: "9471" replicaCount: 2 extraArgs: {} resources: {} # limits: # cpu: "1" # memory: "1000Mi" # requests: # cpu: "0.5" # memory: "500Mi" vlinsert: # -- Set this value to false to disable VMInsert enabled: true port: "9481" replicaCount: 2 extraArgs: {} resources: {} # limits: # cpu: "1" # memory: 1000Mi # requests: # cpu: "0.5" # memory: "500Mi" ingress: vlstorage: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: "" # -- Array of host objects hosts: [] # - vlstorage.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vlstorage-ingress-tls # hosts: # - vlstorage.domain.com vlselect: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vlcluster.spec.vlselect }}' # -- Array of host objects hosts: [] # - vlselect.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vlselect-ingress-tls # hosts: # - vlselect.domain.com vlinsert: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vlcluster.spec.vlinsert }}' # -- Array of host objects hosts: [] # - vlinsert.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vlinsert-ingress-tls # hosts: # - vlinsert.domain.com route: vlstorage: # -- Enable deployment of HTTPRoute for storage component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vlcluster.spec.vlstorage.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vlcluster.spec.vlstorage }}' vlselect: # -- Enable deployment of HTTPRoute for select component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vlcluster.spec.vlselect.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vlcluster.spec.vlselect }}' vlinsert: # -- Enable deployment of HTTPRoute for insert component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vlcluster.spec.vlinsert.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vlcluster.spec.vlinsert }}' vldistributed: # -- Create VLDistributed CR enabled: false # -- VLDistributed labels labels: {} # -- VLDistributed annotations annotations: {} # -- Full spec for VLDistributed CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vldistributedspec) spec: vmauth: spec: port: "8427" zoneCommon: vlcluster: spec: # renovate: image=victoriametrics/victoria-logs clusterVersion: v1.52.0 vlstorage: replicaCount: 2 retentionPeriod: 14d storageDataPath: /vl-data storage: volumeClaimTemplate: spec: resources: requests: storage: 10Gi vlselect: replicaCount: 2 vlinsert: replicaCount: 2 zones: - name: zone-0 vlagent: # -- Create VLAgent CR enabled: false # -- VLAgent labels labels: {} # -- VLAgent annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" rbac: # -- Role/RoleBinding annotations annotations: {} # -- Defines if ClusterRole or Role with respective bindings should be created namespaced: true # -- Role/RoleBinding labels extraLabels: {} # -- additional rules for a role rules: [] # -- Remote write configuration of VLAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api/#vlagentremotewritespec) additionalRemoteWrites: [] #- url: http://some-remote-write/api/v1/write # -- (object) Full spec for VLAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vlagentspec) spec: port: "9429" image: # renovate: image=victoriametrics/victoria-logs tag: v1.52.0 k8sCollector: enabled: true # -- (object) VLAgent ingress configuration ingress: enabled: false # 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 # Values can be templated annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" labels: {} path: "" pathType: Prefix hosts: - vlagent.domain.com extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service tls: [] # - secretName: vlagent-ingress-tls # hosts: # - vlagent.domain.com # -- (object) VLAgent route configuration route: # -- Enable deployment of HTTPRoute for vlagent component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vlagent.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vlagent }}' # Configures VTSingle params vtsingle: # -- VTSingle labels labels: {} # -- VTSingle annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Create VTSingle CR enabled: false # -- Full spec for VTSingle CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vtsinglespec) spec: port: "10428" image: # renovate: image=victoriametrics/victoria-traces tag: v0.9.4 # -- 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. retentionPeriod: "1" replicaCount: 1 extraArgs: {} storage: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi ingress: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress default path path: "" # -- Ingress path type pathType: Prefix # -- Ingress controller class name ingressClassName: "" # -- Array of host objects hosts: [] # - vtsingle.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vtsingle-ingress-tls # hosts: # - vtsingle.domain.com route: # -- Enable deployment of HTTPRoute for server component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vtsingle.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vtsingle }}' vtcluster: # -- Create VTCluster CR enabled: false # -- VTCluster labels labels: {} # -- VTCluster annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Full spec for VTCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vtclusterspec) spec: # renovate: image=victoriametrics/victoria-traces clusterVersion: v0.9.4 vtstorage: replicaCount: 2 storageDataPath: /vt-data # -- 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. retentionPeriod: 14d port: "10491" storage: volumeClaimTemplate: spec: resources: requests: storage: 10Gi resources: {} # limits: # cpu: "1" # memory: 1500Mi vtselect: # -- Set this value to false to disable VTSelect enabled: true port: "10471" replicaCount: 2 extraArgs: {} resources: {} # limits: # cpu: "1" # memory: "1000Mi" # requests: # cpu: "0.5" # memory: "500Mi" vtinsert: # -- Set this value to false to disable VTInsert enabled: true port: "10481" replicaCount: 2 extraArgs: {} resources: {} # limits: # cpu: "1" # memory: 1000Mi # requests: # cpu: "0.5" # memory: "500Mi" ingress: vtstorage: # -- Enable deployment of ingress for storage component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: "" # -- Array of host objects hosts: [] # - vtstorage.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vtstorage-ingress-tls # hosts: # - vtstorage.domain.com vtselect: # -- Enable deployment of ingress for select component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vtcluster.spec.vtselect }}' # -- Array of host objects hosts: [] # - vtselect.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vtselect-ingress-tls # hosts: # - vtselect.domain.com vtinsert: # -- Enable deployment of ingress for insert component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vtcluster.spec.vtinsert }}' # -- Array of host objects hosts: [] # - vtinsert.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vtinsert-ingress-tls # hosts: # - vtinsert.domain.com route: vtstorage: # -- Enable deployment of HTTPRoute for storage component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vtcluster.spec.vtstorage.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vtcluster.spec.vtstorage }}' vtselect: # -- Enable deployment of HTTPRoute for select component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vtcluster.spec.vtselect.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vtcluster.spec.vtselect }}' vtinsert: # -- Enable deployment of HTTPRoute for insert component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vtcluster.spec.vtinsert.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vtcluster.spec.vtinsert }}' # Configures vmsingle params vmsingle: # -- VMSingle labels labels: {} # -- VMSingle annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Create VMSingle CR enabled: true # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api/#vmsinglespec) spec: port: "8428" # -- 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](https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#retention) retentionPeriod: "1" replicaCount: 1 extraArgs: {} storage: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi ingress: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress default path path: "" # -- Ingress path type pathType: Prefix # -- Ingress controller class name ingressClassName: "" # -- Array of host objects hosts: [] # - vmsingle.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vmsingle-ingress-tls # hosts: # - vmsingle.domain.com route: # -- Enable deployment of HTTPRoute for server component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmsingle.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vmsingle }}' vmdistributed: # -- Create VMDistributed CR enabled: false # -- VMDistributed labels labels: {} # -- VMDistributed annotations annotations: {} # -- Full spec for VMDistributed CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmdistributedspec) spec: vmauth: spec: port: "8427" zoneCommon: vmcluster: spec: vmstorage: replicaCount: 2 storageDataPath: /vm-data storage: volumeClaimTemplate: spec: resources: requests: storage: 10Gi vmselect: replicaCount: 2 cacheMountPath: /select-cache storage: volumeClaimTemplate: spec: resources: requests: storage: 2Gi vminsert: replicaCount: 2 zones: - name: us-east-1 vmcluster: # -- Create VMCluster CR enabled: false # -- VMCluster labels labels: {} # -- VMCluster annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmclusterspec) spec: # -- 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](https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#retention) retentionPeriod: "1" replicationFactor: 2 vmstorage: replicaCount: 2 storageDataPath: /vm-data storage: volumeClaimTemplate: spec: resources: requests: storage: 10Gi resources: {} # limits: # cpu: "1" # memory: 1500Mi vmselect: # -- Set this value to false to disable VMSelect enabled: true port: "8481" replicaCount: 2 cacheMountPath: /select-cache extraArgs: {} storage: volumeClaimTemplate: spec: resources: requests: storage: 2Gi resources: {} # limits: # cpu: "1" # memory: "1000Mi" # requests: # cpu: "0.5" # memory: "500Mi" vminsert: # -- Set this value to false to disable VMInsert enabled: true port: "8480" replicaCount: 2 extraArgs: {} resources: {} # limits: # cpu: "1" # memory: 1000Mi # requests: # cpu: "0.5" # memory: "500Mi" ingress: storage: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: "" # -- Array of host objects hosts: [] # - vmstorage.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vmstorage-ingress-tls # hosts: # - vmstorage.domain.com select: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' # -- Array of host objects hosts: [] # - vmselect.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vmselect-ingress-tls # hosts: # - vmselect.domain.com insert: # -- Enable deployment of ingress for server component enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress extra labels labels: {} # -- Ingress controller class name ingressClassName: "" # -- Ingress path type pathType: Prefix # -- Ingress default path path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' # -- Array of host objects hosts: [] # - vminsert.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service # -- Array of TLS objects tls: [] # - secretName: vminsert-ingress-tls # hosts: # - vminsert.domain.com route: storage: # -- Enable deployment of HTTPRoute for storage component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmcluster.spec.vmstorage.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmstorage }}' select: # -- Enable deployment of HTTPRoute for select component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmcluster.spec.vmselect.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' insert: # -- Enable deployment of HTTPRoute for insert component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmcluster.spec.vminsert.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' alertmanager: # -- Create VMAlertmanager CR enabled: true # -- VMAlertmanager labels labels: {} # -- VMAlertmanager annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerspec) spec: replicaCount: 1 port: "9093" selectAllByDefault: true image: # renovate: image=prom/alertmanager tag: v0.32.1 externalURL: "" routePrefix: / # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored configSecret: "" # -- # @raw # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. # Note: VMAlertmanagerConfig and plain VMAlertmanager config structures are not equal. # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). useManagedConfig: false # -- (object) VMAlertmanager configuration config: route: receiver: "blackhole" # group_by: ["alertgroup", "job"] # group_wait: 30s # group_interval: 5m # repeat_interval: 12h # routes: # # # Duplicate code_owner routes to teams # # These will send alerts to team channels but continue # # processing through the rest of the tree to handled by on-call # - matchers: # - code_owner_channel!="" # - severity=~"info|warning|critical" # group_by: ["code_owner_channel", "alertgroup", "job"] # receiver: slack-code-owners # # # Standard on-call routes # - matchers: # - severity=~"info|warning|critical" # receiver: slack-monitoring # continue: true # # inhibit_rules: # - target_matchers: # - severity=~"warning|info" # source_matchers: # - severity=critical # equal: # - cluster # - namespace # - alertname # - target_matchers: # - severity=info # source_matchers: # - severity=warning # equal: # - cluster # - namespace # - alertname # - target_matchers: # - severity=info # source_matchers: # - alertname=InfoInhibitor # equal: # - cluster # - namespace receivers: - name: blackhole # - name: "slack-monitoring" # slack_configs: # - channel: "#channel" # send_resolved: true # title: '{{ template "slack.monzo.title" . }}' # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' # color: '{{ template "slack.monzo.color" . }}' # text: '{{ template "slack.monzo.text" . }}' # actions: # - type: button # text: "Runbook :green_book:" # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" # - type: button # text: "Query :mag:" # url: "{{ (index .Alerts 0).GeneratorURL }}" # - type: button # text: "Dashboard :grafana:" # url: "{{ (index .Alerts 0).Annotations.dashboard }}" # - type: button # text: "Silence :no_bell:" # url: '{{ template "__alert_silence_link" . }}' # - type: button # text: '{{ template "slack.monzo.link_button_text" . }}' # url: "{{ .CommonAnnotations.link_url }}" # - name: slack-code-owners # slack_configs: # - channel: "#{{ .CommonLabels.code_owner_channel }}" # send_resolved: true # title: '{{ template "slack.monzo.title" . }}' # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' # color: '{{ template "slack.monzo.color" . }}' # text: '{{ template "slack.monzo.text" . }}' # actions: # - type: button # text: "Runbook :green_book:" # url: "{{ (index .Alerts 0).Annotations.runbook }}" # - type: button # text: "Query :mag:" # url: "{{ (index .Alerts 0).GeneratorURL }}" # - type: button # text: "Dashboard :grafana:" # url: "{{ (index .Alerts 0).Annotations.dashboard }}" # - type: button # text: "Silence :no_bell:" # url: '{{ template "__alert_silence_link" . }}' # - type: button # text: '{{ template "slack.monzo.link_button_text" . }}' # url: "{{ .CommonAnnotations.link_url }}" # # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) monzoTemplate: enabled: true # -- (object) Extra alert templates templateFiles: {} # template_1.tmpl: |- # {{ define "hello" -}} # hello, Victoria! # {{- end }} # template_2.tmpl: "" # -- (object) VMAlertmanager ingress configuration ingress: enabled: false # 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 # Values can be templated annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" labels: {} path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' pathType: Prefix hosts: - alertmanager.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service tls: [] # - secretName: alertmanager-ingress-tls # hosts: # - alertmanager.domain.com # -- (object) VMAlertmanager route configuration route: # -- Enable deployment of HTTPRoute for alertmanager component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.alertmanager.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' vmalert: # -- VMAlert annotations annotations: {} # -- VMAlert labels labels: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- Create VMAlert CR enabled: true # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite remoteWriteVMAgent: false # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmalertspec) spec: port: "8080" selectAllByDefault: true evaluationInterval: 20s extraArgs: http.pathPrefix: "/" # External labels to add to all generated recording rules and alerts externalLabels: {} # -- (object) Extra VMAlert annotation templates templateFiles: {} # template_1.tmpl: |- # {{ define "hello" -}} # hello, Victoria! # {{- end }} # template_2.tmpl: "" # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, # see specification [here](https://docs.victoriametrics.com/victoriametrics/vmalert/#notifier-configuration-file). # This configuration will be created as separate secret and mounted to VMAlert pod. additionalNotifierConfigs: {} # dns_sd_configs: # - names: # - my.domain.com # type: 'A' # port: 9093 # -- (object) VMAlert ingress config ingress: enabled: false # 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 # Values can be templated annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" labels: {} path: "" pathType: Prefix hosts: - vmalert.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service tls: [] # - secretName: vmalert-ingress-tls # hosts: # - vmalert.domain.com # -- (object) VMAlert route configuration route: # -- Enable deployment of HTTPRoute for vmalert component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmalert.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vmalert }}' vmauth: # -- Enable VMAuth CR enabled: false # -- VMAuth labels labels: {} # -- VMAuth annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmauthspec) # It's possible to use given below predefined variables in spec: # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL # * `{{ .vl.read }}` - parsed vlselect, vlsingle or external.vl.read URL # * `{{ .vl.write }}` - parsed vlinsert, vlsingle or external.vl.write URL # * `{{ .vt.read }}` - parsed vtselect, vtsingle or external.vt.read URL # * `{{ .vt.write }}` - parsed vtinsert, vtsingle or external.vt.write URL spec: port: "8427" unauthorizedUserAccessSpec: # -- Flag, that allows to disable default VMAuth unauthorized user access config disabled: false discover_backend_ips: true url_map: - src_paths: - '{{ .vm.read.path }}/.*' url_prefix: - '{{ urlJoin (omit .vm.read "path") }}/' - src_paths: - '{{ .vm.write.path }}/.*' url_prefix: - '{{ urlJoin (omit .vm.write "path") }}/' vmagent: # -- Create VMAgent CR enabled: true # -- VMAgent labels labels: {} # -- VMAgent annotations annotations: {} # -- Override the namespace for this component. When set, deploys the CR to a different namespace than the release namespace. namespaceOverride: "" rbac: # -- Role/RoleBinding annotations annotations: {} # -- Defines if ClusterRole or Role with respective bindings should be created namespaced: true # -- Role/RoleBinding labels extraLabels: {} # -- additional rules for a role rules: [] # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api/#vmagentremotewritespec) additionalRemoteWrites: [] #- url: http://some-remote-write/api/v1/write # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api/#vmagentspec) spec: port: "8429" selectAllByDefault: true scrapeInterval: 20s externalLabels: {} # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. # For example: # cluster: cluster-name extraArgs: promscrape.streamParse: "true" # -- (object) VMAgent ingress configuration ingress: enabled: false # 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 # Values can be templated annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" labels: {} path: "" pathType: Prefix hosts: - vmagent.domain.com extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service tls: [] # - secretName: vmagent-ingress-tls # hosts: # - vmagent.domain.com # -- (object) VMAgent route configuration route: # -- Enable deployment of HTTPRoute for vmagent component enabled: false # -- HTTPRoute annotations annotations: {} # -- HTTPRoute extra labels labels: {} # -- HTTPGateway objects refs parentRefs: [] # -- Array of hostnames hostnames: [] # -- Extra rules to prepend to route. This is useful when working with annotation based services. extraRules: [] # -- Route port port: '{{ .Values.vmagent.spec.port }}' # -- Filters for a default rule in HTTPRoute filters: [] # -- Matches for a default rule in HTTPRoute matches: - path: type: PathPrefix value: '{{ dig "spec" "extraArgs" "http.pathPrefix" "/" .Values.vmagent }}' defaultDatasources: grafanaOperator: # -- Create datasources as CRDs (requires grafana-operator to be installed) enabled: false annotations: {} spec: instanceSelector: matchLabels: dashboards: grafana allowCrossNamespaceImport: false victoriametrics: # -- List of prometheus compatible datasource configurations. # VM `url` will be added to each of them in templates. datasources: - name: VictoriaMetrics type: prometheus access: proxy uid: VictoriaMetrics isDefault: true - name: VictoriaMetrics (DS) isDefault: false access: proxy uid: VictoriaMetricsDS type: victoriametrics-metrics-datasource victorialogs: # -- List of VictoriaLogs datasource configurations. # VL `url` will be added to each of them in templates. datasources: - name: VictoriaLogs (DS) access: proxy uid: VictoriaLogs type: victoriametrics-logs-datasource victoriatraces: # -- List of VictoriaTraces (Jaeger-compatible) datasource configurations. # VT `url` will be added to each of them in templates. datasources: - name: VictoriaTraces access: proxy uid: VictoriaTraces type: jaeger # -- List of alertmanager datasources. # VMAlertmanager generated `url` will be added to each datasource in template if alertmanager is enabled alertmanager: datasources: - name: Alertmanager access: proxy uid: Alertmanager jsonData: implementation: prometheus # -- Configure additional grafana datasources (passed through tpl). # Check [here](https://grafana.com/docs/grafana/latest/administration/provisioning/#data-sources) for details extra: [] # - name: prometheus-sample # access: proxy # basicAuth: true # basicAuthPassword: pass # basicAuthUser: daco # editable: false # jsonData: # tlsSkipVerify: true # orgId: 1 # type: prometheus # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090 # version: 1 # -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana-community/helm-charts/tree/main/charts/grafana#configuration) grafana: enabled: true # all values for grafana helm chart can be specified here sidecar: datasources: enabled: true label: grafana_datasource labelValue: "1" dashboards: provider: name: default orgid: 1 folder: /var/lib/grafana/dashboards defaultFolderName: default enabled: true multicluster: false label: grafana_dashboard labelValue: "1" # -- Create datasource configmap even if grafana deployment has been disabled forceDeployDatasource: false # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: # Note that Grafana will need internet access to install the datasource plugin. # # plugins: # - victoriametrics-metrics-datasource # - victoriametrics-logs-datasource ingress: enabled: false # 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 # Values can be templated annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" labels: {} path: / pathType: Prefix hosts: - grafana.domain.com # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. extraPaths: [] # - path: /* # pathType: Prefix # backend: # service: # name: ssl-redirect # port: # name: service tls: [] # - secretName: grafana-ingress-tls # hosts: # - grafana.domain.com # -- Grafana VM scrape config vmScrape: # whether we should create a service scrape resource for grafana enabled: true # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) for Grafana spec: selector: matchLabels: app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' endpoints: - port: '{{ .Values.grafana.service.portName }}' defaultScrapeService: namespace: kube-system # -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) prometheus-node-exporter: enabled: true # all values for prometheus-node-exporter helm chart can be specified here service: labels: jobLabel: node-exporter extraArgs: - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ # -- Node Exporter VM scrape config vmScrape: # whether we should create a service scrape resource for node-exporter enabled: true # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) for Node Exporter spec: jobLabel: jobLabel selector: matchLabels: app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' endpoints: - port: metrics metricRelabelConfigs: - action: drop source_labels: [mountpoint] regex: "/var/lib/kubelet/pods.+" # -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) kube-state-metrics: enabled: true # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) for Kube State Metrics vmScrape: enabled: true spec: selector: matchLabels: app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' app.kubernetes.io/instance: '{{ include "vm.release" . }}' endpoints: - port: http honorLabels: true metricRelabelConfigs: - action: labeldrop regex: (uid|container_id|image_id) jobLabel: app.kubernetes.io/name # -- Component scraping the kubelets kubelet: enabled: true vmScrapes: # -- Enable scraping /metrics/cadvisor from kubelet's service cadvisor: enabled: true spec: path: /metrics/cadvisor # -- Enable scraping /metrics/probes from kubelet's service probes: enabled: true spec: path: /metrics/probes # -- Enabled scraping /metrics/resource from kubelet's service resources: enabled: true spec: path: /metrics/resource kubelet: spec: {} # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmnodescrapespec) vmScrape: kind: VMNodeScrape spec: scheme: "https" honorLabels: true interval: "30s" scrapeTimeout: "5s" tlsConfig: insecureSkipVerify: true caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # drop high cardinality label and useless metrics for cadvisor and kubelet metricRelabelConfigs: - action: labeldrop regex: (uid) - action: labeldrop regex: (id|name) - action: drop source_labels: [__name__] regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) relabelConfigs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - sourceLabels: [__metrics_path__] targetLabel: metrics_path - targetLabel: job replacement: kubelet # ignore timestamps of cadvisor's metrics by default # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 honorTimestamps: false # Component scraping the kube api server kubeApiServer: # -- Enable Kube Api Server metrics scraping enabled: true # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # bearerTokenSecret: # key: "" port: https scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt serverName: kubernetes jobLabel: component namespaceSelector: matchNames: - default selector: matchLabels: component: apiserver provider: kubernetes # Component scraping the kube controller manager kubeControllerManager: # -- Enable kube controller manager metrics scraping enabled: true # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on endpoints: [] # - 10.141.4.22 # - 10.141.4.23 # - 10.141.4.24 # If using kubeControllerManager.endpoints only the port and targetPort are used service: # -- Create service for kube controller manager metrics scraping enabled: true # -- Kube controller manager service port port: 10257 # -- Kube controller manager service target port targetPort: 10257 # -- Kube controller manager service labels labels: {} # -- Kube controller manager service pod selector selector: component: kube-controller-manager # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # bearerTokenSecret: # key: "" port: http-metrics scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt serverName: kubernetes # Component scraping kubeDns. Use either this or coreDns kubeDns: # -- Enabled KubeDNS metrics scraping enabled: false service: # -- Create Service for KubeDNS metrics enabled: false # -- KubeDNS service labels labels: {} # -- KubeDNS service ports ports: dnsmasq: port: 10054 targetPort: 10054 skydns: port: 10055 targetPort: 10055 # -- KubeDNS service pods selector selector: k8s-app: kube-dns # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - port: http-metrics-dnsmasq bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - port: http-metrics-skydns bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # Component scraping coreDns. Use either this or kubeDns coreDns: # -- Enabled CoreDNS metrics scraping enabled: true service: # -- Create service for CoreDNS metrics enabled: true # -- CoreDNS service port port: 9153 # -- CoreDNS service target port targetPort: 9153 # -- CoreDNS service labels labels: {} # -- CoreDNS service pod selector selector: k8s-app: kube-dns # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - port: http-metrics bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # Component scraping etcd kubeEtcd: # -- Enabled KubeETCD metrics scraping enabled: true # -- If your etcd is not deployed as a pod, specify IPs it can be found on endpoints: [] # - 10.141.4.22 # - 10.141.4.23 # - 10.141.4.24 # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used service: # -- Enable service for ETCD metrics scraping enabled: true # -- ETCD service port port: 2379 # -- ETCD service target port targetPort: 2379 # -- ETCD service labels labels: {} # -- ETCD service pods selector selector: component: etcd # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # bearerTokenSecret: # key: "" port: http-metrics scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt # Component scraping kube scheduler kubeScheduler: # -- Enable KubeScheduler metrics scraping enabled: true # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on endpoints: [] # - 10.141.4.22 # - 10.141.4.23 # - 10.141.4.24 # If using kubeScheduler.endpoints only the port and targetPort are used service: # -- Enable service for KubeScheduler metrics scrape enabled: true # -- KubeScheduler service port port: 10259 # -- KubeScheduler service target port targetPort: 10259 # -- KubeScheduler service labels labels: {} # -- KubeScheduler service pod selector selector: component: kube-scheduler # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # bearerTokenSecret: # key: "" port: http-metrics scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt # Component scraping kube proxy kubeProxy: # -- Enable kube proxy metrics scraping enabled: false # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on endpoints: [] # - 10.141.4.22 # - 10.141.4.23 # - 10.141.4.24 service: # -- Enable service for kube proxy metrics scraping enabled: true # -- Kube proxy service port port: 10249 # -- Kube proxy service target port targetPort: 10249 # -- Kube proxy service labels labels: {} # -- Kube proxy service pod selector selector: k8s-app: kube-proxy # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api/#vmservicescrapespec) vmScrape: spec: jobLabel: app.kubernetes.io/component namespaceSelector: matchNames: [] endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token # bearerTokenSecret: # key: "" port: http-metrics scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt internal: vmauth: # -- name is a template for the internal VMAuth CR used for vmalert datasource routing name: '{{ .fullname }}-internal' # -- (object) Spec for internal VMAuth CRD used as a vmalert datasource proxy. # It's possible to use given below predefined variables in spec: # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL # * `{{ .vl.read }}` - parsed vlselect, vlsingle or external.vl.read URL # * `{{ .vt.read }}` - parsed vtselect, vtsingle or external.vt.read URL spec: port: "8427" unauthorizedUserAccessSpec: url_map: - src_paths: - '/select/logsql/.*' url_prefix: - '{{ urlJoin (omit .vl.read "path") }}/' - src_paths: - '/.*' url_prefix: - '{{ (include "vm.prometheus.read" . | fromYaml).url }}/' # -- Add extra objects dynamically to this chart extraObjects: []