image: repository: tccr.io/truecharts/loki pullPolicy: IfNotPresent tag: 2.7.4@sha256:16ecd195a1944bd31790ca9dfc6534041ad5e3ec3ecb7212d49a79b082f5d3f7 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 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 portal: enabled: true