From b4503d04bd080f8a983058e4aeaca3b670b523e7 Mon Sep 17 00:00:00 2001 From: Laur IVAN Date: Fri, 27 Feb 2026 05:35:58 +0100 Subject: [PATCH] feat: Add victorialogs --- .../apps/observability/kustomization.yaml | 3 +- .../observability/victoria-logs/app.ks.yaml | 22 ++++++++++ .../victoria-logs/app/grafanadashboard.yaml | 17 ++++++++ .../victoria-logs/app/helmrelease.yaml | 42 +++++++++++++++++++ .../victoria-logs/app/kustomization.yaml | 8 ++++ .../victoria-logs/app/ocirepository.yaml | 14 +++++++ .../victoria-logs/kustomization.yaml | 6 +++ 7 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 kubernetes/apps/observability/victoria-logs/app.ks.yaml create mode 100644 kubernetes/apps/observability/victoria-logs/app/grafanadashboard.yaml create mode 100644 kubernetes/apps/observability/victoria-logs/app/helmrelease.yaml create mode 100644 kubernetes/apps/observability/victoria-logs/app/kustomization.yaml create mode 100644 kubernetes/apps/observability/victoria-logs/app/ocirepository.yaml create mode 100644 kubernetes/apps/observability/victoria-logs/kustomization.yaml diff --git a/kubernetes/apps/observability/kustomization.yaml b/kubernetes/apps/observability/kustomization.yaml index cb5aa3c..9f8428f 100644 --- a/kubernetes/apps/observability/kustomization.yaml +++ b/kubernetes/apps/observability/kustomization.yaml @@ -11,4 +11,5 @@ resources: - ./namespace.yaml - ./headlamp - ./grafana - #- ./kube-prometheus-stack + - ./victoria-logs + - ./kube-prometheus-stack diff --git a/kubernetes/apps/observability/victoria-logs/app.ks.yaml b/kubernetes/apps/observability/victoria-logs/app.ks.yaml new file mode 100644 index 0000000..3b1d30b --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/app.ks.yaml @@ -0,0 +1,22 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app victoria-logs + namespace: &namespace observability +spec: + interval: 1h + path: ./kubernetes/apps/observability/victoria-logs/app + postBuild: + substitute: + APP: *app + prune: true + sourceRef: + kind: GitRepository + name: flux-system + namespace: flux-system + targetNamespace: *namespace + dependsOn: + - name: storage-ready + namespace: flux-system diff --git a/kubernetes/apps/observability/victoria-logs/app/grafanadashboard.yaml b/kubernetes/apps/observability/victoria-logs/app/grafanadashboard.yaml new file mode 100644 index 0000000..fbe2f0f --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/app/grafanadashboard.yaml @@ -0,0 +1,17 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/grafana.integreatly.org/grafanadashboard_v1beta1.json +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: victoria-logs-single-node +spec: + allowCrossNamespaceImport: true + instanceSelector: + matchLabels: + grafana.internal/instance: grafana + datasources: + - datasourceName: prometheus + inputName: DS_PROMETHEUS + configMapRef: + name: victoria-logs-victorialogs-single-node + key: victorialogs-single-node.json diff --git a/kubernetes/apps/observability/victoria-logs/app/helmrelease.yaml b/kubernetes/apps/observability/victoria-logs/app/helmrelease.yaml new file mode 100644 index 0000000..bf683e5 --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/app/helmrelease.yaml @@ -0,0 +1,42 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app victoria-logs +spec: + interval: 1h + chartRef: + kind: OCIRepository + name: *app + values: + fullnameOverride: *app + server: + persistentVolume: + enabled: true + storageClassName: ceph-block + size: 20Gi + retentionPeriod: 14d + route: + enabled: true + hostnames: + - victoria-logs.laurivan.com + parentRefs: + - name: envoy-internal + namespace: network + extraRules: + - filters: + - type: RequestRedirect + requestRedirect: + path: + type: ReplaceFullPath + replaceFullPath: /select/vmui/ + statusCode: 302 + matches: + - path: + type: Exact + value: / + serviceMonitor: + enabled: true + dashboards: + enabled: true diff --git a/kubernetes/apps/observability/victoria-logs/app/kustomization.yaml b/kubernetes/apps/observability/victoria-logs/app/kustomization.yaml new file mode 100644 index 0000000..177fc92 --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/app/kustomization.yaml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./grafanadashboard.yaml + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/observability/victoria-logs/app/ocirepository.yaml b/kubernetes/apps/observability/victoria-logs/app/ocirepository.yaml new file mode 100644 index 0000000..202da25 --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/app/ocirepository.yaml @@ -0,0 +1,14 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/source.toolkit.fluxcd.io/ocirepository_v1.json +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: victoria-logs +spec: + interval: 1h + layerSelector: + mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip + operation: copy + ref: + tag: 0.11.27 + url: oci://ghcr.io/victoriametrics/helm-charts/victoria-logs-single diff --git a/kubernetes/apps/observability/victoria-logs/kustomization.yaml b/kubernetes/apps/observability/victoria-logs/kustomization.yaml new file mode 100644 index 0000000..bffe7fc --- /dev/null +++ b/kubernetes/apps/observability/victoria-logs/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ./app.ks.yaml \ No newline at end of file