blob: 70d853bca2ce8e841bfd79c6c63c297625d51b49 [file] [log] [blame]
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001global:
2 image:
3 # -- Overrides the Docker registry globally for all images
4 registry: null
5 # -- Overrides the priorityClassName for all pods
6 priorityClassName: null
7 # -- configures cluster domain ("cluster.local" by default)
8 clusterDomain: "cluster.local"
9 # -- configures DNS service name
10 dnsService: "kube-dns"
11 # -- configures DNS service namespace
12 dnsNamespace: "kube-system"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000013# -- Overrides the chart's name
14nameOverride: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000015# -- Overrides the chart's computed fullname
16fullnameOverride: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030017# -- Overrides the chart's cluster label
18clusterLabelOverride: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000019# -- Image pull secrets for Docker images
20imagePullSecrets: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000021kubectlImage:
22 # -- The Docker registry
23 registry: docker.io
24 # -- Docker image repository
25 repository: bitnami/kubectl
26 # -- Overrides the image tag whose default is the chart's appVersion
27 tag: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030028 # -- Overrides the image tag with an image digest
29 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000030 # -- Docker image pull policy
31 pullPolicy: IfNotPresent
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000032loki:
33 # Configures the readiness probe for all of the Loki pods
34 readinessProbe:
35 httpGet:
36 path: /ready
37 port: http-metrics
38 initialDelaySeconds: 30
39 timeoutSeconds: 1
40 image:
41 # -- The Docker registry
42 registry: docker.io
43 # -- Docker image repository
44 repository: grafana/loki
45 # -- Overrides the image tag whose default is the chart's appVersion
46 # TODO: needed for 3rd target backend functionality
47 # revert to null or latest once this behavior is relased
48 tag: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030049 # -- Overrides the image tag with an image digest
50 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000051 # -- Docker image pull policy
52 pullPolicy: IfNotPresent
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030053 # -- Common annotations for all deployments/StatefulSets
54 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000055 # -- Common annotations for all pods
56 podAnnotations: {}
57 # -- Common labels for all pods
58 podLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030059 # -- Common annotations for all services
60 serviceAnnotations: {}
61 # -- Common labels for all services
62 serviceLabels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000063 # -- The number of old ReplicaSets to retain to allow rollback
64 revisionHistoryLimit: 10
65 # -- The SecurityContext for Loki pods
66 podSecurityContext:
67 fsGroup: 10001
68 runAsGroup: 10001
69 runAsNonRoot: true
70 runAsUser: 10001
71 # -- The SecurityContext for Loki containers
72 containerSecurityContext:
73 readOnlyRootFilesystem: true
74 capabilities:
75 drop:
76 - ALL
77 allowPrivilegeEscalation: false
78 # -- Should enableServiceLinks be enabled. Default to enable
79 enableServiceLinks: true
80 # -- Specify an existing secret containing loki configuration. If non-empty, overrides `loki.config`
81 existingSecretForConfig: ""
Giovanni Tirloni52306ad2024-04-12 15:35:05 -030082 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
83 # In order to move sensitive information (such as credentials) from the ConfigMap/Secret to a more secure location (e.g. vault), it is possible to use [environment variables in the configuration](https://grafana.com/docs/loki/latest/configuration/#use-environment-variables-in-the-configuration).
84 # Such environment variables can be then stored in a separate Secret and injected via the global.extraEnvFrom value. For details about environment injection from a Secret please see [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables).
85 configStorageType: ConfigMap
86 # -- Name of the Secret or ConfigMap that contains the configuration (used for naming even if config is internal).
87 externalConfigSecretName: '{{ include "loki.name" . }}'
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000088 # -- Config file contents for Loki
89 # @default -- See values.yaml
90 config: |
91 {{- if .Values.enterprise.enabled}}
92 {{- tpl .Values.enterprise.config . }}
93 {{- else }}
94 auth_enabled: {{ .Values.loki.auth_enabled }}
95 {{- end }}
96
97 {{- with .Values.loki.server }}
98 server:
99 {{- toYaml . | nindent 2}}
100 {{- end}}
101
102 memberlist:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300103 {{- if .Values.loki.memberlistConfig }}
104 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
105 {{- else }}
106 {{- if .Values.loki.extraMemberlistConfig}}
107 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
108 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000109 join_members:
110 - {{ include "loki.memberlist" . }}
111 {{- with .Values.migrate.fromDistributed }}
112 {{- if .enabled }}
113 - {{ .memberlistService }}
114 {{- end }}
115 {{- end }}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300116 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000117
118 {{- with .Values.loki.ingester }}
119 ingester:
120 {{- tpl (. | toYaml) $ | nindent 4 }}
121 {{- end }}
122
123 {{- if .Values.loki.commonConfig}}
124 common:
125 {{- toYaml .Values.loki.commonConfig | nindent 2}}
126 storage:
127 {{- include "loki.commonStorageConfig" . | nindent 4}}
128 {{- end}}
129
130 {{- with .Values.loki.limits_config }}
131 limits_config:
132 {{- tpl (. | toYaml) $ | nindent 4 }}
133 {{- end }}
134
135 runtime_config:
136 file: /etc/loki/runtime-config/runtime-config.yaml
137
138 {{- with .Values.loki.memcached.chunk_cache }}
139 {{- if and .enabled (or .host .addresses) }}
140 chunk_store_config:
141 chunk_cache_config:
142 memcached:
143 batch_size: {{ .batch_size }}
144 parallelism: {{ .parallelism }}
145 memcached_client:
146 {{- if .host }}
147 host: {{ .host }}
148 {{- end }}
149 {{- if .addresses }}
150 addresses: {{ .addresses }}
151 {{- end }}
152 service: {{ .service }}
153 {{- end }}
154 {{- end }}
155
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300156 {{- if .Values.loki.schemaConfig }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000157 schema_config:
158 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
159 {{- else }}
160 schema_config:
161 configs:
162 - from: 2022-01-11
163 store: boltdb-shipper
164 object_store: {{ .Values.loki.storage.type }}
165 schema: v12
166 index:
167 prefix: loki_index_
168 period: 24h
169 {{- end }}
170
171 {{ include "loki.rulerConfig" . }}
172
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300173 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000174 table_manager:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300175 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
176 retention_period: {{ .Values.tableManager.retention_period }}
177 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000178
179 {{- with .Values.loki.memcached.results_cache }}
180 query_range:
181 align_queries_with_step: true
182 {{- if and .enabled (or .host .addresses) }}
183 cache_results: {{ .enabled }}
184 results_cache:
185 cache:
186 default_validity: {{ .default_validity }}
187 memcached_client:
188 {{- if .host }}
189 host: {{ .host }}
190 {{- end }}
191 {{- if .addresses }}
192 addresses: {{ .addresses }}
193 {{- end }}
194 service: {{ .service }}
195 timeout: {{ .timeout }}
196 {{- end }}
197 {{- end }}
198
199 {{- with .Values.loki.storage_config }}
200 storage_config:
201 {{- tpl (. | toYaml) $ | nindent 4 }}
202 {{- end }}
203
204 {{- with .Values.loki.query_scheduler }}
205 query_scheduler:
206 {{- tpl (. | toYaml) $ | nindent 4 }}
207 {{- end }}
208
209 {{- with .Values.loki.compactor }}
210 compactor:
211 {{- tpl (. | toYaml) $ | nindent 4 }}
212 {{- end }}
213
214 {{- with .Values.loki.analytics }}
215 analytics:
216 {{- tpl (. | toYaml) $ | nindent 4 }}
217 {{- end }}
218
219 {{- with .Values.loki.querier }}
220 querier:
221 {{- tpl (. | toYaml) $ | nindent 4 }}
222 {{- end }}
223
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300224 {{- with .Values.loki.index_gateway }}
225 index_gateway:
226 {{- tpl (. | toYaml) $ | nindent 4 }}
227 {{- end }}
228
229 {{- with .Values.loki.frontend }}
230 frontend:
231 {{- tpl (. | toYaml) $ | nindent 4 }}
232 {{- end }}
233
234 {{- with .Values.loki.frontend_worker }}
235 frontend_worker:
236 {{- tpl (. | toYaml) $ | nindent 4 }}
237 {{- end }}
238
239 {{- with .Values.loki.distributor }}
240 distributor:
241 {{- tpl (. | toYaml) $ | nindent 4 }}
242 {{- end }}
243
244 tracing:
245 enabled: {{ .Values.loki.tracing.enabled }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000246 # Should authentication be enabled
247 auth_enabled: true
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300248 # -- memberlist configuration (overrides embedded default)
249 memberlistConfig: {}
250 # -- Extra memberlist configuration
251 extraMemberlistConfig: {}
252 # -- Tenants list to be created on nginx htpasswd file, with name and password keys
253 tenants: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000254 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
255 server:
256 http_listen_port: 3100
257 grpc_listen_port: 9095
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000258 # -- Limits config
259 limits_config:
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000260 reject_old_samples: true
261 reject_old_samples_max_age: 168h
262 max_cache_freshness_per_query: 10m
263 split_queries_by_interval: 15m
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000264 # -- Provides a reloadable runtime configuration file for some specific configuration
265 runtimeConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000266 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
267 commonConfig:
268 path_prefix: /var/loki
269 replication_factor: 3
270 compactor_address: '{{ include "loki.compactorAddress" . }}'
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000271 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
272 storage:
273 bucketNames:
274 chunks: chunks
275 ruler: ruler
276 admin: admin
277 type: s3
278 s3:
279 s3: null
280 endpoint: null
281 region: null
282 secretAccessKey: null
283 accessKeyId: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300284 signatureVersion: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000285 s3ForcePathStyle: false
286 insecure: false
287 http_config: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300288 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
289 backoff_config: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000290 gcs:
291 chunkBufferSize: 0
292 requestTimeout: "0s"
293 enableHttp2: true
294 azure:
295 accountName: null
296 accountKey: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300297 connectionString: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000298 useManagedIdentity: false
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300299 useFederatedToken: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000300 userAssignedId: null
301 requestTimeout: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300302 endpointSuffix: null
303 swift:
304 auth_version: null
305 auth_url: null
306 internal: null
307 username: null
308 user_domain_name: null
309 user_domain_id: null
310 user_id: null
311 password: null
312 domain_id: null
313 domain_name: null
314 project_id: null
315 project_name: null
316 project_domain_id: null
317 project_domain_name: null
318 region_name: null
319 container_name: null
320 max_retries: null
321 connect_timeout: null
322 request_timeout: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000323 filesystem:
324 chunks_directory: /var/loki/chunks
325 rules_directory: /var/loki/rules
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000326 # -- Configure memcached as an external cache for chunk and results cache. Disabled by default
327 # must enable and specify a host for each cache you would like to use.
328 memcached:
329 chunk_cache:
330 enabled: false
331 host: ""
332 service: "memcached-client"
333 batch_size: 256
334 parallelism: 10
335 results_cache:
336 enabled: false
337 host: ""
338 service: "memcached-client"
339 timeout: "500ms"
340 default_validity: "12h"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000341 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
342 schemaConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000343 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
344 rulerConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000345 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
346 structuredConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000347 # -- Additional query scheduler config
348 query_scheduler: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000349 # -- Additional storage config
350 storage_config:
351 hedging:
352 at: "250ms"
353 max_per_second: 20
354 up_to: 3
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000355 # -- Optional compactor configuration
356 compactor: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000357 # -- Optional analytics configuration
358 analytics: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000359 # -- Optional querier configuration
360 querier: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000361 # -- Optional ingester configuration
362 ingester: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300363 # -- Optional index gateway configuration
364 index_gateway:
365 mode: ring
366 frontend:
367 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
368 frontend_worker:
369 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
370 # -- Optional distributor configuration
371 distributor: {}
372 # -- Enable tracing
373 tracing:
374 enabled: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000375enterprise:
376 # Enable enterprise features, license must be provided
377 enabled: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000378 # Default verion of GEL to deploy
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300379 version: v1.8.6
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000380 # -- Optional name of the GEL cluster, otherwise will use .Release.Name
381 # The cluster name must match what is in your GEL license
382 cluster_name: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000383 # -- Grafana Enterprise Logs license
384 # In order to use Grafana Enterprise Logs features, you will need to provide
385 # the contents of your Grafana Enterprise Logs license, either by providing the
386 # contents of the license.jwt, or the name Kubernetes Secret that contains your
387 # license.jwt.
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300388 # To set the license contents, use the flag `--set-file 'enterprise.license.contents=./license.jwt'`
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000389 license:
390 contents: "NOTAVALIDLICENSE"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000391 # -- Set to true when providing an external license
392 useExternalLicense: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000393 # -- Name of external license secret to use
394 externalLicenseName: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000395 # -- Name of the external config secret to use
396 externalConfigName: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000397 # -- If enabled, the correct admin_client storage will be configured. If disabled while running enterprise,
398 # make sure auth is set to `type: trust`, or that `auth_enabled` is set to `false`.
399 adminApi:
400 enabled: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000401 # enterprise specific sections of the config.yaml file
402 config: |
403 {{- if .Values.enterprise.adminApi.enabled }}
404 {{- if or .Values.minio.enabled (eq .Values.loki.storage.type "s3") (eq .Values.loki.storage.type "gcs") (eq .Values.loki.storage.type "azure") }}
405 admin_client:
406 storage:
407 s3:
408 bucket_name: {{ .Values.loki.storage.bucketNames.admin }}
409 {{- end }}
410 {{- end }}
411 auth:
412 type: {{ .Values.enterprise.adminApi.enabled | ternary "enterprise" "trust" }}
413 auth_enabled: {{ .Values.loki.auth_enabled }}
414 cluster_name: {{ include "loki.clusterName" . }}
415 license:
416 path: /etc/loki/license/license.jwt
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000417 image:
418 # -- The Docker registry
419 registry: docker.io
420 # -- Docker image repository
421 repository: grafana/enterprise-logs
422 # -- Docker image tag
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300423 tag: null
424 # -- Overrides the image tag with an image digest
425 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000426 # -- Docker image pull policy
427 pullPolicy: IfNotPresent
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000428 adminToken:
429 # -- Alternative name for admin token secret, needed by tokengen and provisioner jobs
430 secret: null
431 # -- Additional namespace to also create the token in. Useful if your Grafana instance
432 # is in a different namespace
433 additionalNamespaces: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000434 # -- Alternative name of the secret to store token for the canary
435 canarySecret: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000436 # -- Configuration for `tokengen` target
437 tokengen:
438 # -- Whether the job should be part of the deployment
439 enabled: true
440 # -- Comma-separated list of Loki modules to load for tokengen
441 targetModule: "tokengen"
442 # -- Additional CLI arguments for the `tokengen` target
443 extraArgs: []
444 # -- Additional Kubernetes environment
445 env: []
446 # -- Additional labels for the `tokengen` Job
447 labels: {}
448 # -- Additional annotations for the `tokengen` Job
449 annotations: {}
450 # -- Tolerations for tokengen Job
451 tolerations: []
452 # -- Additional volumes for Pods
453 extraVolumes: []
454 # -- Additional volume mounts for Pods
455 extraVolumeMounts: []
456 # -- Run containers as user `enterprise-logs(uid=10001)`
457 securityContext:
458 runAsNonRoot: true
459 runAsGroup: 10001
460 runAsUser: 10001
461 fsGroup: 10001
462 # -- Environment variables from secrets or configmaps to add to the tokengen pods
463 extraEnvFrom: []
464 # -- The name of the PriorityClass for tokengen Pods
465 priorityClassName: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000466 # -- Configuration for `provisioner` target
467 provisioner:
468 # -- Whether the job should be part of the deployment
469 enabled: true
470 # -- Name of the secret to store provisioned tokens in
471 provisionedSecretPrefix: null
472 # -- Additional tenants to be created. Each tenant will get a read and write policy
473 # and associated token. Tenant must have a name and a namespace for the secret containting
474 # the token to be created in. For example
475 # additionalTenants:
476 # - name: loki
477 # secretNamespace: grafana
478 additionalTenants: []
479 # -- Additional Kubernetes environment
480 env: []
481 # -- Additional labels for the `provisioner` Job
482 labels: {}
483 # -- Additional annotations for the `provisioner` Job
484 annotations: {}
485 # -- The name of the PriorityClass for provisioner Job
486 priorityClassName: null
487 # -- Run containers as user `enterprise-logs(uid=10001)`
488 securityContext:
489 runAsNonRoot: true
490 runAsGroup: 10001
491 runAsUser: 10001
492 fsGroup: 10001
493 # -- Provisioner image to Utilize
494 image:
495 # -- The Docker registry
496 registry: docker.io
497 # -- Docker image repository
498 repository: grafana/enterprise-logs-provisioner
499 # -- Overrides the image tag whose default is the chart's appVersion
500 tag: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300501 # -- Overrides the image tag with an image digest
502 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000503 # -- Docker image pull policy
504 pullPolicy: IfNotPresent
505 # -- Volume mounts to add to the provisioner pods
506 extraVolumeMounts: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000507# -- Options that may be necessary when performing a migration from another helm chart
508migrate:
509 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
510 fromDistributed:
511 # -- Set to true if migrating from a distributed helm chart
512 enabled: false
513 # -- If migrating from a distributed service, provide the distributed deployment's
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300514 # memberlist service DNS so the new deployment can join its ring.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000515 memberlistService: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000516serviceAccount:
517 # -- Specifies whether a ServiceAccount should be created
518 create: true
519 # -- The name of the ServiceAccount to use.
520 # If not set and create is true, a name is generated using the fullname template
521 name: null
522 # -- Image pull secrets for the service account
523 imagePullSecrets: []
524 # -- Annotations for the service account
525 annotations: {}
526 # -- Labels for the service account
527 labels: {}
528 # -- Set this toggle to false to opt out of automounting API credentials for the service account
529 automountServiceAccountToken: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000530# RBAC configuration
531rbac:
532 # -- If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.
533 pspEnabled: false
534 # -- For OpenShift set pspEnabled to 'false' and sccEnabled to 'true' to use the SecurityContextConstraints.
535 sccEnabled: false
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300536 # -- Specify PSP annotations
537 # Ref: https://kubernetes.io/docs/reference/access-authn-authz/psp-to-pod-security-standards/#podsecuritypolicy-annotations
538 pspAnnotations: {}
539 # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
540 # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
541 # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
542 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
543 namespaced: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000544# -- Section for configuring optional Helm test
545test:
546 enabled: true
547 # -- Address of the prometheus server to query for the test
548 prometheusAddress: "http://prometheus:9090"
549 # -- Number of times to retry the test before failing
550 timeout: 1m
551 # -- Additional labels for the test pods
552 labels: {}
553 # -- Additional annotations for test pods
554 annotations: {}
555 # -- Image to use for loki canary
556 image:
557 # -- The Docker registry
558 registry: docker.io
559 # -- Docker image repository
560 repository: grafana/loki-helm-test
561 # -- Overrides the image tag whose default is the chart's appVersion
562 tag: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300563 # -- Overrides the image tag with an image digest
564 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000565 # -- Docker image pull policy
566 pullPolicy: IfNotPresent
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000567# Monitoring section determines which monitoring features to enable
568monitoring:
569 # Dashboards for monitoring Loki
570 dashboards:
571 # -- If enabled, create configmap with dashboards for monitoring Loki
572 enabled: true
573 # -- Alternative namespace to create dashboards ConfigMap in
574 namespace: null
575 # -- Additional annotations for the dashboards ConfigMap
576 annotations: {}
577 # -- Labels for the dashboards ConfigMap
578 labels:
579 grafana_dashboard: "1"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000580 # Recording rules for monitoring Loki, required for some dashboards
581 rules:
582 # -- If enabled, create PrometheusRule resource with Loki recording rules
583 enabled: true
584 # -- Include alerting rules
585 alerting: true
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300586 # -- Specify which individual alerts should be disabled
587 # -- Instead of turning off each alert one by one, set the .monitoring.rules.alerting value to false instead.
588 # -- If you disable all the alerts and keep .monitoring.rules.alerting set to true, the chart will fail to render.
589 disabled: {}
590 # LokiRequestErrors: true
591 # LokiRequestPanics: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000592 # -- Alternative namespace to create PrometheusRule resources in
593 namespace: null
594 # -- Additional annotations for the rules PrometheusRule resource
595 annotations: {}
596 # -- Additional labels for the rules PrometheusRule resource
597 labels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300598 # -- Additional labels for PrometheusRule alerts
599 additionalRuleLabels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000600 # -- Additional groups to add to the rules file
601 additionalGroups: []
602 # - name: additional-loki-rules
603 # rules:
604 # - record: job:loki_request_duration_seconds_bucket:sum_rate
605 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job)
606 # - record: job_route:loki_request_duration_seconds_bucket:sum_rate
607 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job, route)
608 # - record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
609 # expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (node, namespace, pod, container)
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000610 # ServiceMonitor configuration
611 serviceMonitor:
612 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
613 enabled: true
614 # -- Namespace selector for ServiceMonitor resources
615 namespaceSelector: {}
616 # -- ServiceMonitor annotations
617 annotations: {}
618 # -- Additional ServiceMonitor labels
619 labels: {}
620 # -- ServiceMonitor scrape interval
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300621 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
622 # least 1/4 rate interval.
623 interval: 15s
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000624 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
625 scrapeTimeout: null
626 # -- ServiceMonitor relabel configs to apply to samples before scraping
627 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
628 relabelings: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300629 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
630 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
631 metricRelabelings: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000632 # -- ServiceMonitor will use http by default, but you can pick https as well
633 scheme: http
634 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
635 tlsConfig: null
636 # -- If defined, will create a MetricsInstance for the Grafana Agent Operator.
637 metricsInstance:
638 # -- If enabled, MetricsInstance resources for Grafana Agent Operator are created
639 enabled: true
640 # -- MetricsInstance annotations
641 annotations: {}
642 # -- Additional MetricsInstance labels
643 labels: {}
644 # -- If defined a MetricsInstance will be created to remote write metrics.
645 remoteWrite: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300646 # Self monitoring determines whether Loki should scrape its own logs.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000647 # This feature currently relies on the Grafana Agent Operator being installed,
648 # which is installed by default using the grafana-agent-operator sub-chart.
649 # It will create custom resources for GrafanaAgent, LogsInstance, and PodLogs to configure
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300650 # scrape configs to scrape its own logs with the labels expected by the included dashboards.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000651 selfMonitoring:
652 enabled: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000653 # -- Tenant to use for self monitoring
654 tenant:
655 # -- Name of the tenant
656 name: "self-monitoring"
657 # -- Namespace to create additional tenant token secret in. Useful if your Grafana instance
658 # is in a separate namespace. Token will still be created in the canary namespace.
659 secretNamespace: "{{ .Release.Namespace }}"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000660 # Grafana Agent configuration
661 grafanaAgent:
662 # -- Controls whether to install the Grafana Agent Operator and its CRDs.
663 # Note that helm will not install CRDs if this flag is enabled during an upgrade.
664 # In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds
665 installOperator: true
666 # -- Grafana Agent annotations
667 annotations: {}
668 # -- Additional Grafana Agent labels
669 labels: {}
670 # -- Enable the config read api on port 8080 of the agent
671 enableConfigReadAPI: false
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300672 # -- The name of the PriorityClass for GrafanaAgent pods
673 priorityClassName: null
674 # -- Resource requests and limits for the grafanaAgent pods
675 resources: {}
676 # limits:
677 # memory: 200Mi
678 # requests:
679 # cpu: 50m
680 # memory: 100Mi
681 # -- Tolerations for GrafanaAgent pods
682 tolerations: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000683 # PodLogs configuration
684 podLogs:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300685 # -- PodLogs version
686 apiVersion: monitoring.grafana.com/v1alpha1
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000687 # -- PodLogs annotations
688 annotations: {}
689 # -- Additional PodLogs labels
690 labels: {}
691 # -- PodLogs relabel configs to apply to samples before scraping
692 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
693 relabelings: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300694 # -- Additional pipeline stages to process logs after scraping
695 # https://grafana.com/docs/agent/latest/operator/api/#pipelinestagespec-a-namemonitoringgrafanacomv1alpha1pipelinestagespeca
696 additionalPipelineStages: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000697 # LogsInstance configuration
698 logsInstance:
699 # -- LogsInstance annotations
700 annotations: {}
701 # -- Additional LogsInstance labels
702 labels: {}
703 # -- Additional clients for remote write
704 clients: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000705 # The Loki canary pushes logs to and queries from this loki installation to test
706 # that it's working correctly
707 lokiCanary:
708 enabled: true
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300709 # -- The name of the label to look for at loki when doing the checks.
710 labelname: pod
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000711 # -- Additional annotations for the `loki-canary` Daemonset
712 annotations: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300713 # -- Additional labels for each `loki-canary` pod
714 podLabels: {}
715 service:
716 # -- Annotations for loki-canary Service
717 annotations: {}
718 # -- Additional labels for loki-canary Service
719 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000720 # -- Additional CLI arguments for the `loki-canary' command
721 extraArgs: []
722 # -- Environment variables to add to the canary pods
723 extraEnv: []
724 # -- Environment variables from secrets or configmaps to add to the canary pods
725 extraEnvFrom: []
726 # -- Resource requests and limits for the canary
727 resources: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300728 # -- DNS config for canary pods
729 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000730 # -- Node selector for canary pods
731 nodeSelector: {}
732 # -- Tolerations for canary pods
733 tolerations: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300734 # -- The name of the PriorityClass for loki-canary pods
735 priorityClassName: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000736 # -- Image to use for loki canary
737 image:
738 # -- The Docker registry
739 registry: docker.io
740 # -- Docker image repository
741 repository: grafana/loki-canary
742 # -- Overrides the image tag whose default is the chart's appVersion
743 tag: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300744 # -- Overrides the image tag with an image digest
745 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000746 # -- Docker image pull policy
747 pullPolicy: IfNotPresent
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300748 # -- Update strategy for the `loki-canary` Daemonset pods
749 updateStrategy:
750 type: RollingUpdate
751 rollingUpdate:
752 maxUnavailable: 1
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000753# Configuration for the write pod(s)
754write:
755 # -- Number of replicas for the write
756 replicas: 3
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300757 autoscaling:
758 # -- Enable autoscaling for the write.
759 enabled: false
760 # -- Minimum autoscaling replicas for the write.
761 minReplicas: 2
762 # -- Maximum autoscaling replicas for the write.
763 maxReplicas: 6
764 # -- Target CPU utilisation percentage for the write.
765 targetCPUUtilizationPercentage: 60
766 # -- Target memory utilization percentage for the write.
767 targetMemoryUtilizationPercentage:
768 # -- Behavior policies while scaling.
769 behavior:
770 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
771 scaleUp:
772 policies:
773 - type: Pods
774 value: 1
775 periodSeconds: 900
776 scaleDown:
777 policies:
778 - type: Pods
779 value: 1
780 periodSeconds: 1800
781 stabilizationWindowSeconds: 3600
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000782 image:
783 # -- The Docker registry for the write image. Overrides `loki.image.registry`
784 registry: null
785 # -- Docker image repository for the write image. Overrides `loki.image.repository`
786 repository: null
787 # -- Docker image tag for the write image. Overrides `loki.image.tag`
788 tag: null
789 # -- The name of the PriorityClass for write pods
790 priorityClassName: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300791 # -- Annotations for write StatefulSet
792 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000793 # -- Annotations for write pods
794 podAnnotations: {}
795 # -- Additional labels for each `write` pod
796 podLabels: {}
797 # -- Additional selector labels for each `write` pod
798 selectorLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300799 service:
800 # -- Annotations for write Service
801 annotations: {}
802 # -- Additional labels for write Service
803 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000804 # -- Comma-separated list of Loki modules to load for the write
805 targetModule: "write"
806 # -- Additional CLI args for the write
807 extraArgs: []
808 # -- Environment variables to add to the write pods
809 extraEnv: []
810 # -- Environment variables from secrets or configmaps to add to the write pods
811 extraEnvFrom: []
812 # -- Lifecycle for the write container
813 lifecycle: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300814 # -- The default /flush_shutdown preStop hook is recommended as part of the ingester
815 # scaledown process so it's added to the template by default when autoscaling is enabled,
816 # but it's disabled to optimize rolling restarts in instances that will never be scaled
817 # down or when using chunks storage with WAL disabled.
818 # https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000819 # -- Init containers to add to the write pods
820 initContainers: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300821 # -- Containers to add to the write pods
822 extraContainers: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000823 # -- Volume mounts to add to the write pods
824 extraVolumeMounts: []
825 # -- Volumes to add to the write pods
826 extraVolumes: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300827 # -- volumeClaimTemplates to add to StatefulSet
828 extraVolumeClaimTemplates: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000829 # -- Resource requests and limits for the write
830 resources: {}
831 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
832 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
833 # all data and to successfully leave the member ring on shutdown.
834 terminationGracePeriodSeconds: 300
835 # -- Affinity for write pods. Passed through `tpl` and, thus, to be configured as string
836 # @default -- Hard node and soft zone anti-affinity
837 affinity: |
838 podAntiAffinity:
839 requiredDuringSchedulingIgnoredDuringExecution:
840 - labelSelector:
841 matchLabels:
842 {{- include "loki.writeSelectorLabels" . | nindent 10 }}
843 topologyKey: kubernetes.io/hostname
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300844 # -- DNS config for write pods
845 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000846 # -- Node selector for write pods
847 nodeSelector: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300848 # -- Topology Spread Constraints for write pods
849 topologySpreadConstraints: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000850 # -- Tolerations for write pods
851 tolerations: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300852 # -- The default is to deploy all pods in parallel.
853 podManagementPolicy: "Parallel"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000854 persistence:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300855 # -- Enable volume claims in pod spec
856 volumeClaimsEnabled: true
857 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
858 dataVolumeParameters:
859 emptyDir: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000860 # -- Enable StatefulSetAutoDeletePVC feature
861 enableStatefulSetAutoDeletePVC: false
862 # -- Size of persistent disk
863 size: 10Gi
864 # -- Storage class to be used.
865 # If defined, storageClassName: <storageClass>.
866 # If set to "-", storageClassName: "", which disables dynamic provisioning.
867 # If empty or set to null, no storageClassName spec is
868 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
869 storageClass: null
870 # -- Selector for persistent disk
871 selector: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000872# Configuration for the table-manager
873tableManager:
874 # -- Specifies whether the table-manager should be enabled
875 enabled: false
876 image:
877 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
878 registry: null
879 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
880 repository: null
881 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
882 tag: null
883 # -- Command to execute instead of defined in Docker image
884 command: null
885 # -- The name of the PriorityClass for table-manager pods
886 priorityClassName: null
887 # -- Labels for table-manager pods
888 podLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300889 # -- Annotations for table-manager deployment
890 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000891 # -- Annotations for table-manager pods
892 podAnnotations: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300893 service:
894 # -- Annotations for table-manager Service
895 annotations: {}
896 # -- Additional labels for table-manager Service
897 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000898 # -- Additional CLI args for the table-manager
899 extraArgs: []
900 # -- Environment variables to add to the table-manager pods
901 extraEnv: []
902 # -- Environment variables from secrets or configmaps to add to the table-manager pods
903 extraEnvFrom: []
904 # -- Volume mounts to add to the table-manager pods
905 extraVolumeMounts: []
906 # -- Volumes to add to the table-manager pods
907 extraVolumes: []
908 # -- Resource requests and limits for the table-manager
909 resources: {}
910 # -- Containers to add to the table-manager pods
911 extraContainers: []
912 # -- Grace period to allow the table-manager to shutdown before it is killed
913 terminationGracePeriodSeconds: 30
914 # -- Affinity for table-manager pods. Passed through `tpl` and, thus, to be configured as string
915 # @default -- Hard node and soft zone anti-affinity
916 affinity: |
917 podAntiAffinity:
918 requiredDuringSchedulingIgnoredDuringExecution:
919 - labelSelector:
920 matchLabels:
921 {{- include "loki.tableManagerSelectorLabels" . | nindent 10 }}
922 topologyKey: kubernetes.io/hostname
923 preferredDuringSchedulingIgnoredDuringExecution:
924 - weight: 100
925 podAffinityTerm:
926 labelSelector:
927 matchLabels:
928 {{- include "loki.tableManagerSelectorLabels" . | nindent 12 }}
929 topologyKey: failure-domain.beta.kubernetes.io/zone
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300930 # -- DNS config table-manager pods
931 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000932 # -- Node selector for table-manager pods
933 nodeSelector: {}
934 # -- Tolerations for table-manager pods
935 tolerations: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300936 # -- Enable deletes by retention
937 retention_deletes_enabled: false
938 # -- Set retention period
939 retention_period: 0
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000940# Configuration for the read pod(s)
941read:
942 # -- Number of replicas for the read
943 replicas: 3
944 autoscaling:
945 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
946 enabled: false
947 # -- Minimum autoscaling replicas for the read
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300948 minReplicas: 2
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000949 # -- Maximum autoscaling replicas for the read
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300950 maxReplicas: 6
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000951 # -- Target CPU utilisation percentage for the read
952 targetCPUUtilizationPercentage: 60
953 # -- Target memory utilisation percentage for the read
954 targetMemoryUtilizationPercentage:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300955 # -- Behavior policies while scaling.
956 behavior: {}
957 # scaleUp:
958 # stabilizationWindowSeconds: 300
959 # policies:
960 # - type: Pods
961 # value: 1
962 # periodSeconds: 60
963 # scaleDown:
964 # stabilizationWindowSeconds: 300
965 # policies:
966 # - type: Pods
967 # value: 1
968 # periodSeconds: 180
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000969 image:
970 # -- The Docker registry for the read image. Overrides `loki.image.registry`
971 registry: null
972 # -- Docker image repository for the read image. Overrides `loki.image.repository`
973 repository: null
974 # -- Docker image tag for the read image. Overrides `loki.image.tag`
975 tag: null
976 # -- The name of the PriorityClass for read pods
977 priorityClassName: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300978 # -- Annotations for read deployment
979 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000980 # -- Annotations for read pods
981 podAnnotations: {}
982 # -- Additional labels for each `read` pod
983 podLabels: {}
984 # -- Additional selector labels for each `read` pod
985 selectorLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300986 service:
987 # -- Annotations for read Service
988 annotations: {}
989 # -- Additional labels for read Service
990 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000991 # -- Comma-separated list of Loki modules to load for the read
992 targetModule: "read"
993 # -- Whether or not to use the 2 target type simple scalable mode (read, write) or the
994 # 3 target type (read, write, backend). Legacy refers to the 2 target type, so true will
995 # run two targets, false will run 3 targets.
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300996 legacyReadTarget: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000997 # -- Additional CLI args for the read
998 extraArgs: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300999 # -- Containers to add to the read pods
1000 extraContainers: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001001 # -- Environment variables to add to the read pods
1002 extraEnv: []
1003 # -- Environment variables from secrets or configmaps to add to the read pods
1004 extraEnvFrom: []
1005 # -- Lifecycle for the read container
1006 lifecycle: {}
1007 # -- Volume mounts to add to the read pods
1008 extraVolumeMounts: []
1009 # -- Volumes to add to the read pods
1010 extraVolumes: []
1011 # -- Resource requests and limits for the read
1012 resources: {}
1013 # -- Grace period to allow the read to shutdown before it is killed
1014 terminationGracePeriodSeconds: 30
1015 # -- Affinity for read pods. Passed through `tpl` and, thus, to be configured as string
1016 # @default -- Hard node and soft zone anti-affinity
1017 affinity: |
1018 podAntiAffinity:
1019 requiredDuringSchedulingIgnoredDuringExecution:
1020 - labelSelector:
1021 matchLabels:
1022 {{- include "loki.readSelectorLabels" . | nindent 10 }}
1023 topologyKey: kubernetes.io/hostname
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001024 # -- DNS config for read pods
1025 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001026 # -- Node selector for read pods
1027 nodeSelector: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001028 # -- Topology Spread Constraints for read pods
1029 topologySpreadConstraints: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001030 # -- Tolerations for read pods
1031 tolerations: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001032 # -- The default is to deploy all pods in parallel.
1033 podManagementPolicy: "Parallel"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001034 persistence:
1035 # -- Enable StatefulSetAutoDeletePVC feature
1036 enableStatefulSetAutoDeletePVC: true
1037 # -- Size of persistent disk
1038 size: 10Gi
1039 # -- Storage class to be used.
1040 # If defined, storageClassName: <storageClass>.
1041 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1042 # If empty or set to null, no storageClassName spec is
1043 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1044 storageClass: null
1045 # -- Selector for persistent disk
1046 selector: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001047# Configuration for the backend pod(s)
1048backend:
1049 # -- Number of replicas for the backend
1050 replicas: 3
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001051 autoscaling:
1052 # -- Enable autoscaling for the backend.
1053 enabled: false
1054 # -- Minimum autoscaling replicas for the backend.
1055 minReplicas: 3
1056 # -- Maximum autoscaling replicas for the backend.
1057 maxReplicas: 6
1058 # -- Target CPU utilization percentage for the backend.
1059 targetCPUUtilizationPercentage: 60
1060 # -- Target memory utilization percentage for the backend.
1061 targetMemoryUtilizationPercentage:
1062 # -- Behavior policies while scaling.
1063 behavior: {}
1064 # scaleUp:
1065 # stabilizationWindowSeconds: 300
1066 # policies:
1067 # - type: Pods
1068 # value: 1
1069 # periodSeconds: 60
1070 # scaleDown:
1071 # stabilizationWindowSeconds: 300
1072 # policies:
1073 # - type: Pods
1074 # value: 1
1075 # periodSeconds: 180
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001076 image:
1077 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
1078 registry: null
1079 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
1080 repository: null
1081 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
1082 tag: null
1083 # -- The name of the PriorityClass for backend pods
1084 priorityClassName: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001085 # -- Annotations for backend StatefulSet
1086 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001087 # -- Annotations for backend pods
1088 podAnnotations: {}
1089 # -- Additional labels for each `backend` pod
1090 podLabels: {}
1091 # -- Additional selector labels for each `backend` pod
1092 selectorLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001093 service:
1094 # -- Annotations for backend Service
1095 annotations: {}
1096 # -- Additional labels for backend Service
1097 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001098 # -- Comma-separated list of Loki modules to load for the read
1099 targetModule: "backend"
1100 # -- Additional CLI args for the backend
1101 extraArgs: []
1102 # -- Environment variables to add to the backend pods
1103 extraEnv: []
1104 # -- Environment variables from secrets or configmaps to add to the backend pods
1105 extraEnvFrom: []
1106 # -- Init containers to add to the backend pods
1107 initContainers: []
1108 # -- Volume mounts to add to the backend pods
1109 extraVolumeMounts: []
1110 # -- Volumes to add to the backend pods
1111 extraVolumes: []
1112 # -- Resource requests and limits for the backend
1113 resources: {}
1114 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
1115 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
1116 # all data and to successfully leave the member ring on shutdown.
1117 terminationGracePeriodSeconds: 300
1118 # -- Affinity for backend pods. Passed through `tpl` and, thus, to be configured as string
1119 # @default -- Hard node and soft zone anti-affinity
1120 affinity: |
1121 podAntiAffinity:
1122 requiredDuringSchedulingIgnoredDuringExecution:
1123 - labelSelector:
1124 matchLabels:
1125 {{- include "loki.backendSelectorLabels" . | nindent 10 }}
1126 topologyKey: kubernetes.io/hostname
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001127 # -- DNS config for backend pods
1128 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001129 # -- Node selector for backend pods
1130 nodeSelector: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001131 # -- Topology Spread Constraints for backend pods
1132 topologySpreadConstraints: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001133 # -- Tolerations for backend pods
1134 tolerations: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001135 # -- The default is to deploy all pods in parallel.
1136 podManagementPolicy: "Parallel"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001137 persistence:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001138 # -- Enable volume claims in pod spec
1139 volumeClaimsEnabled: true
1140 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1141 dataVolumeParameters:
1142 emptyDir: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001143 # -- Enable StatefulSetAutoDeletePVC feature
1144 enableStatefulSetAutoDeletePVC: true
1145 # -- Size of persistent disk
1146 size: 10Gi
1147 # -- Storage class to be used.
1148 # If defined, storageClassName: <storageClass>.
1149 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1150 # If empty or set to null, no storageClassName spec is
1151 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1152 storageClass: null
1153 # -- Selector for persistent disk
1154 selector: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001155# Configuration for the single binary node(s)
1156singleBinary:
1157 # -- Number of replicas for the single binary
1158 replicas: 0
1159 autoscaling:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001160 # -- Enable autoscaling
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001161 enabled: false
1162 # -- Minimum autoscaling replicas for the single binary
1163 minReplicas: 1
1164 # -- Maximum autoscaling replicas for the single binary
1165 maxReplicas: 3
1166 # -- Target CPU utilisation percentage for the single binary
1167 targetCPUUtilizationPercentage: 60
1168 # -- Target memory utilisation percentage for the single binary
1169 targetMemoryUtilizationPercentage:
1170 image:
1171 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1172 registry: null
1173 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1174 repository: null
1175 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1176 tag: null
1177 # -- The name of the PriorityClass for single binary pods
1178 priorityClassName: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001179 # -- Annotations for single binary StatefulSet
1180 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001181 # -- Annotations for single binary pods
1182 podAnnotations: {}
1183 # -- Additional labels for each `single binary` pod
1184 podLabels: {}
1185 # -- Additional selector labels for each `single binary` pod
1186 selectorLabels: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001187 service:
1188 # -- Annotations for single binary Service
1189 annotations: {}
1190 # -- Additional labels for single binary Service
1191 labels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001192 # -- Comma-separated list of Loki modules to load for the single binary
1193 targetModule: "all"
1194 # -- Labels for single binary service
1195 extraArgs: []
1196 # -- Environment variables to add to the single binary pods
1197 extraEnv: []
1198 # -- Environment variables from secrets or configmaps to add to the single binary pods
1199 extraEnvFrom: []
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001200 # -- Extra containers to add to the single binary loki pod
1201 extraContainers: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001202 # -- Init containers to add to the single binary pods
1203 initContainers: []
1204 # -- Volume mounts to add to the single binary pods
1205 extraVolumeMounts: []
1206 # -- Volumes to add to the single binary pods
1207 extraVolumes: []
1208 # -- Resource requests and limits for the single binary
1209 resources: {}
1210 # -- Grace period to allow the single binary to shutdown before it is killed
1211 terminationGracePeriodSeconds: 30
1212 # -- Affinity for single binary pods. Passed through `tpl` and, thus, to be configured as string
1213 # @default -- Hard node and soft zone anti-affinity
1214 affinity: |
1215 podAntiAffinity:
1216 requiredDuringSchedulingIgnoredDuringExecution:
1217 - labelSelector:
1218 matchLabels:
1219 {{- include "loki.singleBinarySelectorLabels" . | nindent 10 }}
1220 topologyKey: kubernetes.io/hostname
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001221 # -- DNS config for single binary pods
1222 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001223 # -- Node selector for single binary pods
1224 nodeSelector: {}
1225 # -- Tolerations for single binary pods
1226 tolerations: []
1227 persistence:
1228 # -- Enable StatefulSetAutoDeletePVC feature
1229 enableStatefulSetAutoDeletePVC: true
1230 # -- Enable persistent disk
1231 enabled: true
1232 # -- Size of persistent disk
1233 size: 10Gi
1234 # -- Storage class to be used.
1235 # If defined, storageClassName: <storageClass>.
1236 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1237 # If empty or set to null, no storageClassName spec is
1238 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1239 storageClass: null
1240 # -- Selector for persistent disk
1241 selector: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001242# Use either this ingress or the gateway, but not both at once.
1243# If you enable this, make sure to disable the gateway.
1244# You'll need to supply authn configuration for your ingress controller.
1245ingress:
1246 enabled: false
1247 ingressClassName: ""
1248 annotations: {}
1249 # nginx.ingress.kubernetes.io/auth-type: basic
1250 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1251 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1252 # nginx.ingress.kubernetes.io/configuration-snippet: |
1253 # proxy_set_header X-Scope-OrgID $remote_user;
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001254 labels: {}
1255 # blackbox.monitoring.exclude: "true"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001256 paths:
1257 write:
1258 - /api/prom/push
1259 - /loki/api/v1/push
1260 read:
1261 - /api/prom/tail
1262 - /loki/api/v1/tail
1263 - /loki/api
1264 - /api/prom/rules
1265 - /loki/api/v1/rules
1266 - /prometheus/api/v1/rules
1267 - /prometheus/api/v1/alerts
1268 singleBinary:
1269 - /api/prom/push
1270 - /loki/api/v1/push
1271 - /api/prom/tail
1272 - /loki/api/v1/tail
1273 - /loki/api
1274 - /api/prom/rules
1275 - /loki/api/v1/rules
1276 - /prometheus/api/v1/rules
1277 - /prometheus/api/v1/alerts
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001278 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001279 hosts:
1280 - loki.example.com
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001281 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001282 tls: []
1283# - hosts:
1284# - loki.example.com
1285# secretName: loki-distributed-tls
1286
1287# Configuration for the memberlist service
1288memberlist:
1289 service:
1290 publishNotReadyAddresses: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001291# Configuration for the gateway
1292gateway:
1293 # -- Specifies whether the gateway should be enabled
1294 enabled: true
1295 # -- Number of replicas for the gateway
1296 replicas: 1
1297 # -- Enable logging of 2xx and 3xx HTTP requests
1298 verboseLogging: true
1299 autoscaling:
1300 # -- Enable autoscaling for the gateway
1301 enabled: false
1302 # -- Minimum autoscaling replicas for the gateway
1303 minReplicas: 1
1304 # -- Maximum autoscaling replicas for the gateway
1305 maxReplicas: 3
1306 # -- Target CPU utilisation percentage for the gateway
1307 targetCPUUtilizationPercentage: 60
1308 # -- Target memory utilisation percentage for the gateway
1309 targetMemoryUtilizationPercentage:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001310 # -- See `kubectl explain deployment.spec.strategy` for more
1311 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1312 # -- Behavior policies while scaling.
1313 behavior: {}
1314 # scaleUp:
1315 # stabilizationWindowSeconds: 300
1316 # policies:
1317 # - type: Pods
1318 # value: 1
1319 # periodSeconds: 60
1320 # scaleDown:
1321 # stabilizationWindowSeconds: 300
1322 # policies:
1323 # - type: Pods
1324 # value: 1
1325 # periodSeconds: 180
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001326 deploymentStrategy:
1327 type: RollingUpdate
1328 image:
1329 # -- The Docker registry for the gateway image
1330 registry: docker.io
1331 # -- The gateway image repository
1332 repository: nginxinc/nginx-unprivileged
1333 # -- The gateway image tag
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001334 tag: 1.24-alpine
1335 # -- Overrides the gateway image tag with an image digest
1336 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001337 # -- The gateway image pull policy
1338 pullPolicy: IfNotPresent
1339 # -- The name of the PriorityClass for gateway pods
1340 priorityClassName: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001341 # -- Annotations for gateway deployment
1342 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001343 # -- Annotations for gateway pods
1344 podAnnotations: {}
1345 # -- Additional labels for gateway pods
1346 podLabels: {}
1347 # -- Additional CLI args for the gateway
1348 extraArgs: []
1349 # -- Environment variables to add to the gateway pods
1350 extraEnv: []
1351 # -- Environment variables from secrets or configmaps to add to the gateway pods
1352 extraEnvFrom: []
1353 # -- Lifecycle for the gateway container
1354 lifecycle: {}
1355 # -- Volumes to add to the gateway pods
1356 extraVolumes: []
1357 # -- Volume mounts to add to the gateway pods
1358 extraVolumeMounts: []
1359 # -- The SecurityContext for gateway containers
1360 podSecurityContext:
1361 fsGroup: 101
1362 runAsGroup: 101
1363 runAsNonRoot: true
1364 runAsUser: 101
1365 # -- The SecurityContext for gateway containers
1366 containerSecurityContext:
1367 readOnlyRootFilesystem: true
1368 capabilities:
1369 drop:
1370 - ALL
1371 allowPrivilegeEscalation: false
1372 # -- Resource requests and limits for the gateway
1373 resources: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001374 # -- Containers to add to the gateway pods
1375 extraContainers: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001376 # -- Grace period to allow the gateway to shutdown before it is killed
1377 terminationGracePeriodSeconds: 30
1378 # -- Affinity for gateway pods. Passed through `tpl` and, thus, to be configured as string
1379 # @default -- Hard node and soft zone anti-affinity
1380 affinity: |
1381 podAntiAffinity:
1382 requiredDuringSchedulingIgnoredDuringExecution:
1383 - labelSelector:
1384 matchLabels:
1385 {{- include "loki.gatewaySelectorLabels" . | nindent 10 }}
1386 topologyKey: kubernetes.io/hostname
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001387 # -- DNS config for gateway pods
1388 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001389 # -- Node selector for gateway pods
1390 nodeSelector: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001391 # -- Topology Spread Constraints for gateway pods
1392 topologySpreadConstraints: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001393 # -- Tolerations for gateway pods
1394 tolerations: []
1395 # Gateway service configuration
1396 service:
1397 # -- Port of the gateway service
1398 port: 80
1399 # -- Type of the gateway service
1400 type: ClusterIP
1401 # -- ClusterIP of the gateway service
1402 clusterIP: null
1403 # -- (int) Node port if service type is NodePort
1404 nodePort: null
1405 # -- Load balancer IPO address if service type is LoadBalancer
1406 loadBalancerIP: null
1407 # -- Annotations for the gateway service
1408 annotations: {}
1409 # -- Labels for gateway service
1410 labels: {}
1411 # Gateway ingress configuration
1412 ingress:
1413 # -- Specifies whether an ingress for the gateway should be created
1414 enabled: false
1415 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1416 ingressClassName: ""
1417 # -- Annotations for the gateway ingress
1418 annotations: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001419 # -- Labels for the gateway ingress
1420 labels: {}
1421 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001422 hosts:
1423 - host: gateway.loki.example.com
1424 paths:
1425 - path: /
1426 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1427 # pathType: Prefix
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001428 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001429 tls:
1430 - secretName: loki-gateway-tls
1431 hosts:
1432 - gateway.loki.example.com
1433 # Basic auth configuration
1434 basicAuth:
1435 # -- Enables basic authentication for the gateway
1436 enabled: false
1437 # -- The basic auth username for the gateway
1438 username: null
1439 # -- The basic auth password for the gateway
1440 password: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001441 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file
1442 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001443 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1444 # high CPU load.
1445 htpasswd: >-
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001446 {{ if .Values.loki.tenants }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001447
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001448 {{- range $t := .Values.loki.tenants }}
1449 {{ htpasswd (required "All tenants must have a 'name' set" $t.name) (required "All tenants must have a 'password' set" $t.password) }}
1450
1451 {{- end }}
1452 {{ else }} {{ htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password) }} {{ end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001453 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1454 existingSecret: null
1455 # Configures the readiness probe for the gateway
1456 readinessProbe:
1457 httpGet:
1458 path: /
1459 port: http
1460 initialDelaySeconds: 15
1461 timeoutSeconds: 1
1462 nginxConfig:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001463 # -- Enable listener for IPv6, disable on IPv4-only systems
1464 enableIPv6: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001465 # -- NGINX log format
1466 logFormat: |-
1467 main '$remote_addr - $remote_user [$time_local] $status '
1468 '"$request" $body_bytes_sent "$http_referer" '
1469 '"$http_user_agent" "$http_x_forwarded_for"';
1470 # -- Allows appending custom configuration to the server block
1471 serverSnippet: ""
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001472 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1473 httpSnippet: >-
1474 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001475 # -- Override Read URL
1476 customReadUrl: null
1477 # -- Override Write URL
1478 customWriteUrl: null
1479 # -- Override Backend URL
1480 customBackendUrl: null
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001481 # -- Allows overriding the DNS resolver address nginx will use.
1482 resolver: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001483 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1484 # @default -- See values.yaml
1485 file: |
1486 {{- include "loki.nginxFile" . | indent 2 -}}
1487networkPolicy:
1488 # -- Specifies whether Network Policies should be created
1489 enabled: false
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001490 # -- Specifies whether the policies created will be standard Network Policies (flavor: kubernetes)
1491 # or Cilium Network Policies (flavor: cilium)
1492 flavor: kubernetes
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001493 metrics:
1494 # -- Specifies the Pods which are allowed to access the metrics port.
1495 # As this is cross-namespace communication, you also need the namespaceSelector.
1496 podSelector: {}
1497 # -- Specifies the namespaces which are allowed to access the metrics port
1498 namespaceSelector: {}
1499 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
1500 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
1501 # The metrics ports are also used for probes.
1502 cidrs: []
1503 ingress:
1504 # -- Specifies the Pods which are allowed to access the http port.
1505 # As this is cross-namespace communication, you also need the namespaceSelector.
1506 podSelector: {}
1507 # -- Specifies the namespaces which are allowed to access the http port
1508 namespaceSelector: {}
1509 alertmanager:
1510 # -- Specify the alertmanager port used for alerting
1511 port: 9093
1512 # -- Specifies the alertmanager Pods.
1513 # As this is cross-namespace communication, you also need the namespaceSelector.
1514 podSelector: {}
1515 # -- Specifies the namespace the alertmanager is running in
1516 namespaceSelector: {}
1517 externalStorage:
1518 # -- Specify the port used for external storage, e.g. AWS S3
1519 ports: []
1520 # -- Specifies specific network CIDRs you want to limit access to
1521 cidrs: []
1522 discovery:
1523 # -- (int) Specify the port used for discovery
1524 port: null
1525 # -- Specifies the Pods labels used for discovery.
1526 # As this is cross-namespace communication, you also need the namespaceSelector.
1527 podSelector: {}
1528 # -- Specifies the namespace the discovery Pods are running in
1529 namespaceSelector: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001530 egressWorld:
1531 # -- Enable additional cilium egress rules to external world for write, read and backend.
1532 enabled: false
1533 egressKubeApiserver:
1534 # -- Enable additional cilium egress rules to kube-apiserver for backend.
1535 enabled: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001536# -------------------------------------
1537# Configuration for `minio` child chart
1538# -------------------------------------
1539minio:
1540 enabled: false
1541 replicas: 1
1542 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
1543 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
1544 # Since we only have 1 replica, that means 2 drives must be used.
1545 drivesPerNode: 2
1546 rootUser: enterprise-logs
1547 rootPassword: supersecret
1548 buckets:
1549 - name: chunks
1550 policy: none
1551 purge: false
1552 - name: ruler
1553 policy: none
1554 purge: false
1555 - name: admin
1556 policy: none
1557 purge: false
1558 persistence:
1559 size: 5Gi
1560 resources:
1561 requests:
1562 cpu: 100m
1563 memory: 128Mi
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001564# Create extra manifests via values. Would be passed through `tpl` for templating
1565extraObjects: []
1566# - apiVersion: v1
1567# kind: ConfigMap
1568# metadata:
1569# name: loki-alerting-rules
1570# data:
1571# loki-alerting-rules.yaml: |-
1572# groups:
1573# - name: example
1574# rules:
1575# - alert: example
1576# expr: |
1577# sum(count_over_time({app="loki"} |~ "error")) > 0
1578# for: 3m
1579# labels:
1580# severity: warning
1581# category: logs
1582# annotations:
1583# message: "loki has encountered errors"
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001584
1585sidecar:
1586 image:
1587 # -- The Docker registry and image for the k8s sidecar
1588 repository: kiwigrid/k8s-sidecar
1589 # -- Docker image tag
1590 tag: 1.24.3
1591 # -- Docker image sha. If empty, no sha will be used
1592 sha: ""
1593 # -- Docker image pull policy
1594 pullPolicy: IfNotPresent
1595 # -- Resource requests and limits for the sidecar
1596 resources: {}
1597 # limits:
1598 # cpu: 100m
1599 # memory: 100Mi
1600 # requests:
1601 # cpu: 50m
1602 # memory: 50Mi
1603 # -- The SecurityContext for the sidecar.
1604 securityContext: {}
1605 # -- Set to true to skip tls verification for kube api calls.
1606 skipTlsVerify: false
1607 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
1608 enableUniqueFilenames: false
1609 # -- Readiness probe definition. Probe is disabled on the sidecar by default.
1610 readinessProbe: {}
1611 # -- Liveness probe definition. Probe is disabled on the sidecar by default.
1612 livenessProbe: {}
1613 rules:
1614 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
1615 enabled: true
1616 # -- Label that the configmaps/secrets with rules will be marked with.
1617 label: loki_rule
1618 # -- Label value that the configmaps/secrets with rules will be set to.
1619 labelValue: ""
1620 # -- Folder into which the rules will be placed.
1621 folder: /rules
1622 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
1623 # Otherwise the namespace in which the sidecar is running will be used.
1624 # It's also possible to specify 'ALL' to search in all namespaces.
1625 searchNamespace: null
1626 # -- Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH request, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
1627 watchMethod: WATCH
1628 # -- Search in configmap, secret, or both.
1629 resource: both
1630 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
1631 script: null
1632 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1633 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
1634 watchServerTimeout: 60
1635 #
1636 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
1637 # If you have a network outage dropping all packets with no RST/FIN,
1638 # this is how long your client waits before realizing & dropping the connection.
1639 # Defaults to 66sec.
1640 watchClientTimeout: 60
1641 # -- Log level of the sidecar container.
1642 logLevel: INFO