From 657d5a477d8b41520aad3bbec5fb3a0f44c1ce9e Mon Sep 17 00:00:00 2001 From: Joe Monk Date: Mon, 5 Aug 2024 18:59:25 +0100 Subject: [PATCH] Start adding grafana monitoring stack --- .../monitoring/grafana/helmrelease.yaml | 21 ++++++ .../kairos/monitoring/grafana/ingress.yaml | 16 +++++ .../monitoring/grafana/kustomization.yaml | 5 ++ clusters/kairos/monitoring/helmrepo.yaml | 8 +++ clusters/kairos/monitoring/kustomization.yaml | 9 +++ .../kairos/monitoring/loki/helmrelease.yaml | 71 +++++++++++++++++++ .../kairos/monitoring/loki/kustomization.yaml | 4 ++ clusters/kairos/monitoring/namespace.yaml | 4 ++ .../monitoring/promtail/helmrelease.yaml | 22 ++++++ .../monitoring/promtail/kustomization.yaml | 4 ++ 10 files changed, 164 insertions(+) create mode 100644 clusters/kairos/monitoring/grafana/helmrelease.yaml create mode 100644 clusters/kairos/monitoring/grafana/ingress.yaml create mode 100644 clusters/kairos/monitoring/grafana/kustomization.yaml create mode 100644 clusters/kairos/monitoring/helmrepo.yaml create mode 100644 clusters/kairos/monitoring/kustomization.yaml create mode 100644 clusters/kairos/monitoring/loki/helmrelease.yaml create mode 100644 clusters/kairos/monitoring/loki/kustomization.yaml create mode 100644 clusters/kairos/monitoring/namespace.yaml create mode 100644 clusters/kairos/monitoring/promtail/helmrelease.yaml create mode 100644 clusters/kairos/monitoring/promtail/kustomization.yaml diff --git a/clusters/kairos/monitoring/grafana/helmrelease.yaml b/clusters/kairos/monitoring/grafana/helmrelease.yaml new file mode 100644 index 0000000..293cd26 --- /dev/null +++ b/clusters/kairos/monitoring/grafana/helmrelease.yaml @@ -0,0 +1,21 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: grafana +spec: + chart: + spec: + chart: grafana/grafana + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: grafana-repo + version: 8.4.1 + valuesFiles: + - values.yaml + interval: 1m0s + targetNamespace: monitoring + values: + persistence: + enabled: true + storageClassName: longhorn \ No newline at end of file diff --git a/clusters/kairos/monitoring/grafana/ingress.yaml b/clusters/kairos/monitoring/grafana/ingress.yaml new file mode 100644 index 0000000..01e7c0f --- /dev/null +++ b/clusters/kairos/monitoring/grafana/ingress.yaml @@ -0,0 +1,16 @@ +# apiVersion: traefik.io/v1alpha1 +# kind: IngressRoute +# metadata: +# name: grafana +# spec: +# entryPoints: +# - web +# routes: +# - match: Host(`grafana.k3s`) +# kind: Rule +# services: +# - name: +# namespace: monitoring +# nativeLB: true +# kind: Service +# port: 80 \ No newline at end of file diff --git a/clusters/kairos/monitoring/grafana/kustomization.yaml b/clusters/kairos/monitoring/grafana/kustomization.yaml new file mode 100644 index 0000000..43472b2 --- /dev/null +++ b/clusters/kairos/monitoring/grafana/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- helmrelease.yaml +# - ingress.yaml \ No newline at end of file diff --git a/clusters/kairos/monitoring/helmrepo.yaml b/clusters/kairos/monitoring/helmrepo.yaml new file mode 100644 index 0000000..2024fa0 --- /dev/null +++ b/clusters/kairos/monitoring/helmrepo.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: grafana-repo +spec: + interval: 1m0s + url: https://grafana.github.io/helm-charts diff --git a/clusters/kairos/monitoring/kustomization.yaml b/clusters/kairos/monitoring/kustomization.yaml new file mode 100644 index 0000000..51cf8b8 --- /dev/null +++ b/clusters/kairos/monitoring/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: monitoring +resources: +- namespace.yaml +- helmrepo.yaml +- ./loki +- ./promtail +- ./grafana \ No newline at end of file diff --git a/clusters/kairos/monitoring/loki/helmrelease.yaml b/clusters/kairos/monitoring/loki/helmrelease.yaml new file mode 100644 index 0000000..7fa05a9 --- /dev/null +++ b/clusters/kairos/monitoring/loki/helmrelease.yaml @@ -0,0 +1,71 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: loki +spec: + chart: + spec: + chart: grafana/loki + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: grafana-repo + version: 6.7.4 + valuesFiles: + - values.yaml + interval: 1m0s + targetNamespace: monitoring + values: + loki: + schemaConfig: + configs: + - from: 2024-04-01 + store: tsdb + object_store: s3 + schema: v13 + index: + prefix: loki_index_ + period: 24h + ingester: + chunk_encoding: snappy + tracing: + enabled: true + querier: + max_concurrent: 2 + + deploymentMode: SimpleScalable + + backend: + replicas: 1 + read: + replicas: 1 + write: + replicas: 1 + + # Enable minio for storage + minio: + enabled: true + persistence: + storageClass: longhorn + + # Zero out replica counts of other deployment modes + singleBinary: + replicas: 0 + ingester: + replicas: 0 + querier: + replicas: 0 + queryFrontend: + replicas: 0 + queryScheduler: + replicas: 0 + distributor: + replicas: 0 + compactor: + replicas: 0 + indexGateway: + replicas: 0 + bloomCompactor: + replicas: 0 + bloomGateway: + replicas: 0 \ No newline at end of file diff --git a/clusters/kairos/monitoring/loki/kustomization.yaml b/clusters/kairos/monitoring/loki/kustomization.yaml new file mode 100644 index 0000000..eb5482e --- /dev/null +++ b/clusters/kairos/monitoring/loki/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- helmrelease.yaml \ No newline at end of file diff --git a/clusters/kairos/monitoring/namespace.yaml b/clusters/kairos/monitoring/namespace.yaml new file mode 100644 index 0000000..3335b6a --- /dev/null +++ b/clusters/kairos/monitoring/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: monitoring \ No newline at end of file diff --git a/clusters/kairos/monitoring/promtail/helmrelease.yaml b/clusters/kairos/monitoring/promtail/helmrelease.yaml new file mode 100644 index 0000000..a2fe23c --- /dev/null +++ b/clusters/kairos/monitoring/promtail/helmrelease.yaml @@ -0,0 +1,22 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: promtail-release +spec: + chart: + spec: + chart: grafana/promtail + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: grafana-repo + version: 6.16.4 + valuesFiles: + - values.yaml + interval: 1m0s + targetNamespace: monitoring + values: + config: + clients: + - url: http://loki.monitoring.svc.cluster.local/loki/api/v1/push + tenant_id: 1 \ No newline at end of file diff --git a/clusters/kairos/monitoring/promtail/kustomization.yaml b/clusters/kairos/monitoring/promtail/kustomization.yaml new file mode 100644 index 0000000..eb5482e --- /dev/null +++ b/clusters/kairos/monitoring/promtail/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- helmrelease.yaml \ No newline at end of file