---
apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-loki-0.48.8-d2iq-defaults
  namespace: ${releaseNamespace}
data:
  values.yaml: |
    loki:
      ingesterFullname: loki-ingester
      annotations:
        secret.reloader.stakater.com/reload: dkp-loki

      config: |
        auth_enabled: false
        analytics:
          reporting_enabled: false
        server:
          http_listen_port: 3100
          log_level: warn
          grpc_server_max_recv_msg_size: 10485760
          # grpc_server_max_send_msg_size should be set at least to the maximum logs size expected in a single push request.
          grpc_server_max_send_msg_size: 10485760
        distributor:
          ring:
            kvstore:
              store: memberlist
        memberlist:
          join_members:
            - {{ include "loki.fullname" . }}-memberlist
        ingester:
          lifecycler:
            ring:
              kvstore:
                store: memberlist
              replication_factor: 1
          chunk_idle_period: 30m
          chunk_block_size: 262144
          chunk_encoding: snappy
          chunk_retain_period: 1m
          max_transfer_retries: 0
          flush_op_timeout: 10m
          wal:
            enabled: true
            flush_on_shutdown: false
            checkpoint_duration: 5m
            replay_memory_ceiling: 4GB
            dir: /var/loki/wal
        limits_config:
          retention_period: 168h
          enforce_metric_name: false
          reject_old_samples: true
          reject_old_samples_max_age: 168h
          max_cache_freshness_per_query: 10m
          split_queries_by_interval: 15m
          ingestion_rate_mb: 10
          # ingestion_burst_size_mb should be set at least to the maximum logs size expected in a single push request.
          ingestion_burst_size_mb: 10
          per_stream_rate_limit: 10MB
          per_stream_rate_limit_burst: 15MB
          # defaults to 30, but ceph components populates 30+ labels that need us to bump this limit.
          max_label_names_per_series: 40
        schema_config:
          configs:
            - from: 2020-09-07
              store: boltdb-shipper
              object_store: aws
              schema: v11
              index:
                prefix: loki_index_
                period: 24h
        storage_config:
          boltdb_shipper:
            shared_store: s3
            active_index_directory: /var/loki/index
            cache_location: /var/loki/cache
            cache_ttl: 168h
          aws:
            s3: "http://rook-ceph-rgw-dkp-object-store.${releaseNamespace}.svc:80/dkp-loki"
            s3forcepathstyle: true
        chunk_store_config:
          max_look_back_period: 0s
        query_range:
          align_queries_with_step: true
          max_retries: 5
          cache_results: true
          results_cache:
            cache:
              enable_fifocache: true
              fifocache:
                max_size_items: 1024
                validity: 24h
        frontend_worker:
          frontend_address: {{ include "loki.queryFrontendFullname" . }}:9095
        frontend:
          log_queries_longer_than: 5s
          compress_responses: true
          tail_proxy_url: http://{{ include "loki.querierFullname" . }}:3100
        compactor:
          shared_store: s3
          retention_enabled: true
          compaction_interval: 10m # Default is 10m
          retention_delete_delay: 2h # Default is 2h
        ruler:
          storage:
            type: local
            local:
              directory: /etc/loki/rules
          ring:
            kvstore:
              store: memberlist
          rule_path: /tmp/loki/scratch
          alertmanager_url: http://kube-prometheus-stack-alertmanager.${releaseNamespace}.svc.cluster.local:9093
          external_url: http://kube-prometheus-stack-alertmanager.${releaseNamespace}.svc.cluster.local:9093

    ingester:
      replicas: 1
      serviceLabels:
        servicemonitor.kommander.mesosphere.io/path: "metrics"
        servicemonitor.kommander.mesosphere.io/port: "http"
      persistence:
        enabled: true
        size: 10Gi
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki

    querier:
      replicas: 1
      serviceLabels:
        servicemonitor.kommander.mesosphere.io/path: "metrics"
        servicemonitor.kommander.mesosphere.io/port: "http"
      persistence:
        enabled: true
        size: 10Gi
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki

    queryFrontend:
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki

    compactor:
      enabled: true
      serviceLabels:
        servicemonitor.kommander.mesosphere.io/path: "metrics"
        servicemonitor.kommander.mesosphere.io/port: "http"
      persistence:
        enabled: true
        size: 10Gi
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki

    ruler:
      enabled: false
      replicas: 1
      serviceLabels:
        servicemonitor.kommander.mesosphere.io/path: "metrics"
        servicemonitor.kommander.mesosphere.io/port: "http"
      persistence:
        enabled: true
        size: 10Gi
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki
      # -- Directories containing rules files
      directories:
        grafana-loki-rules: {}

    gateway:
      image:
        # Override nginx image to address known CVEs.
        # As of 0.48.4, chart maintainers are still using 1.19-alpine.
        tag: 1.22.0-alpine
      nginxConfig:
        httpSnippet: |-
          client_max_body_size 10M;
        serverSnippet: |-
          client_max_body_size 10M;
      verboseLogging: false

    distributor:
      serviceLabels:
        servicemonitor.kommander.mesosphere.io/path: "metrics"
        servicemonitor.kommander.mesosphere.io/port: "http"
      extraEnvFrom:
        - secretRef:
            # s3 access and secret keys
            name: dkp-loki