Skip to content

Instantly share code, notes, and snippets.

@vainkop
Created August 10, 2021 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vainkop/d8ed28f85f3b87fa53ec4269ad13b460 to your computer and use it in GitHub Desktop.
Save vainkop/d8ed28f85f3b87fa53ec4269ad13b460 to your computer and use it in GitHub Desktop.
victoriametrics-helm-values.yml
nameOverride: ""
fullnameOverride: ""
operator:
enabled: true
cleanupCRD: true
cleanupSA:
create: true
name: ""
kubectlImage:
repository: gcr.io/google_containers/hyperkube
tag: v1.16.0
pullPolicy: IfNotPresent
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
## Create default rules for monitoring the cluster
##
defaultRules:
create: true
rules:
etcd: true
general: true
k8s: true
kubeApiserver: true
kubeApiserverAvailability: true
kubeApiserverSlos: true
kubelet: true
kubePrometheusGeneral: true
kubePrometheusNodeRecording: true
kubernetesApps: true
kubernetesResources: true
kubernetesStorage: true
kubernetesSystem: true
kubeScheduler: true
kubeStateMetrics: true
network: true
node: true
## Runbook url prefix for default rules
runbookUrl: https://runbooks.prometheus-operator.dev/runbooks
## Reduce app namespace alert scope
appNamespacesTarget: ".*"
## Labels for default rules
labels: {}
## Annotations for default rules
annotations: {}
## Additional labels for PrometheusRule alerts
additionalRuleLabels: {}
##############
# victoria-metrics-operator dependency chart configuration. For possible values refer to https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-operator#parameters
victoria-metrics-operator:
## all values for victoria-metrics-operator helm chart can be specified here
createCRD: false
operator:
# -- By default, operator converts prometheus-operator objects.
disable_prometheus_converter: true
vmsingle:
enabled: true
# spec for VMSingle crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmsinglespec
spec:
image:
tag: v1.63.0
retentionPeriod: "14"
replicaCount: 1
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
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 is only for k8s > 1.19
pathType: Prefix
hosts:
- vmsingle.domain.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vmsingle-ingress-tls
# hosts:
# - vmsingle.domain.com
vmcluster:
enabled: false
# spec for VMSingle crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmclusterspec
spec:
retentionPeriod: "14"
replicationFactor: 2
vmstorage:
image:
tag: v1.63.0-cluster
replicaCount: 2
storageDataPath: "/vm-data"
storage:
volumeClaimTemplate:
spec:
resources:
requests:
storage: 10Gi
resources:
limits:
cpu: "1"
memory: 1500Mi
vmselect:
image:
tag: v1.63.0-cluster
replicaCount: 2
cacheMountPath: "/select-cache"
storage:
volumeClaimTemplate:
spec:
resources:
requests:
storage: 2Gi
resources:
limits:
cpu: "1"
memory: "1000Mi"
requests:
cpu: "0.5"
memory: "500Mi"
vminsert:
image:
tag: v1.63.0-cluster
replicaCount: 2
resources:
limits:
cpu: "1"
memory: 1000Mi
requests:
cpu: "0.5"
memory: "500Mi"
ingress:
storage:
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 is only for k8s > 1.19
pathType: Prefix
hosts:
- vmstorage.domain.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vmstorage-ingress-tls
# hosts:
# - vmstorage.domain.com
select:
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 is only for k8s > 1.19
pathType: Prefix
hosts:
- vmselect.domain.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vmselect-ingress-tls
# hosts:
# - vmselect.domain.com
insert:
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 is only for k8s > 1.19
pathType: Prefix
hosts:
- vminsert.domain.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vminsert-ingress-tls
# hosts:
# - vminsert.domain.com
alertmanager:
enabled: true
# spec for VMAlertmanager crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmalertmanagerspec
spec:
image:
tag: v0.22.2
externalURL: ""
routePrefix: /
# if this one defined, it will be used for alertmanager configuration and config parameter will be ignored
# configSecret: "alertmanager-config"
config:
global:
resolve_timeout: 5m
slack_api_url: "http://slack:30500/"
templates:
- "/etc/vm/configs/**/*.tmpl"
route:
group_by: ["job"]
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: "slack-monitoring"
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
- match_re:
code_owner: ".+"
routes:
- match: { severity: info|warning|critical }
continue: true
receiver: slack-code-owners
###################################################
## Standard on-call routes
- match_re:
severity: info|warning|critical
receiver: slack-monitoring
continue: true
receivers:
- 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 }}"
- 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: '#{{- template "slack.monzo.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
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 is only for k8s > 1.19
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: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: alertmanager-ingress-tls
# hosts:
# - alertmanager.domain.com
vmalert:
enabled: true
# spec for VMAlert crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmalertspec
spec:
image:
tag: v1.63.0
evaluationInterval: 15s
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 is only for k8s > 1.19
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: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vmalert-ingress-tls
# hosts:
# - vmalert.domain.com
vmagent:
enabled: true
# spec for VMAgent crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmagentspec
spec:
image:
tag: v1.63.0
scrapeInterval: 25s
externalLabels:
cluster: cluster-name
extraArgs:
promscrape.streamParse: "true"
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 is only for k8s > 1.19
pathType: Prefix
hosts:
- vmagent.domain.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls: []
# - secretName: vmagent-ingress-tls
# hosts:
# - vmagent.domain.com
#################################################
### dependencies #####
#################################################
# Grafana dependency chart configuration. For possible values refer to https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration
grafana:
enabled: true
## all values for grafana helm chart can be specified here
sidecar:
datasources:
enabled: true
createVMReplicasDatasources: false
dashboards:
enabled: true
## Configure additional grafana datasources (passed through tpl)
## ref: http://docs.grafana.org/administration/provisioning/#datasources
additionalDataSources: []
# - 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
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: "default"
orgId: 1
folder: ""
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/default
dashboards:
default:
victoriametrics:
url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/victoriametrics.json
vmagent:
url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmagent.json
nodeexporter:
gnetId: 1860
revision: 22
datasource: VictoriaMetrics
defaultDashboardsEnabled: true
ingress:
enabled: true
# 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'
nginx.ingress.kubernetes.io/ssl-redirect: 'true'
nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
labels: {}
path: /
# pathType is only for k8s > 1.19
pathType: Prefix
hosts:
- grafana.example.com
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
## Or for k8s > 1.19
# - path: /*
# pathType: Prefix
# backend:
# service:
# name: ssl-redirect
# port:
# name: service
tls:
- secretName: grafana.example.com-tls
hosts:
- grafana.example.com
vmServiceScrape:
# wheter we should create a service scrape resource for node-exporter
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec: {}
# prometheus-node-exporter dependency chart configuration. For possible values refer to 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
podLabels:
## Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards
##
jobLabel: node-exporter
extraArgs:
- --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
- --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
vmServiceScrape:
# wheter we should create a service scrape resource for node-exporter
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
jobLabel: jobLabel
# kube-state-metrics dependency chart configuration. For possible values refer to https://github.com/kubernetes/kube-state-metrics/blob/master/charts/kube-state-metrics/values.yaml
kube-state-metrics:
enabled: true
## all values for kube-state-metrics helm chart can be specified here
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
vmServiceScrape:
spec: {}
#TODO: selector override for kube-state-metrics deployed separatelly
### Service Monitors
## Component scraping the kubelets
kubelet:
enabled: true
## Enable scraping /metrics/cadvisor from kubelet's service
cadvisor: true
## Enable scraping /metrics/probes from kubelet's service
probes: true
# spec for VMNodeScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmnodescrapespec
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"
relabelConfigs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- sourceLabels: [__metrics_path__]
targetLabel: metrics_path
- targetLabel: "job"
replacement: "kubelet"
## Component scraping the kube api server
kubeApiServer:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
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:
- kube-system
selector:
matchLabels:
component: apiserver
provider: kubernetes
## Component scraping the kube controller manager
kubeControllerManager:
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:
enabled: true
port: 10252
targetPort: 10252
# selector:
# component: kube-controller-manager
vmServiceScrape:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
jobLabel: jobLabel
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 coreDns. Use either this or kubeDns
##
coreDns:
enabled: true
service:
enabled: true
port: 9153
targetPort: 9153
# selector:
# k8s-app: kube-dns
vmServiceScrape:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
endpoints:
- port: http-metrics
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
## Component scraping etcd
##
kubeEtcd:
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:
enabled: true
port: 2379
targetPort: 2379
# selector:
# component: etcd
vmServiceScrape:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
jobLabel: jobLabel
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:
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:
enabled: true
port: 10251
targetPort: 10251
# selector:
# component: kube-scheduler
vmServiceScrape:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
jobLabel: jobLabel
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:
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:
enabled: true
port: 10249
targetPort: 10249
# selector:
# k8s-app: kube-proxy
vmServiceScrape:
enabled: true
# spec for VMServiceScrape crd
# https://github.com/VictoriaMetrics/operator/blob/master/docs/api.MD#vmservicescrapespec
spec:
jobLabel: jobLabel
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment