From 268fa1c5affe712a5fd377e68454a03ac574b017 Mon Sep 17 00:00:00 2001 From: Oleksandr Berezovskyi Date: Fri, 19 Jun 2026 15:09:38 +0300 Subject: [PATCH] feat(mon/victoria-logs): add log storage with Grafana datasource --- .../configmap-logs-datasource.yaml | 17 ++++++++ .../apps/victoria-metrics/release-logs.yaml | 43 +++++++++++++++++++ .../apps/victoria-metrics/release.yaml | 5 +++ 3 files changed, 65 insertions(+) create mode 100644 kubernetes-monitoring/apps/victoria-metrics/configmap-logs-datasource.yaml create mode 100644 kubernetes-monitoring/apps/victoria-metrics/release-logs.yaml diff --git a/kubernetes-monitoring/apps/victoria-metrics/configmap-logs-datasource.yaml b/kubernetes-monitoring/apps/victoria-metrics/configmap-logs-datasource.yaml new file mode 100644 index 0000000..8aa999a --- /dev/null +++ b/kubernetes-monitoring/apps/victoria-metrics/configmap-logs-datasource.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: victoria-logs-grafana-datasource + namespace: monitoring + labels: + # Picked up automatically by the Grafana datasource sidecar (vmstack chart). + grafana_datasource: "1" +data: + victoria-logs-datasource.yaml: | + apiVersion: 1 + datasources: + - name: VictoriaLogs + type: victoriametrics-logs-datasource + access: proxy + url: http://victoria-logs.monitoring.svc:9428 + isDefault: false diff --git a/kubernetes-monitoring/apps/victoria-metrics/release-logs.yaml b/kubernetes-monitoring/apps/victoria-metrics/release-logs.yaml new file mode 100644 index 0000000..1ccff61 --- /dev/null +++ b/kubernetes-monitoring/apps/victoria-metrics/release-logs.yaml @@ -0,0 +1,43 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: victoria-logs-single + namespace: flux-system +spec: + chart: + spec: + chart: victoria-logs-single + version: 0.13.8 + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: victoria-metrics + namespace: flux-system + targetNamespace: monitoring + interval: 30m + install: + remediation: + retries: 3 + upgrade: + remediation: + retries: 3 + values: + server: + fullnameOverride: victoria-logs + retentionPeriod: "30d" + persistentVolume: + enabled: true + storageClassName: local-path + size: 20Gi + # NodePort so an external Alloy (e.g. the Talos DaemonSet) can push logs + # by IP, independent of DNS. In-cluster Grafana uses the ClusterIP DNS name. + service: + type: NodePort + nodePort: 30429 + clusterIP: "" + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + memory: 512Mi diff --git a/kubernetes-monitoring/apps/victoria-metrics/release.yaml b/kubernetes-monitoring/apps/victoria-metrics/release.yaml index b8961f4..7d8e38d 100644 --- a/kubernetes-monitoring/apps/victoria-metrics/release.yaml +++ b/kubernetes-monitoring/apps/victoria-metrics/release.yaml @@ -66,6 +66,11 @@ spec: grafana: enabled: true + # VictoriaLogs datasource plugin (signed, from Grafana catalog). + # The datasource itself is provisioned via a sidecar-labelled ConfigMap + # (configmap-logs-datasource.yaml). + plugins: + - victoriametrics-logs-datasource # Native Grafana login — independent of Authelia (which lives in Talos). admin: existingSecret: grafana-admin