--- # yaml-language-server: $schema=https://ks.hsn.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: loki spec: interval: 30m timeout: 15m chart: spec: chart: loki version: 6.1.0 sourceRef: kind: HelmRepository name: grafana namespace: flux-system install: remediation: retries: 3 upgrade: cleanupOnFail: true remediation: retries: 3 uninstall: keepHistory: false dependsOn: - name: openebs namespace: openebs-system - name: rook-ceph-cluster namespace: rook-ceph - name: vector-agent namespace: observability - name: vector-aggregator namespace: observability values: deploymentMode: SimpleScalable loki: podAnnotations: secret.reloader.stakater.com/reload: loki-secret ingester: chunk_encoding: snappy storage: type: s3 bucketNames: chunks: loki-chunks ruler: loki-ruler admin: loki-admin s3: s3ForcePathStyle: true schemaConfig: configs: - from: "2024-04-01" store: tsdb object_store: s3 schema: v13 index: prefix: loki_index_ period: 24h structuredConfig: auth_enabled: false server: log_level: info http_listen_port: 3100 grpc_listen_port: 9095 memberlist: join_members: ["loki-memberlist"] limits_config: retention_period: 14d enforce_metric_name: false reject_old_samples: true reject_old_samples_max_age: 168h max_cache_freshness_per_query: 10m split_queries_by_interval: 1h max_query_parallelism: 100 ingestion_rate_mb: 50 ingestion_burst_size_mb: 1000 per_stream_rate_limit: 5MB per_stream_rate_limit_burst: 20MB shard_streams: enabled: true query_scheduler: max_outstanding_requests_per_tenant: 4096 frontend: max_outstanding_per_tenant: 4096 common: path_prefix: /var/loki replication_factor: 2 storage: s3: s3: null insecure: true s3forcepathstyle: true ring: kvstore: store: memberlist ruler: enable_api: true enable_alertmanager_v2: true alertmanager_url: http://alertmanager-operated.observability.svc.cluster.local:9093 storage: type: local local: directory: /rules rule_path: /tmp/scratch ring: kvstore: store: memberlist distributor: ring: kvstore: store: memberlist ingester: max_chunk_age: 1h lifecycler: ring: kvstore: store: memberlist analytics: reporting_enabled: false gateway: replicas: 3 enabled: true image: registry: ghcr.io repository: nginxinc/nginx-unprivileged tag: 1.25-alpine@sha256:5b49ce26ad8555b649a5a5ea8ccdfabc742a284ab58cb7b7d7a56f178c5dd351 deploymentStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 50% maxSurge: 50% topologySpreadConstraints: - maxSkew: 2 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app.kubernetes.io/name: loki app.kubernetes.io/component: gateway ingress: enabled: true ingressClassName: internal-nginx hosts: - host: &host loki.jahanson.tech paths: - path: / pathType: Prefix tls: - hosts: - *host write: replicas: 3 persistence: storageClass: openebs-hostpath read: replicas: 3 persistence: storageClass: openebs-hostpath extraVolumeMounts: - name: rules mountPath: /rules extraVolumes: - name: rules emptyDir: {} backend: replicas: 3 persistence: storageClass: openebs-hostpath extraVolumeMounts: - name: rules mountPath: /rules/fake - name: scratch mountPath: /tmp/scratch extraVolumes: - name: rules configMap: name: loki-alerting-rules - name: scratch emptyDir: {} monitoring: dashboards: annotations: grafana_folder: Loki rules: enabled: false serviceMonitor: enabled: false metricsInstance: enabled: false selfMonitoring: enabled: false grafanaAgent: installOperator: false lokiCanary: enabled: false test: enabled: false valuesFrom: - kind: Secret name: loki-secret valuesKey: S3_BUCKET_HOST targetPath: loki.storage.s3.endpoint - kind: Secret name: loki-secret valuesKey: S3_BUCKET_REGION targetPath: loki.storage.s3.region - kind: Secret name: loki-secret valuesKey: S3_ACCESS_KEY targetPath: loki.storage.s3.accessKeyId - kind: Secret name: loki-secret valuesKey: S3_SECRET_KEY targetPath: loki.storage.s3.secretAccessKey