image:
  repository: tccr.io/truecharts/loki
  pullPolicy: IfNotPresent
  tag: v2.6.0@sha256:f7d726309bd4e7272d41e5d233621d20edb35952c55bb2ed34790657ecacb833

controller:
  # -- Set the controller type.
  # Valid options are deployment, daemonset or statefulset
  type: statefulset
  # -- Number of desired pods
  replicas: 1
  # -- Set the controller upgrade strategy
  # For Deployments, valid values are Recreate (default) and RollingUpdate.
  # For StatefulSets, valid values are OnDelete and RollingUpdate (default).
  # DaemonSets ignore this.
  strategy: RollingUpdate
  rollingUpdate:
    # -- Set deployment RollingUpdate max unavailable
    unavailable: 1
    # -- Set deployment RollingUpdate max surge
    surge:
    # -- Set statefulset RollingUpdate partition
    partition:
  # -- ReplicaSet revision history limit
  revisionHistoryLimit: 3

args:
  - "-config.file=/etc/loki/loki.yaml"

## TODO add alertinggroups support like this
# configmap:
#   alerting:
#     enabled: true
#     data:
#       '{{ include "tc.common.names.fullname" . }}-alerting-rules.yaml': |-
#       {{- if gt (len .Values.alerting_groups) 0 }}
#           groups:
#           {{- toYaml .Values.alerting_groups | nindent 6 }}
#       {{- end }}

secret:
  config:
    enabled: true
    data:
      loki.yaml: |
          {{- tpl (toYaml .Values.config) . | nindent 8 }}

service:
  main:
    ports:
      main:
        protocol: HTTP
        targetPort: 3100
        port: 3100

probes:
  liveness:
    path: "/ready"

  readiness:
    path: "/ready"

  startup:
    path: "/ready"

config:
  # existingSecret:
  auth_enabled: false
  ingester:
    chunk_idle_period: 3m
    chunk_block_size: 262144
    chunk_retain_period: 1m
    max_transfer_retries: 0
    wal:
      dir: /data/loki/wal
    lifecycler:
      ring:
        kvstore:
          store: inmemory
        replication_factor: 1

      ## Different ring configs can be used. E.g. Consul
      # ring:
      #   store: consul
      #   replication_factor: 1
      #   consul:
      #     host: "consul:8500"
      #     prefix: ""
      #     http_client_timeout: "20s"
      #     consistent_reads: true
  limits_config:
    enforce_metric_name: false
    reject_old_samples: true
    reject_old_samples_max_age: 168h
  schema_config:
    configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h
  server:
    http_listen_port: 3100
  storage_config:
    boltdb_shipper:
      active_index_directory: /data/loki/boltdb-shipper-active
      cache_location: /data/loki/boltdb-shipper-cache
      cache_ttl: 24h         # Can be increased for faster performance over longer query periods, uses more disk space
      shared_store: filesystem
    filesystem:
      directory: /data/loki/chunks
  chunk_store_config:
    max_look_back_period: 0s
  table_manager:
    retention_deletes_enabled: false
    retention_period: 0s
  compactor:
    working_directory: /data/loki/boltdb-shipper-compactor
    shared_store: filesystem
# Needed for Alerting: https://grafana.com/docs/loki/latest/alerting/
# This is just a simple example, for more details: https://grafana.com/docs/loki/latest/configuration/#ruler_config
#  ruler:
#    storage:
#      type: local
#      local:
#        directory: /rules
#    rule_path: /tmp/scratch
#    alertmanager_url: http://alertmanager.svc.namespace:9093
#    ring:
#      kvstore:
#        store: inmemory
#    enable_api: true

# Specify Loki Alerting rules based on this documentation: https://grafana.com/docs/loki/latest/alerting/
# When specified, you also need to add a ruler config section above. An example is shown in the alerting docs.
alerting_groups: []
#  - name: example
#    rules:
#    - alert: HighThroughputLogStreams
#      expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
#      for: 2m

persistence:
  config:
    enabled: true
    type: secret
    # -- Specify the name of the configmap object to be mounted
    objectName: '{{ include "tc.common.names.fullname" . -}}-config'
    # -- Where to mount the volume in the main container.
    mountPath: "/etc/loki"

volumeClaimTemplates:
  data:
    enabled: true
    mountPath: "/data"

promtail:
  enabled: true
