cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit d2ccbe048bf183158e7f0d5b29f6e90a3b9910b7
parent 4212b597fea46af43c2386d2aba7ed168ba351da
Author: MTRNord <mtrnord1@gmail.com>
Date:   Tue,  6 Jun 2023 15:26:57 +0200

Add loki stack

Diffstat:
Aapps/base/loki-stack/kustomization.yaml | 6++++++
Aapps/base/loki-stack/release.yaml | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/loki-stack/repository.yaml | 8++++++++
Mapps/production/kustomization.yaml | 2++
Aapps/production/loki-stack-values.yaml | 33+++++++++++++++++++++++++++++++++
5 files changed, 174 insertions(+), 0 deletions(-)

diff --git a/apps/base/loki-stack/kustomization.yaml b/apps/base/loki-stack/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: monitoring +resources: + - repository.yaml + - release.yaml diff --git a/apps/base/loki-stack/release.yaml b/apps/base/loki-stack/release.yaml @@ -0,0 +1,125 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: loki-stack + namespace: monitoring +spec: + interval: 5m + chart: + spec: + version: "2.9.x" + chart: loki-stack + sourceRef: + kind: HelmRepository + name: loki-stack + interval: 60m + install: + crds: Create + upgrade: + crds: CreateReplace + # Force recreation due to Helm not properly patching Deployment with e.g. added port, + # causing spurious drift detection + force: true + # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml + values: + loki: + enabled: true + isDefault: false + config: + storage_config: + boltdb_shipper: + active_index_directory: /data/loki/boltdb-shipper-active + cache_location: /data/loki/boltdb-shipper-cache + resync_interval: 5s + cache_ttl: 24h + shared_store: s3 + compactor: + compaction_interval: 10m + retention_enabled: true + deletion_mode: filter-and-delete + retention_delete_delay: 2h + retention_delete_worker_count: 150 + limits_config: + retention_period: 336h + frontend: + max_outstanding_per_tenant: 2048 + query_scheduler: + max_outstanding_requests_per_tenant: 2048 + persistence: + enabled: false + accessModes: + - ReadWriteOnce + size: 10Gi + annotations: {} + labels: {} + + promtail: + enabled: true + config: + lokiAddress: http://{{ .Release.Name }}:3100/loki/api/v1/push + + fluent-bit: + enabled: false + + grafana: + enabled: false + sidecar: + datasources: + enabled: true + maxLines: 1000 + image: + tag: 8.3.5 + + prometheus: + enabled: false + isDefault: false + + filebeat: + enabled: false + filebeatConfig: + filebeat.yml: | + # logging.level: debug + filebeat.inputs: + - type: container + paths: + - /var/log/containers/*.log + processors: + - add_kubernetes_metadata: + host: ${NODE_NAME} + matchers: + - logs_path: + logs_path: "/var/log/containers/" + output.logstash: + hosts: ["logstash-loki:5044"] + logstash: + enabled: false + image: grafana/logstash-output-loki + imageTag: 1.0.1 + filters: + main: |- + filter { + if [kubernetes] { + mutate { + add_field => { + "container_name" => "%{[kubernetes][container][name]}" + "namespace" => "%{[kubernetes][namespace]}" + "pod" => "%{[kubernetes][pod][name]}" + } + replace => { "host" => "%{[kubernetes][node][name]}"} + } + } + mutate { + remove_field => ["tags"] + } + } + outputs: + main: |- + output { + loki { + url => "http://loki:3100/loki/api/v1/push" + #username => "test" + #password => "test" + } + # stdout { codec => rubydebug } + } + diff --git a/apps/base/loki-stack/repository.yaml b/apps/base/loki-stack/repository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: loki-stack + namespace: monitoring +spec: + interval: 120m + url: https://grafana.github.io/helm-charts diff --git a/apps/production/kustomization.yaml b/apps/production/kustomization.yaml @@ -5,6 +5,7 @@ resources: - ../base/cosign - ../base/woodpecker - ../base/kube-prometheus-stack + - ../base/loki-stack - ../base/rook - ../base/postgres-operator - ../base/matrix @@ -15,6 +16,7 @@ patchesStrategicMerge: - vaultwarden-values.yaml - woodpecker-values.yaml - kube-prometheus-stack-values.yaml + - loki-stack-values.yaml - postgres-operator-values.yaml - media-repo-values.yaml - sliding-proxy-values.yaml diff --git a/apps/production/loki-stack-values.yaml b/apps/production/loki-stack-values.yaml @@ -0,0 +1,33 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: loki-stack + namespace: monitoring +spec: + values: + loki: + config: + storage_config: + aws: + s3: http://loki:gae9vohtaiyohchaexaephooh7fah4coo1jeeNookiPob3phahzeexadeechuxei@loki-hl.monitoring.svc.cluster.local.:9000/loki + s3forcepathstyle: true +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArU3dKK0YzOGF3Qkd5UHM5 + dzV4UG12THFzY2pUdjdmam81T1V2dnlFRXcwCk5SR0V2cjIrU2tNdFh5Y2NSRTZP + bVVGMzNpOUM0L21mZ091VTUxUmhwWGMKLS0tIExzRmVWYXN2SURrd3Fxdm1uOHpX + R05BUk5takMwSGx3L3BHOHh6blVicVkK2G4gcxBV2VBTv9QDhj9JuBSz0BDmNEXN + 2sO1/t7M2hAQ9sLi+7UZfwjC0vX+rV6W7Td8eJH2uhcVXowOBWJeNg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2023-06-06T13:19:48Z" + mac: ENC[AES256_GCM,data:0Aqu2d3G9/+A/bXdRVWMaGKBB/KgvxCVBdQ/F4TQFEdCyipKzuUzr2SpeaO50SFQs7YABnBjUsD98zIAcCreGNHlz57NPy3He1RTELr8Dfkx+8V7lo5ASHhKYr5IqAiE6uoHN8JSdOe0nWM4KfM0tWdqa8ONA6j/fGptKu4sEPg=,iv:zZ7fe0axSjDGW+dVsPvWIiPiVCDIrPRnAEvvepgHjW0=,tag:DACwNylVJhTS8x6fRk84/g==,type:str] + pgp: [] + encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$ + version: 3.7.3