From 5e7a3570f6190511ff77222110263ae4f9cf8d46 Mon Sep 17 00:00:00 2001 From: Janis Date: Sun, 3 May 2026 13:23:21 +0200 Subject: [PATCH] feat(victoria-metrics): add Kustomization and configuration files for Victoria Metrics stack --- .../victoria-metrics/victoria-metrics.yaml | 21 +++ .../eu-central-1/kustomization.yaml | 23 ++++ victoria-metrics/eu-central-1/namespace.yaml | 4 + .../eu-central-1/victoria-logs-values.yaml | 20 +++ .../eu-central-1/victoria-traces-values.yaml | 20 +++ .../eu-central-1/vm-stack-values.yaml | 124 ++++++++++++++++++ 6 files changed, 212 insertions(+) create mode 100644 eu-central-1/argo-apps/victoria-metrics/victoria-metrics.yaml create mode 100644 victoria-metrics/eu-central-1/kustomization.yaml create mode 100644 victoria-metrics/eu-central-1/namespace.yaml create mode 100644 victoria-metrics/eu-central-1/victoria-logs-values.yaml create mode 100644 victoria-metrics/eu-central-1/victoria-traces-values.yaml create mode 100644 victoria-metrics/eu-central-1/vm-stack-values.yaml diff --git a/eu-central-1/argo-apps/victoria-metrics/victoria-metrics.yaml b/eu-central-1/argo-apps/victoria-metrics/victoria-metrics.yaml new file mode 100644 index 0000000..71c6f6f --- /dev/null +++ b/eu-central-1/argo-apps/victoria-metrics/victoria-metrics.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: victoria-metrics + namespace: argocd +spec: + project: default + destination: + namespace: victoria-metrics + server: https://kubernetes.default.svc + sources: + - repoURL: git@git.janis-eccarius.de:NowChess/GitOps.git + path: ./victoria-metrics/eu-central-1 + targetRevision: main + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/victoria-metrics/eu-central-1/kustomization.yaml b/victoria-metrics/eu-central-1/kustomization.yaml new file mode 100644 index 0000000..e88afcb --- /dev/null +++ b/victoria-metrics/eu-central-1/kustomization.yaml @@ -0,0 +1,23 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml +helmCharts: + - name: victoria-metrics-k8s-stack + repo: https://victoriametrics.github.io/helm-charts/ + version: 0.76.0 + releaseName: vm-stack + namespace: victoria-metrics + valuesFile: vm-stack-values.yaml + - name: victoria-logs-single + repo: https://victoriametrics.github.io/helm-charts/ + version: 0.12.4 + releaseName: victoria-logs + namespace: victoria-metrics + valuesFile: victoria-logs-values.yaml + - name: victoria-traces-single + repo: https://victoriametrics.github.io/helm-charts/ + version: 0.0.7 + releaseName: victoria-traces + namespace: victoria-metrics + valuesFile: victoria-traces-values.yaml diff --git a/victoria-metrics/eu-central-1/namespace.yaml b/victoria-metrics/eu-central-1/namespace.yaml new file mode 100644 index 0000000..d8d0b8b --- /dev/null +++ b/victoria-metrics/eu-central-1/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: victoria-metrics diff --git a/victoria-metrics/eu-central-1/victoria-logs-values.yaml b/victoria-metrics/eu-central-1/victoria-logs-values.yaml new file mode 100644 index 0000000..7592864 --- /dev/null +++ b/victoria-metrics/eu-central-1/victoria-logs-values.yaml @@ -0,0 +1,20 @@ +server: + retentionPeriod: 7d + resources: + requests: + cpu: 30m + memory: 40Mi + limits: + cpu: 300m + memory: 100Mi + extraArgs: + envflag.enable: "true" + envflag.prefix: VM_ + loggerFormat: json + search.maxConcurrentRequests: "4" + search.maxMemoryPerQuery: 20MB + persistentVolume: + enabled: true + size: 3Gi + accessModes: + - ReadWriteOnce diff --git a/victoria-metrics/eu-central-1/victoria-traces-values.yaml b/victoria-metrics/eu-central-1/victoria-traces-values.yaml new file mode 100644 index 0000000..2e9d9e6 --- /dev/null +++ b/victoria-metrics/eu-central-1/victoria-traces-values.yaml @@ -0,0 +1,20 @@ +server: + retentionPeriod: 7d + resources: + requests: + cpu: 30m + memory: 40Mi + limits: + cpu: 300m + memory: 80Mi + extraArgs: + envflag.enable: "true" + envflag.prefix: VM_ + loggerFormat: json + search.maxConcurrentRequests: "4" + search.maxMemoryPerQuery: 20MB + persistentVolume: + enabled: true + size: 2Gi + accessModes: + - ReadWriteOnce diff --git a/victoria-metrics/eu-central-1/vm-stack-values.yaml b/victoria-metrics/eu-central-1/vm-stack-values.yaml new file mode 100644 index 0000000..b81cbdb --- /dev/null +++ b/victoria-metrics/eu-central-1/vm-stack-values.yaml @@ -0,0 +1,124 @@ +# victoria-metrics-k8s-stack — all CRDs managed by victoria-metrics-operator +# VMSingle service: vmsingle-vm-stack.victoria-metrics.svc.cluster.local:8428 +# VMAlert service: vmalert-vm-stack.victoria-metrics.svc.cluster.local:8080 + +victoria-metrics-operator: + resources: + requests: + cpu: 20m + memory: 30Mi + limits: + cpu: 200m + memory: 60Mi + operator: + disable_prometheus_converter: false + +vmsingle: + enabled: true + spec: + retentionPeriod: "2" + replicaCount: 1 + resources: + requests: + cpu: 50m + memory: 80Mi + limits: + cpu: 500m + memory: 150Mi + storage: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +vmagent: + enabled: true + spec: + scrapeInterval: 60s + resources: + requests: + cpu: 20m + memory: 30Mi + limits: + cpu: 200m + memory: 60Mi + +vmalert: + enabled: true + spec: + evaluationInterval: 60s + resources: + requests: + cpu: 20m + memory: 20Mi + limits: + cpu: 200m + memory: 50Mi + +alertmanager: + enabled: true + spec: + replicaCount: 1 + resources: + requests: + cpu: 10m + memory: 20Mi + limits: + cpu: 100m + memory: 40Mi + +grafana: + enabled: true + resources: + requests: + cpu: 50m + memory: 80Mi + limits: + cpu: 300m + memory: 150Mi + persistence: + enabled: false + plugins: + - victoriametrics-metrics-datasource + - victoriametrics-logs-datasource + sidecar: + datasources: + enabled: true + label: grafana_datasource + labelValue: "1" + dashboards: + enabled: true + label: grafana_dashboard + labelValue: "1" + folder: /var/lib/grafana/dashboards + defaultFolderName: default + grafana.ini: + server: + root_url: "%(protocol)s://%(domain)s/" + auth.anonymous: + enabled: false + +defaultDashboards: + enabled: true + defaultTimezone: utc + +prometheus-node-exporter: + enabled: true + resources: + requests: + cpu: 10m + memory: 15Mi + limits: + cpu: 100m + memory: 30Mi + +kube-state-metrics: + enabled: true + resources: + requests: + cpu: 15m + memory: 30Mi + limits: + cpu: 200m + memory: 60Mi