blob: 6485a59e71c0afa514de2f39436b07e4960f5c30 [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 Tirloni59219b62024-04-09 14:50:25 -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 Naser65cda132024-05-02 14:34:08 -040021# -- Deployment mode lets you specify how to deploy Loki.
22# There are 3 options:
23# - SingleBinary: Loki is deployed as a single binary, useful for small installs typically without HA, up to a few tens of GB/day.
24# - SimpleScalable: Loki is deployed as 3 targets: read, write, and backend. Useful for medium installs easier to manage than distributed, up to a about 1TB/day.
25# - Distributed: Loki is deployed as individual microservices. The most complicated but most capable, useful for large installs, typically over 1TB/day.
26# There are also 2 additional modes used for migrating between deployment modes:
27# - SingleBinary<->SimpleScalable: Migrate from SingleBinary to SimpleScalable (or vice versa)
28# - SimpleScalable<->Distributed: Migrate from SimpleScalable to Distributed (or vice versa)
29# Note: SimpleScalable and Distributed REQUIRE the use of object storage.
30deploymentMode: SimpleScalable
31######################################################################################################################
32#
33# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
34# see below for more specifics on Loki's configuration.
35#
36######################################################################################################################
37# -- Configuration for running Loki
Mohammed Naser7d1623e2024-06-17 09:12:39 -040038# @default -- See values.yaml
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000039loki:
40 # Configures the readiness probe for all of the Loki pods
41 readinessProbe:
42 httpGet:
43 path: /ready
44 port: http-metrics
45 initialDelaySeconds: 30
46 timeoutSeconds: 1
47 image:
48 # -- The Docker registry
49 registry: docker.io
50 # -- Docker image repository
51 repository: grafana/loki
52 # -- Overrides the image tag whose default is the chart's appVersion
53 # TODO: needed for 3rd target backend functionality
54 # revert to null or latest once this behavior is relased
55 tag: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -030056 # -- Overrides the image tag with an image digest
57 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000058 # -- Docker image pull policy
59 pullPolicy: IfNotPresent
Giovanni Tirloni59219b62024-04-09 14:50:25 -030060 # -- Common annotations for all deployments/StatefulSets
61 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000062 # -- Common annotations for all pods
63 podAnnotations: {}
64 # -- Common labels for all pods
65 podLabels: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -030066 # -- Common annotations for all services
67 serviceAnnotations: {}
68 # -- Common labels for all services
69 serviceLabels: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +000070 # -- The number of old ReplicaSets to retain to allow rollback
71 revisionHistoryLimit: 10
72 # -- The SecurityContext for Loki pods
73 podSecurityContext:
74 fsGroup: 10001
75 runAsGroup: 10001
76 runAsNonRoot: true
77 runAsUser: 10001
78 # -- The SecurityContext for Loki containers
79 containerSecurityContext:
80 readOnlyRootFilesystem: true
81 capabilities:
82 drop:
83 - ALL
84 allowPrivilegeEscalation: false
85 # -- Should enableServiceLinks be enabled. Default to enable
86 enableServiceLinks: true
Mohammed Naser65cda132024-05-02 14:34:08 -040087 ######################################################################################################################
88 #
89 # Loki Configuration
90 #
91 # There are several ways to pass configuration to Loki, listing them here in order of our preference for how
92 # you should use this chart.
93 # 1. Use the templated value of loki.config below and the corresponding override sections which follow.
94 # This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
95 # over time as Loki changes and evolves.
96 # 2. Use the loki.structuredConfig section.
97 # This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
98 # including any configuration that we set in loki.config unless you explicitly are trying to change one of those
99 # values and are not able to do so with the templated sections.
100 # If you choose this approach the burden is on you to maintain any changes we make to the templated config.
101 # 3. Use an existing secret or configmap to provide the configuration.
102 # This option is mostly provided for folks who have external processes which provide or modify the configuration.
103 # When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
104 # if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
105 # a config entirely by setting loki.generatedConfigObjectName to
106 #
107 ######################################################################################################################
108
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300109 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
110 # 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).
111 # 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).
112 configStorageType: ConfigMap
Mohammed Naser65cda132024-05-02 14:34:08 -0400113 # -- The name of the object which Loki will mount as a volume containing the config.
114 # If the configStorageType is Secret, this will be the name of the Secret, if it is ConfigMap, this will be the name of the ConfigMap.
115 # The value will be passed through tpl.
116 configObjectName: '{{ include "loki.name" . }}'
117 # -- The name of the Secret or ConfigMap that will be created by this chart.
118 # If empty, no configmap or secret will be created.
119 # The value will be passed through tpl.
120 generatedConfigObjectName: '{{ include "loki.name" . }}'
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000121 # -- Config file contents for Loki
122 # @default -- See values.yaml
123 config: |
124 {{- if .Values.enterprise.enabled}}
125 {{- tpl .Values.enterprise.config . }}
126 {{- else }}
127 auth_enabled: {{ .Values.loki.auth_enabled }}
128 {{- end }}
129
130 {{- with .Values.loki.server }}
131 server:
132 {{- toYaml . | nindent 2}}
133 {{- end}}
134
Mohammed Naser65cda132024-05-02 14:34:08 -0400135 pattern_ingester:
136 enabled: {{ .Values.loki.pattern_ingester.enabled }}
137
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000138 memberlist:
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300139 {{- if .Values.loki.memberlistConfig }}
140 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
141 {{- else }}
142 {{- if .Values.loki.extraMemberlistConfig}}
143 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
144 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000145 join_members:
146 - {{ include "loki.memberlist" . }}
147 {{- with .Values.migrate.fromDistributed }}
148 {{- if .enabled }}
149 - {{ .memberlistService }}
150 {{- end }}
151 {{- end }}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300152 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000153
154 {{- with .Values.loki.ingester }}
155 ingester:
156 {{- tpl (. | toYaml) $ | nindent 4 }}
157 {{- end }}
158
159 {{- if .Values.loki.commonConfig}}
160 common:
161 {{- toYaml .Values.loki.commonConfig | nindent 2}}
162 storage:
163 {{- include "loki.commonStorageConfig" . | nindent 4}}
164 {{- end}}
165
166 {{- with .Values.loki.limits_config }}
167 limits_config:
168 {{- tpl (. | toYaml) $ | nindent 4 }}
169 {{- end }}
170
171 runtime_config:
172 file: /etc/loki/runtime-config/runtime-config.yaml
173
Mohammed Naser65cda132024-05-02 14:34:08 -0400174 {{- with .Values.chunksCache }}
175 {{- if .enabled }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000176 chunk_store_config:
177 chunk_cache_config:
Mohammed Naser65cda132024-05-02 14:34:08 -0400178 default_validity: {{ .defaultValidity }}
179 background:
180 writeback_goroutines: {{ .writebackParallelism }}
181 writeback_buffer: {{ .writebackBuffer }}
182 writeback_size_limit: {{ .writebackSizeLimit }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000183 memcached:
Mohammed Naser65cda132024-05-02 14:34:08 -0400184 batch_size: {{ .batchSize }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000185 parallelism: {{ .parallelism }}
186 memcached_client:
Mohammed Naser65cda132024-05-02 14:34:08 -0400187 addresses: dnssrvnoa+_memcached-client._tcp.{{ template "loki.fullname" $ }}-chunks-cache.{{ $.Release.Namespace }}.svc
188 consistent_hash: true
189 timeout: {{ .timeout }}
190 max_idle_conns: 72
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000191 {{- end }}
192 {{- end }}
193
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300194 {{- if .Values.loki.schemaConfig }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000195 schema_config:
196 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
Mohammed Naser65cda132024-05-02 14:34:08 -0400197 {{- end }}
198
199 {{- if .Values.loki.useTestSchema }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000200 schema_config:
Mohammed Naser65cda132024-05-02 14:34:08 -0400201 {{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000202 {{- end }}
203
204 {{ include "loki.rulerConfig" . }}
205
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300206 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000207 table_manager:
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300208 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
209 retention_period: {{ .Values.tableManager.retention_period }}
210 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000211
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000212 query_range:
213 align_queries_with_step: true
Mohammed Naser65cda132024-05-02 14:34:08 -0400214 {{- with .Values.loki.query_range }}
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400215 {{- tpl (. | toYaml) $ | nindent 2 }}
Mohammed Naser65cda132024-05-02 14:34:08 -0400216 {{- end }}
217 {{- if .Values.resultsCache.enabled }}
218 {{- with .Values.resultsCache }}
219 cache_results: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000220 results_cache:
221 cache:
Mohammed Naser65cda132024-05-02 14:34:08 -0400222 default_validity: {{ .defaultValidity }}
223 background:
224 writeback_goroutines: {{ .writebackParallelism }}
225 writeback_buffer: {{ .writebackBuffer }}
226 writeback_size_limit: {{ .writebackSizeLimit }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000227 memcached_client:
Mohammed Naser65cda132024-05-02 14:34:08 -0400228 consistent_hash: true
229 addresses: dnssrvnoa+_memcached-client._tcp.{{ template "loki.fullname" $ }}-results-cache.{{ $.Release.Namespace }}.svc
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000230 timeout: {{ .timeout }}
Mohammed Naser65cda132024-05-02 14:34:08 -0400231 update_interval: 1m
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000232 {{- end }}
Mohammed Naser65cda132024-05-02 14:34:08 -0400233 {{- end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000234
235 {{- with .Values.loki.storage_config }}
236 storage_config:
237 {{- tpl (. | toYaml) $ | nindent 4 }}
238 {{- end }}
239
240 {{- with .Values.loki.query_scheduler }}
241 query_scheduler:
242 {{- tpl (. | toYaml) $ | nindent 4 }}
243 {{- end }}
244
245 {{- with .Values.loki.compactor }}
246 compactor:
247 {{- tpl (. | toYaml) $ | nindent 4 }}
248 {{- end }}
249
250 {{- with .Values.loki.analytics }}
251 analytics:
252 {{- tpl (. | toYaml) $ | nindent 4 }}
253 {{- end }}
254
255 {{- with .Values.loki.querier }}
256 querier:
257 {{- tpl (. | toYaml) $ | nindent 4 }}
258 {{- end }}
259
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300260 {{- with .Values.loki.index_gateway }}
261 index_gateway:
262 {{- tpl (. | toYaml) $ | nindent 4 }}
263 {{- end }}
264
265 {{- with .Values.loki.frontend }}
266 frontend:
267 {{- tpl (. | toYaml) $ | nindent 4 }}
268 {{- end }}
269
270 {{- with .Values.loki.frontend_worker }}
271 frontend_worker:
272 {{- tpl (. | toYaml) $ | nindent 4 }}
273 {{- end }}
274
275 {{- with .Values.loki.distributor }}
276 distributor:
277 {{- tpl (. | toYaml) $ | nindent 4 }}
278 {{- end }}
279
280 tracing:
281 enabled: {{ .Values.loki.tracing.enabled }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000282 # Should authentication be enabled
283 auth_enabled: true
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300284 # -- memberlist configuration (overrides embedded default)
285 memberlistConfig: {}
286 # -- Extra memberlist configuration
287 extraMemberlistConfig: {}
288 # -- Tenants list to be created on nginx htpasswd file, with name and password keys
289 tenants: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000290 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
291 server:
292 http_listen_port: 3100
293 grpc_listen_port: 9095
Mohammed Naser65cda132024-05-02 14:34:08 -0400294 http_server_read_timeout: 600s
295 http_server_write_timeout: 600s
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000296 # -- Limits config
297 limits_config:
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000298 reject_old_samples: true
299 reject_old_samples_max_age: 168h
300 max_cache_freshness_per_query: 10m
301 split_queries_by_interval: 15m
Mohammed Naser65cda132024-05-02 14:34:08 -0400302 query_timeout: 300s
303 volume_enabled: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000304 # -- Provides a reloadable runtime configuration file for some specific configuration
305 runtimeConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000306 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
307 commonConfig:
308 path_prefix: /var/loki
309 replication_factor: 3
310 compactor_address: '{{ include "loki.compactorAddress" . }}'
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000311 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
312 storage:
Mohammed Naser65cda132024-05-02 14:34:08 -0400313 # Loki requires a bucket for chunks and the ruler. GEL requires a third bucket for the admin API.
314 # Please provide these values if you are using object storage.
315 # bucketNames:
316 # chunks: FIXME
317 # ruler: FIXME
318 # admin: FIXME
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000319 type: s3
320 s3:
321 s3: null
322 endpoint: null
323 region: null
324 secretAccessKey: null
325 accessKeyId: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300326 signatureVersion: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000327 s3ForcePathStyle: false
328 insecure: false
329 http_config: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300330 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
331 backoff_config: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000332 gcs:
333 chunkBufferSize: 0
334 requestTimeout: "0s"
335 enableHttp2: true
336 azure:
337 accountName: null
338 accountKey: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300339 connectionString: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000340 useManagedIdentity: false
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300341 useFederatedToken: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000342 userAssignedId: null
343 requestTimeout: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300344 endpointSuffix: null
345 swift:
346 auth_version: null
347 auth_url: null
348 internal: null
349 username: null
350 user_domain_name: null
351 user_domain_id: null
352 user_id: null
353 password: null
354 domain_id: null
355 domain_name: null
356 project_id: null
357 project_name: null
358 project_domain_id: null
359 project_domain_name: null
360 region_name: null
361 container_name: null
362 max_retries: null
363 connect_timeout: null
364 request_timeout: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000365 filesystem:
366 chunks_directory: /var/loki/chunks
367 rules_directory: /var/loki/rules
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400368 admin_api_directory: /var/loki/admin
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000369 # -- Configure memcached as an external cache for chunk and results cache. Disabled by default
370 # must enable and specify a host for each cache you would like to use.
371 memcached:
372 chunk_cache:
373 enabled: false
374 host: ""
375 service: "memcached-client"
376 batch_size: 256
377 parallelism: 10
378 results_cache:
379 enabled: false
380 host: ""
381 service: "memcached-client"
382 timeout: "500ms"
383 default_validity: "12h"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000384 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
385 schemaConfig: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400386 # -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
387 # you can enable useTestSchema
388 useTestSchema: false
389 testSchemaConfig:
390 configs:
391 - from: 2024-04-01
392 store: tsdb
393 object_store: '{{ include "loki.testSchemaObjectStore" . }}'
394 schema: v13
395 index:
396 prefix: index_
397 period: 24h
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000398 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
399 rulerConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000400 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
401 structuredConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000402 # -- Additional query scheduler config
403 query_scheduler: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000404 # -- Additional storage config
405 storage_config:
Mohammed Naser65cda132024-05-02 14:34:08 -0400406 boltdb_shipper:
407 index_gateway_client:
408 server_address: '{{ include "loki.indexGatewayAddress" . }}'
409 tsdb_shipper:
410 index_gateway_client:
411 server_address: '{{ include "loki.indexGatewayAddress" . }}'
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000412 hedging:
413 at: "250ms"
414 max_per_second: 20
415 up_to: 3
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000416 # -- Optional compactor configuration
417 compactor: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400418 # -- Optional pattern ingester configuration
419 pattern_ingester:
420 enabled: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000421 # -- Optional analytics configuration
422 analytics: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000423 # -- Optional querier configuration
Mohammed Naser65cda132024-05-02 14:34:08 -0400424 query_range: {}
425 # -- Optional querier configuration
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000426 querier: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000427 # -- Optional ingester configuration
428 ingester: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300429 # -- Optional index gateway configuration
430 index_gateway:
Mohammed Naser65cda132024-05-02 14:34:08 -0400431 mode: simple
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300432 frontend:
433 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
Mohammed Naser65cda132024-05-02 14:34:08 -0400434 tail_proxy_url: '{{ include "loki.querierAddress" . }}'
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300435 frontend_worker:
436 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
437 # -- Optional distributor configuration
438 distributor: {}
439 # -- Enable tracing
440 tracing:
441 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400442######################################################################################################################
443#
444# Enterprise Loki Configs
445#
446######################################################################################################################
447
448# -- Configuration for running Enterprise Loki
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000449enterprise:
450 # Enable enterprise features, license must be provided
451 enabled: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000452 # Default verion of GEL to deploy
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400453 version: 3.0.1
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000454 # -- Optional name of the GEL cluster, otherwise will use .Release.Name
455 # The cluster name must match what is in your GEL license
456 cluster_name: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000457 # -- Grafana Enterprise Logs license
458 # In order to use Grafana Enterprise Logs features, you will need to provide
459 # the contents of your Grafana Enterprise Logs license, either by providing the
460 # contents of the license.jwt, or the name Kubernetes Secret that contains your
461 # license.jwt.
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300462 # To set the license contents, use the flag `--set-file 'enterprise.license.contents=./license.jwt'`
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000463 license:
464 contents: "NOTAVALIDLICENSE"
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000465 # -- Set to true when providing an external license
466 useExternalLicense: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000467 # -- Name of external license secret to use
468 externalLicenseName: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000469 # -- Name of the external config secret to use
470 externalConfigName: ""
Mohammed Naser65cda132024-05-02 14:34:08 -0400471 # -- Use GEL gateway, if false will use the default nginx gateway
472 gelGateway: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000473 # -- If enabled, the correct admin_client storage will be configured. If disabled while running enterprise,
474 # make sure auth is set to `type: trust`, or that `auth_enabled` is set to `false`.
475 adminApi:
476 enabled: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000477 # enterprise specific sections of the config.yaml file
478 config: |
479 {{- if .Values.enterprise.adminApi.enabled }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000480 admin_client:
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400481 {{ include "enterprise-logs.adminAPIStorageConfig" . | nindent 2 }}
482 {{ end }}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000483 auth:
484 type: {{ .Values.enterprise.adminApi.enabled | ternary "enterprise" "trust" }}
485 auth_enabled: {{ .Values.loki.auth_enabled }}
486 cluster_name: {{ include "loki.clusterName" . }}
487 license:
488 path: /etc/loki/license/license.jwt
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000489 image:
490 # -- The Docker registry
491 registry: docker.io
492 # -- Docker image repository
493 repository: grafana/enterprise-logs
494 # -- Docker image tag
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300495 tag: null
496 # -- Overrides the image tag with an image digest
497 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000498 # -- Docker image pull policy
499 pullPolicy: IfNotPresent
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000500 adminToken:
501 # -- Alternative name for admin token secret, needed by tokengen and provisioner jobs
502 secret: null
503 # -- Additional namespace to also create the token in. Useful if your Grafana instance
504 # is in a different namespace
505 additionalNamespaces: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000506 # -- Alternative name of the secret to store token for the canary
507 canarySecret: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000508 # -- Configuration for `tokengen` target
509 tokengen:
510 # -- Whether the job should be part of the deployment
511 enabled: true
512 # -- Comma-separated list of Loki modules to load for tokengen
513 targetModule: "tokengen"
514 # -- Additional CLI arguments for the `tokengen` target
515 extraArgs: []
516 # -- Additional Kubernetes environment
517 env: []
518 # -- Additional labels for the `tokengen` Job
519 labels: {}
520 # -- Additional annotations for the `tokengen` Job
521 annotations: {}
522 # -- Tolerations for tokengen Job
523 tolerations: []
524 # -- Additional volumes for Pods
525 extraVolumes: []
526 # -- Additional volume mounts for Pods
527 extraVolumeMounts: []
528 # -- Run containers as user `enterprise-logs(uid=10001)`
529 securityContext:
530 runAsNonRoot: true
531 runAsGroup: 10001
532 runAsUser: 10001
533 fsGroup: 10001
534 # -- Environment variables from secrets or configmaps to add to the tokengen pods
535 extraEnvFrom: []
536 # -- The name of the PriorityClass for tokengen Pods
537 priorityClassName: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000538 # -- Configuration for `provisioner` target
539 provisioner:
540 # -- Whether the job should be part of the deployment
541 enabled: true
542 # -- Name of the secret to store provisioned tokens in
543 provisionedSecretPrefix: null
544 # -- Additional tenants to be created. Each tenant will get a read and write policy
545 # and associated token. Tenant must have a name and a namespace for the secret containting
546 # the token to be created in. For example
547 # additionalTenants:
548 # - name: loki
549 # secretNamespace: grafana
550 additionalTenants: []
551 # -- Additional Kubernetes environment
552 env: []
553 # -- Additional labels for the `provisioner` Job
554 labels: {}
555 # -- Additional annotations for the `provisioner` Job
556 annotations: {}
557 # -- The name of the PriorityClass for provisioner Job
558 priorityClassName: null
559 # -- Run containers as user `enterprise-logs(uid=10001)`
560 securityContext:
561 runAsNonRoot: true
562 runAsGroup: 10001
563 runAsUser: 10001
564 fsGroup: 10001
565 # -- Provisioner image to Utilize
566 image:
567 # -- The Docker registry
568 registry: docker.io
569 # -- Docker image repository
570 repository: grafana/enterprise-logs-provisioner
571 # -- Overrides the image tag whose default is the chart's appVersion
572 tag: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300573 # -- Overrides the image tag with an image digest
574 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000575 # -- Docker image pull policy
576 pullPolicy: IfNotPresent
577 # -- Volume mounts to add to the provisioner pods
578 extraVolumeMounts: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400579# -- kubetclImage is used in the enterprise provisioner and tokengen jobs
580kubectlImage:
581 # -- The Docker registry
582 registry: docker.io
583 # -- Docker image repository
584 repository: bitnami/kubectl
585 # -- Overrides the image tag whose default is the chart's appVersion
586 tag: null
587 # -- Overrides the image tag with an image digest
588 digest: null
589 # -- Docker image pull policy
590 pullPolicy: IfNotPresent
591######################################################################################################################
592#
593# Chart Testing
594#
595######################################################################################################################
596
597# -- Section for configuring optional Helm test
598test:
599 enabled: true
600 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
601 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
602 canaryServiceAddress: "http://loki-canary:3500/metrics"
603 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
604 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
605 prometheusAddress: ""
606 # -- Number of times to retry the test before failing
607 timeout: 1m
608 # -- Additional labels for the test pods
609 labels: {}
610 # -- Additional annotations for test pods
611 annotations: {}
612 # -- Image to use for loki canary
613 image:
614 # -- The Docker registry
615 registry: docker.io
616 # -- Docker image repository
617 repository: grafana/loki-helm-test
618 # -- Overrides the image tag whose default is the chart's appVersion
619 tag: "ewelch-distributed-helm-chart-17db5ee"
620 # -- Overrides the image tag with an image digest
621 digest: null
622 # -- Docker image pull policy
623 pullPolicy: IfNotPresent
624# The Loki canary pushes logs to and queries from this loki installation to test
625# that it's working correctly
626lokiCanary:
627 enabled: true
628 # -- If true, the canary will send directly to Loki via the address configured for verification --
629 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
630 push: true
631 # -- The name of the label to look for at loki when doing the checks.
632 labelname: pod
633 # -- Additional annotations for the `loki-canary` Daemonset
634 annotations: {}
635 # -- Additional labels for each `loki-canary` pod
636 podLabels: {}
637 service:
638 # -- Annotations for loki-canary Service
639 annotations: {}
640 # -- Additional labels for loki-canary Service
641 labels: {}
642 # -- Additional CLI arguments for the `loki-canary' command
643 extraArgs: []
644 # -- Environment variables to add to the canary pods
645 extraEnv: []
646 # -- Environment variables from secrets or configmaps to add to the canary pods
647 extraEnvFrom: []
648 # -- Volume mounts to add to the canary pods
649 extraVolumeMounts: []
650 # -- Volumes to add to the canary pods
651 extraVolumes: []
652 # -- Resource requests and limits for the canary
653 resources: {}
654 # -- DNS config for canary pods
655 dnsConfig: {}
656 # -- Node selector for canary pods
657 nodeSelector: {}
658 # -- Tolerations for canary pods
659 tolerations: []
660 # -- The name of the PriorityClass for loki-canary pods
661 priorityClassName: null
662 # -- Image to use for loki canary
663 image:
664 # -- The Docker registry
665 registry: docker.io
666 # -- Docker image repository
667 repository: grafana/loki-canary
668 # -- Overrides the image tag whose default is the chart's appVersion
669 tag: null
670 # -- Overrides the image tag with an image digest
671 digest: null
672 # -- Docker image pull policy
673 pullPolicy: IfNotPresent
674 # -- Update strategy for the `loki-canary` Daemonset pods
675 updateStrategy:
676 type: RollingUpdate
677 rollingUpdate:
678 maxUnavailable: 1
679######################################################################################################################
680#
681# Service Accounts and Kubernetes RBAC
682#
683######################################################################################################################
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000684serviceAccount:
685 # -- Specifies whether a ServiceAccount should be created
686 create: true
687 # -- The name of the ServiceAccount to use.
688 # If not set and create is true, a name is generated using the fullname template
689 name: null
690 # -- Image pull secrets for the service account
691 imagePullSecrets: []
692 # -- Annotations for the service account
693 annotations: {}
694 # -- Labels for the service account
695 labels: {}
696 # -- Set this toggle to false to opt out of automounting API credentials for the service account
697 automountServiceAccountToken: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000698# RBAC configuration
699rbac:
700 # -- If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.
701 pspEnabled: false
702 # -- For OpenShift set pspEnabled to 'false' and sccEnabled to 'true' to use the SecurityContextConstraints.
703 sccEnabled: false
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300704 # -- Specify PSP annotations
705 # Ref: https://kubernetes.io/docs/reference/access-authn-authz/psp-to-pod-security-standards/#podsecuritypolicy-annotations
706 pspAnnotations: {}
707 # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
708 # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
709 # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
710 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
711 namespaced: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400712######################################################################################################################
713#
714# Network Policy configuration
715#
716######################################################################################################################
717networkPolicy:
718 # -- Specifies whether Network Policies should be created
719 enabled: false
720 # -- Specifies whether the policies created will be standard Network Policies (flavor: kubernetes)
721 # or Cilium Network Policies (flavor: cilium)
722 flavor: kubernetes
723 metrics:
724 # -- Specifies the Pods which are allowed to access the metrics port.
725 # As this is cross-namespace communication, you also need the namespaceSelector.
726 podSelector: {}
727 # -- Specifies the namespaces which are allowed to access the metrics port
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000728 namespaceSelector: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400729 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
730 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
731 # The metrics ports are also used for probes.
732 cidrs: []
733 ingress:
734 # -- Specifies the Pods which are allowed to access the http port.
735 # As this is cross-namespace communication, you also need the namespaceSelector.
736 podSelector: {}
737 # -- Specifies the namespaces which are allowed to access the http port
738 namespaceSelector: {}
739 alertmanager:
740 # -- Specify the alertmanager port used for alerting
741 port: 9093
742 # -- Specifies the alertmanager Pods.
743 # As this is cross-namespace communication, you also need the namespaceSelector.
744 podSelector: {}
745 # -- Specifies the namespace the alertmanager is running in
746 namespaceSelector: {}
747 externalStorage:
748 # -- Specify the port used for external storage, e.g. AWS S3
749 ports: []
750 # -- Specifies specific network CIDRs you want to limit access to
751 cidrs: []
752 discovery:
753 # -- (int) Specify the port used for discovery
754 port: null
755 # -- Specifies the Pods labels used for discovery.
756 # As this is cross-namespace communication, you also need the namespaceSelector.
757 podSelector: {}
758 # -- Specifies the namespace the discovery Pods are running in
759 namespaceSelector: {}
760 egressWorld:
761 # -- Enable additional cilium egress rules to external world for write, read and backend.
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300762 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400763 egressKubeApiserver:
764 # -- Enable additional cilium egress rules to kube-apiserver for backend.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000765 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400766######################################################################################################################
767#
768# Global memberlist configuration
769#
770######################################################################################################################
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000771
772# Configuration for the memberlist service
773memberlist:
774 service:
775 publishNotReadyAddresses: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400776######################################################################################################################
777#
778# adminAPI configuration, enterprise only.
779#
780######################################################################################################################
781
782# -- Configuration for the `admin-api` target
783adminApi:
784 # -- Define the amount of instances
785 replicas: 1
786 # -- hostAliases to add
787 hostAliases: []
788 # - ip: 1.2.3.4
789 # hostnames:
790 # - domain.tld
791 # -- Additional CLI arguments for the `admin-api` target
792 extraArgs: {}
793 # -- Additional labels for the `admin-api` Deployment
794 labels: {}
795 # -- Additional annotations for the `admin-api` Deployment
796 annotations: {}
797 # -- Additional labels and annotations for the `admin-api` Service
798 service:
799 labels: {}
800 annotations: {}
801 # -- Run container as user `enterprise-logs(uid=10001)`
802 # `fsGroup` must not be specified, because these security options are applied
803 # on container level not on Pod level.
804 podSecurityContext:
805 runAsNonRoot: true
806 runAsGroup: 10001
807 runAsUser: 10001
808 containerSecurityContext:
809 readOnlyRootFilesystem: true
810 capabilities:
811 drop:
812 - ALL
813 allowPrivilegeEscalation: false
814 # -- Update strategy
815 strategy:
816 type: RollingUpdate
817 # -- Readiness probe
818 readinessProbe:
819 httpGet:
820 path: /ready
821 port: http-metrics
822 initialDelaySeconds: 45
823 # -- Request and limit Kubernetes resources
824 # -- Values are defined in small.yaml and large.yaml
825 resources: {}
826 # -- Configure optional environment variables
827 env: []
828 # -- Configure optional initContainers
829 initContainers: []
830 # -- Conifgure optional extraContainers
831 extraContainers: []
832 # -- Additional volumes for Pods
833 extraVolumes: []
834 # -- Additional volume mounts for Pods
835 extraVolumeMounts: []
836 # -- Affinity for admin-api Pods
837 affinity: {}
838 # -- Node selector for admin-api Pods
839 nodeSelector: {}
840 # -- Tolerations for admin-api Pods
841 tolerations: []
842 # -- Grace period to allow the admin-api to shutdown before it is killed
843 terminationGracePeriodSeconds: 60
Mohammed Naser65cda132024-05-02 14:34:08 -0400844######################################################################################################################
845#
846# Gateway and Ingress
847#
848# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
849# and can also do auth.
850#
851# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
852#
853######################################################################################################################
854
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000855# Configuration for the gateway
856gateway:
857 # -- Specifies whether the gateway should be enabled
858 enabled: true
859 # -- Number of replicas for the gateway
860 replicas: 1
861 # -- Enable logging of 2xx and 3xx HTTP requests
862 verboseLogging: true
863 autoscaling:
864 # -- Enable autoscaling for the gateway
865 enabled: false
866 # -- Minimum autoscaling replicas for the gateway
867 minReplicas: 1
868 # -- Maximum autoscaling replicas for the gateway
869 maxReplicas: 3
870 # -- Target CPU utilisation percentage for the gateway
871 targetCPUUtilizationPercentage: 60
872 # -- Target memory utilisation percentage for the gateway
873 targetMemoryUtilizationPercentage:
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300874 # -- See `kubectl explain deployment.spec.strategy` for more
875 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
876 # -- Behavior policies while scaling.
877 behavior: {}
878 # scaleUp:
879 # stabilizationWindowSeconds: 300
880 # policies:
881 # - type: Pods
882 # value: 1
883 # periodSeconds: 60
884 # scaleDown:
885 # stabilizationWindowSeconds: 300
886 # policies:
887 # - type: Pods
888 # value: 1
889 # periodSeconds: 180
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000890 deploymentStrategy:
891 type: RollingUpdate
892 image:
893 # -- The Docker registry for the gateway image
894 registry: docker.io
895 # -- The gateway image repository
896 repository: nginxinc/nginx-unprivileged
897 # -- The gateway image tag
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300898 tag: 1.24-alpine
899 # -- Overrides the gateway image tag with an image digest
900 digest: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000901 # -- The gateway image pull policy
902 pullPolicy: IfNotPresent
903 # -- The name of the PriorityClass for gateway pods
904 priorityClassName: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300905 # -- Annotations for gateway deployment
906 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000907 # -- Annotations for gateway pods
908 podAnnotations: {}
909 # -- Additional labels for gateway pods
910 podLabels: {}
911 # -- Additional CLI args for the gateway
912 extraArgs: []
913 # -- Environment variables to add to the gateway pods
914 extraEnv: []
915 # -- Environment variables from secrets or configmaps to add to the gateway pods
916 extraEnvFrom: []
917 # -- Lifecycle for the gateway container
918 lifecycle: {}
919 # -- Volumes to add to the gateway pods
920 extraVolumes: []
921 # -- Volume mounts to add to the gateway pods
922 extraVolumeMounts: []
923 # -- The SecurityContext for gateway containers
924 podSecurityContext:
925 fsGroup: 101
926 runAsGroup: 101
927 runAsNonRoot: true
928 runAsUser: 101
929 # -- The SecurityContext for gateway containers
930 containerSecurityContext:
931 readOnlyRootFilesystem: true
932 capabilities:
933 drop:
934 - ALL
935 allowPrivilegeEscalation: false
936 # -- Resource requests and limits for the gateway
937 resources: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300938 # -- Containers to add to the gateway pods
939 extraContainers: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000940 # -- Grace period to allow the gateway to shutdown before it is killed
941 terminationGracePeriodSeconds: 30
Mohammed Naser65cda132024-05-02 14:34:08 -0400942 # -- Affinity for gateway pods.
943 # @default -- Hard node anti-affinity
944 affinity:
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000945 podAntiAffinity:
946 requiredDuringSchedulingIgnoredDuringExecution:
947 - labelSelector:
948 matchLabels:
Mohammed Naser65cda132024-05-02 14:34:08 -0400949 app.kubernetes.io/component: gateway
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000950 topologyKey: kubernetes.io/hostname
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300951 # -- DNS config for gateway pods
952 dnsConfig: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000953 # -- Node selector for gateway pods
954 nodeSelector: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300955 # -- Topology Spread Constraints for gateway pods
956 topologySpreadConstraints: []
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000957 # -- Tolerations for gateway pods
958 tolerations: []
959 # Gateway service configuration
960 service:
961 # -- Port of the gateway service
962 port: 80
963 # -- Type of the gateway service
964 type: ClusterIP
965 # -- ClusterIP of the gateway service
966 clusterIP: null
967 # -- (int) Node port if service type is NodePort
968 nodePort: null
969 # -- Load balancer IPO address if service type is LoadBalancer
970 loadBalancerIP: null
971 # -- Annotations for the gateway service
972 annotations: {}
973 # -- Labels for gateway service
974 labels: {}
975 # Gateway ingress configuration
976 ingress:
977 # -- Specifies whether an ingress for the gateway should be created
978 enabled: false
979 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
980 ingressClassName: ""
981 # -- Annotations for the gateway ingress
982 annotations: {}
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300983 # -- Labels for the gateway ingress
984 labels: {}
985 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000986 hosts:
987 - host: gateway.loki.example.com
988 paths:
989 - path: /
990 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
991 # pathType: Prefix
Giovanni Tirloni59219b62024-04-09 14:50:25 -0300992 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +0000993 tls:
994 - secretName: loki-gateway-tls
995 hosts:
996 - gateway.loki.example.com
997 # Basic auth configuration
998 basicAuth:
999 # -- Enables basic authentication for the gateway
1000 enabled: false
1001 # -- The basic auth username for the gateway
1002 username: null
1003 # -- The basic auth password for the gateway
1004 password: null
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001005 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1006 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001007 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1008 # high CPU load.
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001009 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001010 htpasswd: >-
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001011 {{ if .Values.loki.tenants }}
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001012 {{- range $t := .Values.loki.tenants }}
1013 {{ htpasswd (required "All tenants must have a 'name' set" $t.name) (required "All tenants must have a 'password' set" $t.password) }}
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001014 {{- end }}
1015 {{ 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 +00001016 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1017 existingSecret: null
1018 # Configures the readiness probe for the gateway
1019 readinessProbe:
1020 httpGet:
1021 path: /
Mohammed Naser65cda132024-05-02 14:34:08 -04001022 port: http-metrics
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001023 initialDelaySeconds: 15
1024 timeoutSeconds: 1
1025 nginxConfig:
Mohammed Naser65cda132024-05-02 14:34:08 -04001026 # -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1027 schema: http
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001028 # -- Enable listener for IPv6, disable on IPv4-only systems
1029 enableIPv6: true
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001030 # -- NGINX log format
1031 logFormat: |-
1032 main '$remote_addr - $remote_user [$time_local] $status '
1033 '"$request" $body_bytes_sent "$http_referer" '
1034 '"$http_user_agent" "$http_x_forwarded_for"';
1035 # -- Allows appending custom configuration to the server block
1036 serverSnippet: ""
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001037 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1038 httpSnippet: >-
1039 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
Mohammed Naser65cda132024-05-02 14:34:08 -04001040 # -- Whether ssl should be appended to the listen directive of the server block or not.
1041 ssl: false
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001042 # -- Override Read URL
1043 customReadUrl: null
1044 # -- Override Write URL
1045 customWriteUrl: null
1046 # -- Override Backend URL
1047 customBackendUrl: null
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001048 # -- Allows overriding the DNS resolver address nginx will use.
1049 resolver: ""
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001050 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1051 # @default -- See values.yaml
1052 file: |
1053 {{- include "loki.nginxFile" . | indent 2 -}}
Mohammed Naser65cda132024-05-02 14:34:08 -04001054# -- If running enterprise and using the default enterprise gateway, configs go here.
1055enterpriseGateway:
1056 # -- Define the amount of instances
1057 replicas: 1
1058 # -- hostAliases to add
1059 hostAliases: []
1060 # - ip: 1.2.3.4
1061 # hostnames:
1062 # - domain.tld
1063 # -- Additional CLI arguments for the `gateway` target
1064 extraArgs: {}
1065 # -- Additional labels for the `gateway` Pod
1066 labels: {}
1067 # -- Additional annotations for the `gateway` Pod
1068 annotations: {}
1069 # -- Additional labels and annotations for the `gateway` Service
1070 # -- Service overriding service type
1071 service:
1072 type: ClusterIP
1073 labels: {}
1074 annotations: {}
1075 # -- Run container as user `enterprise-logs(uid=10001)`
1076 podSecurityContext:
1077 runAsNonRoot: true
1078 runAsGroup: 10001
1079 runAsUser: 10001
1080 fsGroup: 10001
1081 containerSecurityContext:
1082 readOnlyRootFilesystem: true
1083 capabilities:
1084 drop:
1085 - ALL
1086 allowPrivilegeEscalation: false
1087 # -- If you want to use your own proxy URLs, set this to false.
1088 useDefaultProxyURLs: true
1089 # -- update strategy
1090 strategy:
1091 type: RollingUpdate
1092 # -- Readiness probe
1093 readinessProbe:
1094 httpGet:
1095 path: /ready
1096 port: http-metrics
1097 initialDelaySeconds: 45
1098 # -- Request and limit Kubernetes resources
1099 # -- Values are defined in small.yaml and large.yaml
1100 resources: {}
1101 # -- Configure optional environment variables
1102 env: []
1103 # -- Configure optional initContainers
1104 initContainers: []
1105 # -- Conifgure optional extraContainers
1106 extraContainers: []
1107 # -- Additional volumes for Pods
1108 extraVolumes: []
1109 # -- Additional volume mounts for Pods
1110 extraVolumeMounts: []
1111 # -- Affinity for gateway Pods
1112 affinity: {}
1113 # -- Node selector for gateway Pods
1114 nodeSelector: {}
1115 # -- Tolerations for gateway Pods
1116 tolerations: []
1117 # -- Grace period to allow the gateway to shutdown before it is killed
1118 terminationGracePeriodSeconds: 60
1119# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1120# If you enable this, make sure to disable the gateway.
1121# You'll need to supply authn configuration for your ingress controller.
1122ingress:
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00001123 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -04001124 ingressClassName: ""
1125 annotations: {}
1126 # nginx.ingress.kubernetes.io/auth-type: basic
1127 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1128 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1129 # nginx.ingress.kubernetes.io/configuration-snippet: |
1130 # proxy_set_header X-Scope-OrgID $remote_user;
1131 labels: {}
1132 # blackbox.monitoring.exclude: "true"
1133 paths:
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001134 # -- Paths that are exposed by Loki Distributor.
1135 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1136 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1137 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1138 distributor:
Mohammed Naser65cda132024-05-02 14:34:08 -04001139 - /api/prom/push
1140 - /loki/api/v1/push
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001141 - /otlp/v1/logs
1142 # -- Paths that are exposed by Loki Query Frontend.
1143 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.queryFrontendFullname"}}`.
1144 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.readFullname"}}`.
1145 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1146 queryFrontend:
1147 - /api/prom/query
1148 # this path covers labels and labelValues endpoints
1149 - /api/prom/label
1150 - /api/prom/series
Mohammed Naser65cda132024-05-02 14:34:08 -04001151 - /api/prom/tail
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001152 - /loki/api/v1/query
1153 - /loki/api/v1/query_range
Mohammed Naser65cda132024-05-02 14:34:08 -04001154 - /loki/api/v1/tail
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001155 # this path covers labels and labelValues endpoints
1156 - /loki/api/v1/label
1157 - /loki/api/v1/labels
1158 - /loki/api/v1/series
1159 - /loki/api/v1/index/stats
1160 - /loki/api/v1/index/volume
1161 - /loki/api/v1/index/volume_range
1162 - /loki/api/v1/format_query
1163 - /loki/api/v1/detected_fields
1164 - /loki/api/v1/detected_labels
1165 - /loki/api/v1/patterns
1166 # -- Paths that are exposed by Loki Ruler.
1167 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.rulerFullname"}}`.
1168 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service: `{{"loki.backendFullname"}}`.
1169 # If deployment mode is SimpleScalable but `read.legacyReadTarget` is `true`, the requests are forwarded to k8s service: `{{"loki.readFullname"}}`.
1170 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1171 ruler:
Mohammed Naser65cda132024-05-02 14:34:08 -04001172 - /api/prom/rules
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001173 - /api/prom/api/v1/rules
1174 - /api/prom/api/v1/alerts
Mohammed Naser65cda132024-05-02 14:34:08 -04001175 - /loki/api/v1/rules
1176 - /prometheus/api/v1/rules
1177 - /prometheus/api/v1/alerts
1178 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1179 hosts:
1180 - loki.example.com
1181 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1182 tls: []
1183# - hosts:
1184# - loki.example.com
1185# secretName: loki-distributed-tls
1186
1187######################################################################################################################
1188#
1189# Migration
1190#
1191######################################################################################################################
1192
1193# -- Options that may be necessary when performing a migration from another helm chart
1194migrate:
1195 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1196 fromDistributed:
1197 # -- Set to true if migrating from a distributed helm chart
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001198 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -04001199 # -- If migrating from a distributed service, provide the distributed deployment's
1200 # memberlist service DNS so the new deployment can join its ring.
1201 memberlistService: ""
Mohammed Naser65cda132024-05-02 14:34:08 -04001202######################################################################################################################
1203#
1204# Single Binary Deployment
1205#
1206# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1207#
1208######################################################################################################################
1209
1210# Configuration for the single binary node(s)
1211singleBinary:
1212 # -- Number of replicas for the single binary
1213 replicas: 0
1214 autoscaling:
1215 # -- Enable autoscaling
Giovanni Tirloni59219b62024-04-09 14:50:25 -03001216 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -04001217 # -- Minimum autoscaling replicas for the single binary
1218 minReplicas: 1
1219 # -- Maximum autoscaling replicas for the single binary
1220 maxReplicas: 3
1221 # -- Target CPU utilisation percentage for the single binary
1222 targetCPUUtilizationPercentage: 60
1223 # -- Target memory utilisation percentage for the single binary
1224 targetMemoryUtilizationPercentage:
1225 image:
1226 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1227 registry: null
1228 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1229 repository: null
1230 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1231 tag: null
1232 # -- The name of the PriorityClass for single binary pods
1233 priorityClassName: null
1234 # -- Annotations for single binary StatefulSet
1235 annotations: {}
1236 # -- Annotations for single binary pods
1237 podAnnotations: {}
1238 # -- Additional labels for each `single binary` pod
1239 podLabels: {}
1240 # -- Additional selector labels for each `single binary` pod
1241 selectorLabels: {}
1242 service:
1243 # -- Annotations for single binary Service
1244 annotations: {}
1245 # -- Additional labels for single binary Service
1246 labels: {}
1247 # -- Comma-separated list of Loki modules to load for the single binary
1248 targetModule: "all"
1249 # -- Labels for single binary service
1250 extraArgs: []
1251 # -- Environment variables to add to the single binary pods
1252 extraEnv: []
1253 # -- Environment variables from secrets or configmaps to add to the single binary pods
1254 extraEnvFrom: []
1255 # -- Extra containers to add to the single binary loki pod
1256 extraContainers: []
1257 # -- Init containers to add to the single binary pods
1258 initContainers: []
1259 # -- Volume mounts to add to the single binary pods
1260 extraVolumeMounts: []
1261 # -- Volumes to add to the single binary pods
1262 extraVolumes: []
1263 # -- Resource requests and limits for the single binary
1264 resources: {}
1265 # -- Grace period to allow the single binary to shutdown before it is killed
1266 terminationGracePeriodSeconds: 30
1267 # -- Affinity for single binary pods.
1268 # @default -- Hard node anti-affinity
1269 affinity:
1270 podAntiAffinity:
1271 requiredDuringSchedulingIgnoredDuringExecution:
1272 - labelSelector:
1273 matchLabels:
1274 app.kubernetes.io/component: single-binary
1275 topologyKey: kubernetes.io/hostname
1276 # -- DNS config for single binary pods
1277 dnsConfig: {}
1278 # -- Node selector for single binary pods
1279 nodeSelector: {}
1280 # -- Tolerations for single binary pods
1281 tolerations: []
1282 persistence:
1283 # -- Enable StatefulSetAutoDeletePVC feature
1284 enableStatefulSetAutoDeletePVC: true
1285 # -- Enable persistent disk
1286 enabled: true
1287 # -- Size of persistent disk
1288 size: 10Gi
1289 # -- Storage class to be used.
1290 # If defined, storageClassName: <storageClass>.
1291 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1292 # If empty or set to null, no storageClassName spec is
1293 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1294 storageClass: null
1295 # -- Selector for persistent disk
1296 selector: null
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001297 # -- Annotations for volume claim
1298 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -04001299######################################################################################################################
1300#
1301# Simple Scalable Deployment (SSD) Mode
1302#
1303# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
1304#
1305######################################################################################################################
1306
1307# Configuration for the write pod(s)
1308write:
1309 # -- Number of replicas for the write
1310 replicas: 3
1311 autoscaling:
1312 # -- Enable autoscaling for the write.
1313 enabled: false
1314 # -- Minimum autoscaling replicas for the write.
1315 minReplicas: 2
1316 # -- Maximum autoscaling replicas for the write.
1317 maxReplicas: 6
1318 # -- Target CPU utilisation percentage for the write.
1319 targetCPUUtilizationPercentage: 60
1320 # -- Target memory utilization percentage for the write.
1321 targetMemoryUtilizationPercentage:
1322 # -- Behavior policies while scaling.
1323 behavior:
1324 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
1325 scaleUp:
1326 policies:
1327 - type: Pods
1328 value: 1
1329 periodSeconds: 900
1330 scaleDown:
1331 policies:
1332 - type: Pods
1333 value: 1
1334 periodSeconds: 1800
1335 stabilizationWindowSeconds: 3600
1336 image:
1337 # -- The Docker registry for the write image. Overrides `loki.image.registry`
1338 registry: null
1339 # -- Docker image repository for the write image. Overrides `loki.image.repository`
1340 repository: null
1341 # -- Docker image tag for the write image. Overrides `loki.image.tag`
1342 tag: null
1343 # -- The name of the PriorityClass for write pods
1344 priorityClassName: null
1345 # -- Annotations for write StatefulSet
1346 annotations: {}
1347 # -- Annotations for write pods
1348 podAnnotations: {}
1349 # -- Additional labels for each `write` pod
1350 podLabels: {}
1351 # -- Additional selector labels for each `write` pod
1352 selectorLabels: {}
1353 service:
1354 # -- Annotations for write Service
1355 annotations: {}
1356 # -- Additional labels for write Service
1357 labels: {}
1358 # -- Comma-separated list of Loki modules to load for the write
1359 targetModule: "write"
1360 # -- Additional CLI args for the write
1361 extraArgs: []
1362 # -- Environment variables to add to the write pods
1363 extraEnv: []
1364 # -- Environment variables from secrets or configmaps to add to the write pods
1365 extraEnvFrom: []
1366 # -- Lifecycle for the write container
1367 lifecycle: {}
1368 # -- The default /flush_shutdown preStop hook is recommended as part of the ingester
1369 # scaledown process so it's added to the template by default when autoscaling is enabled,
1370 # but it's disabled to optimize rolling restarts in instances that will never be scaled
1371 # down or when using chunks storage with WAL disabled.
1372 # https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown
1373 # -- Init containers to add to the write pods
1374 initContainers: []
1375 # -- Containers to add to the write pods
1376 extraContainers: []
1377 # -- Volume mounts to add to the write pods
1378 extraVolumeMounts: []
1379 # -- Volumes to add to the write pods
1380 extraVolumes: []
1381 # -- volumeClaimTemplates to add to StatefulSet
1382 extraVolumeClaimTemplates: []
1383 # -- Resource requests and limits for the write
1384 resources: {}
1385 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
1386 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
1387 # all data and to successfully leave the member ring on shutdown.
1388 terminationGracePeriodSeconds: 300
1389 # -- Affinity for write pods.
1390 # @default -- Hard node anti-affinity
1391 affinity:
1392 podAntiAffinity:
1393 requiredDuringSchedulingIgnoredDuringExecution:
1394 - labelSelector:
1395 matchLabels:
1396 app.kubernetes.io/component: write
1397 topologyKey: kubernetes.io/hostname
1398 # -- DNS config for write pods
1399 dnsConfig: {}
1400 # -- Node selector for write pods
1401 nodeSelector: {}
1402 # -- Topology Spread Constraints for write pods
1403 topologySpreadConstraints: []
1404 # -- Tolerations for write pods
1405 tolerations: []
1406 # -- The default is to deploy all pods in parallel.
1407 podManagementPolicy: "Parallel"
1408 persistence:
1409 # -- Enable volume claims in pod spec
1410 volumeClaimsEnabled: true
1411 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1412 dataVolumeParameters:
1413 emptyDir: {}
1414 # -- Enable StatefulSetAutoDeletePVC feature
1415 enableStatefulSetAutoDeletePVC: false
1416 # -- Size of persistent disk
1417 size: 10Gi
1418 # -- Storage class to be used.
1419 # If defined, storageClassName: <storageClass>.
1420 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1421 # If empty or set to null, no storageClassName spec is
1422 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1423 storageClass: null
1424 # -- Selector for persistent disk
1425 selector: null
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001426 # -- Annotations for volume claim
1427 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -04001428# -- Configuration for the read pod(s)
1429read:
1430 # -- Number of replicas for the read
1431 replicas: 3
1432 autoscaling:
1433 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
1434 enabled: false
1435 # -- Minimum autoscaling replicas for the read
1436 minReplicas: 2
1437 # -- Maximum autoscaling replicas for the read
1438 maxReplicas: 6
1439 # -- Target CPU utilisation percentage for the read
1440 targetCPUUtilizationPercentage: 60
1441 # -- Target memory utilisation percentage for the read
1442 targetMemoryUtilizationPercentage:
1443 # -- Behavior policies while scaling.
1444 behavior: {}
1445 # scaleUp:
1446 # stabilizationWindowSeconds: 300
1447 # policies:
1448 # - type: Pods
1449 # value: 1
1450 # periodSeconds: 60
1451 # scaleDown:
1452 # stabilizationWindowSeconds: 300
1453 # policies:
1454 # - type: Pods
1455 # value: 1
1456 # periodSeconds: 180
1457 image:
1458 # -- The Docker registry for the read image. Overrides `loki.image.registry`
1459 registry: null
1460 # -- Docker image repository for the read image. Overrides `loki.image.repository`
1461 repository: null
1462 # -- Docker image tag for the read image. Overrides `loki.image.tag`
1463 tag: null
1464 # -- The name of the PriorityClass for read pods
1465 priorityClassName: null
1466 # -- Annotations for read deployment
1467 annotations: {}
1468 # -- Annotations for read pods
1469 podAnnotations: {}
1470 # -- Additional labels for each `read` pod
1471 podLabels: {}
1472 # -- Additional selector labels for each `read` pod
1473 selectorLabels: {}
1474 service:
1475 # -- Annotations for read Service
1476 annotations: {}
1477 # -- Additional labels for read Service
1478 labels: {}
1479 # -- Comma-separated list of Loki modules to load for the read
1480 targetModule: "read"
1481 # -- Whether or not to use the 2 target type simple scalable mode (read, write) or the
1482 # 3 target type (read, write, backend). Legacy refers to the 2 target type, so true will
1483 # run two targets, false will run 3 targets.
1484 legacyReadTarget: false
1485 # -- Additional CLI args for the read
1486 extraArgs: []
1487 # -- Containers to add to the read pods
1488 extraContainers: []
1489 # -- Environment variables to add to the read pods
1490 extraEnv: []
1491 # -- Environment variables from secrets or configmaps to add to the read pods
1492 extraEnvFrom: []
1493 # -- Lifecycle for the read container
1494 lifecycle: {}
1495 # -- Volume mounts to add to the read pods
1496 extraVolumeMounts: []
1497 # -- Volumes to add to the read pods
1498 extraVolumes: []
1499 # -- Resource requests and limits for the read
1500 resources: {}
1501 # -- Grace period to allow the read to shutdown before it is killed
1502 terminationGracePeriodSeconds: 30
1503 # -- Affinity for read pods.
1504 # @default -- Hard node anti-affinity
1505 affinity:
1506 podAntiAffinity:
1507 requiredDuringSchedulingIgnoredDuringExecution:
1508 - labelSelector:
1509 matchLabels:
1510 app.kubernetes.io/component: read
1511 topologyKey: kubernetes.io/hostname
1512 # -- DNS config for read pods
1513 dnsConfig: {}
1514 # -- Node selector for read pods
1515 nodeSelector: {}
1516 # -- Topology Spread Constraints for read pods
1517 topologySpreadConstraints: []
1518 # -- Tolerations for read pods
1519 tolerations: []
1520 # -- The default is to deploy all pods in parallel.
1521 podManagementPolicy: "Parallel"
1522 persistence:
1523 # -- Enable StatefulSetAutoDeletePVC feature
1524 enableStatefulSetAutoDeletePVC: true
1525 # -- Size of persistent disk
1526 size: 10Gi
1527 # -- Storage class to be used.
1528 # If defined, storageClassName: <storageClass>.
1529 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1530 # If empty or set to null, no storageClassName spec is
1531 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1532 storageClass: null
1533 # -- Selector for persistent disk
1534 selector: null
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001535 # -- Annotations for volume claim
1536 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -04001537# -- Configuration for the backend pod(s)
1538backend:
1539 # -- Number of replicas for the backend
1540 replicas: 3
1541 autoscaling:
1542 # -- Enable autoscaling for the backend.
1543 enabled: false
1544 # -- Minimum autoscaling replicas for the backend.
1545 minReplicas: 3
1546 # -- Maximum autoscaling replicas for the backend.
1547 maxReplicas: 6
1548 # -- Target CPU utilization percentage for the backend.
1549 targetCPUUtilizationPercentage: 60
1550 # -- Target memory utilization percentage for the backend.
1551 targetMemoryUtilizationPercentage:
1552 # -- Behavior policies while scaling.
1553 behavior: {}
1554 # scaleUp:
1555 # stabilizationWindowSeconds: 300
1556 # policies:
1557 # - type: Pods
1558 # value: 1
1559 # periodSeconds: 60
1560 # scaleDown:
1561 # stabilizationWindowSeconds: 300
1562 # policies:
1563 # - type: Pods
1564 # value: 1
1565 # periodSeconds: 180
1566 image:
1567 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
1568 registry: null
1569 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
1570 repository: null
1571 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
1572 tag: null
1573 # -- The name of the PriorityClass for backend pods
1574 priorityClassName: null
1575 # -- Annotations for backend StatefulSet
1576 annotations: {}
1577 # -- Annotations for backend pods
1578 podAnnotations: {}
1579 # -- Additional labels for each `backend` pod
1580 podLabels: {}
1581 # -- Additional selector labels for each `backend` pod
1582 selectorLabels: {}
1583 service:
1584 # -- Annotations for backend Service
1585 annotations: {}
1586 # -- Additional labels for backend Service
1587 labels: {}
1588 # -- Comma-separated list of Loki modules to load for the read
1589 targetModule: "backend"
1590 # -- Additional CLI args for the backend
1591 extraArgs: []
1592 # -- Environment variables to add to the backend pods
1593 extraEnv: []
1594 # -- Environment variables from secrets or configmaps to add to the backend pods
1595 extraEnvFrom: []
1596 # -- Init containers to add to the backend pods
1597 initContainers: []
1598 # -- Volume mounts to add to the backend pods
1599 extraVolumeMounts: []
1600 # -- Volumes to add to the backend pods
1601 extraVolumes: []
1602 # -- Resource requests and limits for the backend
1603 resources: {}
1604 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
1605 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
1606 # all data and to successfully leave the member ring on shutdown.
1607 terminationGracePeriodSeconds: 300
1608 # -- Affinity for backend pods.
1609 # @default -- Hard node anti-affinity
1610 affinity:
1611 podAntiAffinity:
1612 requiredDuringSchedulingIgnoredDuringExecution:
1613 - labelSelector:
1614 matchLabels:
1615 app.kubernetes.io/component: backend
1616 topologyKey: kubernetes.io/hostname
1617 # -- DNS config for backend pods
1618 dnsConfig: {}
1619 # -- Node selector for backend pods
1620 nodeSelector: {}
1621 # -- Topology Spread Constraints for backend pods
1622 topologySpreadConstraints: []
1623 # -- Tolerations for backend pods
1624 tolerations: []
1625 # -- The default is to deploy all pods in parallel.
1626 podManagementPolicy: "Parallel"
1627 persistence:
1628 # -- Enable volume claims in pod spec
1629 volumeClaimsEnabled: true
1630 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1631 dataVolumeParameters:
1632 emptyDir: {}
1633 # -- Enable StatefulSetAutoDeletePVC feature
1634 enableStatefulSetAutoDeletePVC: true
1635 # -- Size of persistent disk
1636 size: 10Gi
1637 # -- Storage class to be used.
1638 # If defined, storageClassName: <storageClass>.
1639 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1640 # If empty or set to null, no storageClassName spec is
1641 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1642 storageClass: null
1643 # -- Selector for persistent disk
1644 selector: null
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001645 # -- Annotations for volume claim
1646 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -04001647######################################################################################################################
1648#
1649# Microservices Mode
1650#
1651# For large Loki deployments ingesting more than 1 TB/day
1652#
1653######################################################################################################################
1654
1655# -- Configuration for the ingester
1656ingester:
1657 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
1658 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
1659 replicas: 0
1660 # -- hostAliases to add
1661 hostAliases: []
1662 # - ip: 1.2.3.4
1663 # hostnames:
1664 # - domain.tld
1665 autoscaling:
1666 # -- Enable autoscaling for the ingester
1667 enabled: false
1668 # -- Minimum autoscaling replicas for the ingester
1669 minReplicas: 1
1670 # -- Maximum autoscaling replicas for the ingester
1671 maxReplicas: 3
1672 # -- Target CPU utilisation percentage for the ingester
1673 targetCPUUtilizationPercentage: 60
1674 # -- Target memory utilisation percentage for the ingester
1675 targetMemoryUtilizationPercentage: null
1676 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1677 customMetrics: []
1678 # - type: Pods
1679 # pods:
1680 # metric:
1681 # name: loki_lines_total
1682 # target:
1683 # type: AverageValue
1684 # averageValue: 10k
1685 behavior:
1686 # -- Enable autoscaling behaviours
1687 enabled: false
1688 # -- define scale down policies, must conform to HPAScalingRules
1689 scaleDown: {}
1690 # -- define scale up policies, must conform to HPAScalingRules
1691 scaleUp: {}
1692 image:
1693 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
1694 registry: null
1695 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
1696 repository: null
1697 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
1698 tag: null
1699 # -- Command to execute instead of defined in Docker image
1700 command: null
1701 priorityClassName: null
1702 # -- Labels for ingester pods
1703 podLabels: {}
1704 # -- Annotations for ingester pods
1705 podAnnotations: {}
1706 # -- The name of the PriorityClass for ingester pods
1707 # -- Labels for ingestor service
1708 serviceLabels: {}
1709 # -- Additional CLI args for the ingester
1710 extraArgs: []
1711 # -- Environment variables to add to the ingester pods
1712 extraEnv: []
1713 # -- Environment variables from secrets or configmaps to add to the ingester pods
1714 extraEnvFrom: []
1715 # -- Volume mounts to add to the ingester pods
1716 extraVolumeMounts: []
1717 # -- Volumes to add to the ingester pods
1718 extraVolumes: []
1719 # -- Resource requests and limits for the ingester
1720 resources: {}
1721 # -- Containers to add to the ingester pods
1722 extraContainers: []
1723 # -- Init containers to add to the ingester pods
1724 initContainers: []
1725 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
1726 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
1727 # all data and to successfully leave the member ring on shutdown.
1728 terminationGracePeriodSeconds: 300
1729 # -- Lifecycle for the ingester container
1730 lifecycle: {}
1731 # -- topologySpread for ingester pods.
1732 # @default -- Defaults to allow skew no more than 1 node
1733 topologySpreadConstraints:
1734 - maxSkew: 1
1735 topologyKey: kubernetes.io/hostname
1736 whenUnsatisfiable: ScheduleAnyway
1737 labelSelector:
1738 matchLabels:
1739 app.kubernetes.io/component: ingester
1740 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
1741 # @default -- Hard node anti-affinity
1742 affinity:
1743 podAntiAffinity:
1744 requiredDuringSchedulingIgnoredDuringExecution:
1745 - labelSelector:
1746 matchLabels:
1747 app.kubernetes.io/component: ingester
1748 topologyKey: kubernetes.io/hostname
1749 # -- Pod Disruption Budget maxUnavailable
1750 maxUnavailable: 1
1751 # -- Node selector for ingester pods
1752 nodeSelector: {}
1753 # -- Tolerations for ingester pods
1754 tolerations: []
1755 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
1756 readinessProbe: {}
1757 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
1758 livenessProbe: {}
1759 persistence:
1760 # -- Enable creating PVCs which is required when using boltdb-shipper
1761 enabled: false
1762 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
1763 inMemory: false
1764 # -- List of the ingester PVCs
1765 # @notationType -- list
1766 claims:
1767 - name: data
1768 size: 10Gi
1769 # -- Storage class to be used.
1770 # If defined, storageClassName: <storageClass>.
1771 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1772 # If empty or set to null, no storageClassName spec is
1773 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1774 storageClass: null
1775 # - name: wal
1776 # size: 150Gi
1777 # -- Enable StatefulSetAutoDeletePVC feature
1778 enableStatefulSetAutoDeletePVC: false
1779 whenDeleted: Retain
1780 whenScaled: Retain
1781 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
1782 appProtocol:
1783 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
1784 grpc: ""
1785 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
1786 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
1787 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
1788 # of the data).
1789 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
1790 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
1791 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
1792 zoneAwareReplication:
1793 # -- Enable zone awareness.
1794 enabled: true
1795 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
1796 maxUnavailablePct: 33
1797 # -- zoneA configuration
1798 zoneA:
1799 # -- optionally define a node selector for this zone
1800 nodeSelector: null
1801 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
1802 extraAffinity: {}
1803 # -- Specific annotations to add to zone A statefulset
1804 annotations: {}
1805 # -- Specific annotations to add to zone A pods
1806 podAnnotations: {}
1807 zoneB:
1808 # -- optionally define a node selector for this zone
1809 nodeSelector: null
1810 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
1811 extraAffinity: {}
1812 # -- Specific annotations to add to zone B statefulset
1813 annotations: {}
1814 # -- Specific annotations to add to zone B pods
1815 podAnnotations: {}
1816 zoneC:
1817 # -- optionally define a node selector for this zone
1818 nodeSelector: null
1819 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
1820 extraAffinity: {}
1821 # -- Specific annotations to add to zone C statefulset
1822 annotations: {}
1823 # -- Specific annotations to add to zone C pods
1824 podAnnotations: {}
1825 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
1826 migration:
1827 enabled: false
1828 excludeDefaultZone: false
1829 readPath: false
1830 writePath: false
1831# -- Configuration for the distributor
1832distributor:
1833 # -- Number of replicas for the distributor
1834 replicas: 0
1835 # -- hostAliases to add
1836 hostAliases: []
1837 # - ip: 1.2.3.4
1838 # hostnames:
1839 # - domain.tld
1840 autoscaling:
1841 # -- Enable autoscaling for the distributor
1842 enabled: false
1843 # -- Minimum autoscaling replicas for the distributor
1844 minReplicas: 1
1845 # -- Maximum autoscaling replicas for the distributor
1846 maxReplicas: 3
1847 # -- Target CPU utilisation percentage for the distributor
1848 targetCPUUtilizationPercentage: 60
1849 # -- Target memory utilisation percentage for the distributor
1850 targetMemoryUtilizationPercentage: null
1851 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1852 customMetrics: []
1853 # - type: Pods
1854 # pods:
1855 # metric:
1856 # name: loki_lines_total
1857 # target:
1858 # type: AverageValue
1859 # averageValue: 10k
1860 behavior:
1861 # -- Enable autoscaling behaviours
1862 enabled: false
1863 # -- define scale down policies, must conform to HPAScalingRules
1864 scaleDown: {}
1865 # -- define scale up policies, must conform to HPAScalingRules
1866 scaleUp: {}
1867 image:
1868 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
1869 registry: null
1870 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
1871 repository: null
1872 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
1873 tag: null
1874 # -- Command to execute instead of defined in Docker image
1875 command: null
1876 # -- The name of the PriorityClass for distributor pods
1877 priorityClassName: null
1878 # -- Labels for distributor pods
1879 podLabels: {}
1880 # -- Annotations for distributor pods
1881 podAnnotations: {}
1882 # -- Labels for distributor service
1883 serviceLabels: {}
1884 # -- Additional CLI args for the distributor
1885 extraArgs: []
1886 # -- Environment variables to add to the distributor pods
1887 extraEnv: []
1888 # -- Environment variables from secrets or configmaps to add to the distributor pods
1889 extraEnvFrom: []
1890 # -- Volume mounts to add to the distributor pods
1891 extraVolumeMounts: []
1892 # -- Volumes to add to the distributor pods
1893 extraVolumes: []
1894 # -- Resource requests and limits for the distributor
1895 resources: {}
1896 # -- Containers to add to the distributor pods
1897 extraContainers: []
1898 # -- Grace period to allow the distributor to shutdown before it is killed
1899 terminationGracePeriodSeconds: 30
1900 # -- Affinity for distributor pods.
1901 # @default -- Hard node anti-affinity
1902 affinity:
1903 podAntiAffinity:
1904 requiredDuringSchedulingIgnoredDuringExecution:
1905 - labelSelector:
1906 matchLabels:
1907 app.kubernetes.io/component: distributor
1908 topologyKey: kubernetes.io/hostname
1909 # -- Pod Disruption Budget maxUnavailable
1910 maxUnavailable: null
1911 # -- Max Surge for distributor pods
1912 maxSurge: 0
1913 # -- Node selector for distributor pods
1914 nodeSelector: {}
1915 # -- Tolerations for distributor pods
1916 tolerations: []
1917 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
1918 appProtocol:
1919 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
1920 grpc: ""
1921# -- Configuration for the querier
1922querier:
1923 # -- Number of replicas for the querier
1924 replicas: 0
1925 # -- hostAliases to add
1926 hostAliases: []
1927 # - ip: 1.2.3.4
1928 # hostnames:
1929 # - domain.tld
1930 autoscaling:
1931 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
1932 enabled: false
1933 # -- Minimum autoscaling replicas for the querier
1934 minReplicas: 1
1935 # -- Maximum autoscaling replicas for the querier
1936 maxReplicas: 3
1937 # -- Target CPU utilisation percentage for the querier
1938 targetCPUUtilizationPercentage: 60
1939 # -- Target memory utilisation percentage for the querier
1940 targetMemoryUtilizationPercentage: null
1941 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1942 customMetrics: []
1943 # - type: External
1944 # external:
1945 # metric:
1946 # name: loki_inflight_queries
1947 # target:
1948 # type: AverageValue
1949 # averageValue: 12
1950 behavior:
1951 # -- Enable autoscaling behaviours
1952 enabled: false
1953 # -- define scale down policies, must conform to HPAScalingRules
1954 scaleDown: {}
1955 # -- define scale up policies, must conform to HPAScalingRules
1956 scaleUp: {}
1957 image:
1958 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
1959 registry: null
1960 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
1961 repository: null
1962 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
1963 tag: null
1964 # -- Command to execute instead of defined in Docker image
1965 command: null
1966 # -- The name of the PriorityClass for querier pods
1967 priorityClassName: null
1968 # -- Labels for querier pods
1969 podLabels: {}
1970 # -- Annotations for querier pods
1971 podAnnotations: {}
1972 # -- Labels for querier service
1973 serviceLabels: {}
1974 # -- Additional CLI args for the querier
1975 extraArgs: []
1976 # -- Environment variables to add to the querier pods
1977 extraEnv: []
1978 # -- Environment variables from secrets or configmaps to add to the querier pods
1979 extraEnvFrom: []
1980 # -- Volume mounts to add to the querier pods
1981 extraVolumeMounts: []
1982 # -- Volumes to add to the querier pods
1983 extraVolumes: []
1984 # -- Resource requests and limits for the querier
1985 resources: {}
1986 # -- Containers to add to the querier pods
1987 extraContainers: []
1988 # -- Init containers to add to the querier pods
1989 initContainers: []
1990 # -- Grace period to allow the querier to shutdown before it is killed
1991 terminationGracePeriodSeconds: 30
1992 # -- topologySpread for querier pods.
1993 # @default -- Defaults to allow skew no more then 1 node
1994 topologySpreadConstraints:
1995 - maxSkew: 1
1996 topologyKey: kubernetes.io/hostname
1997 whenUnsatisfiable: ScheduleAnyway
1998 labelSelector:
1999 matchLabels:
2000 app.kubernetes.io/component: querier
2001 # -- Affinity for querier pods.
2002 # @default -- Hard node anti-affinity
2003 affinity:
2004 podAntiAffinity:
2005 requiredDuringSchedulingIgnoredDuringExecution:
2006 - labelSelector:
2007 matchLabels:
2008 app.kubernetes.io/component: querier
2009 topologyKey: kubernetes.io/hostname
2010 # -- Pod Disruption Budget maxUnavailable
2011 maxUnavailable: null
2012 # -- Max Surge for querier pods
2013 maxSurge: 0
2014 # -- Node selector for querier pods
2015 nodeSelector: {}
2016 # -- Tolerations for querier pods
2017 tolerations: []
2018 # -- DNSConfig for querier pods
2019 dnsConfig: {}
2020 persistence:
2021 # -- Enable creating PVCs for the querier cache
2022 enabled: false
2023 # -- Size of persistent disk
2024 size: 10Gi
2025 # -- Storage class to be used.
2026 # If defined, storageClassName: <storageClass>.
2027 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2028 # If empty or set to null, no storageClassName spec is
2029 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2030 storageClass: null
2031 # -- Annotations for querier PVCs
2032 annotations: {}
2033 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
2034 appProtocol:
2035 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2036 grpc: ""
2037# -- Configuration for the query-frontend
2038queryFrontend:
2039 # -- Number of replicas for the query-frontend
2040 replicas: 0
2041 # -- hostAliases to add
2042 hostAliases: []
2043 # - ip: 1.2.3.4
2044 # hostnames:
2045 # - domain.tld
2046 autoscaling:
2047 # -- Enable autoscaling for the query-frontend
2048 enabled: false
2049 # -- Minimum autoscaling replicas for the query-frontend
2050 minReplicas: 1
2051 # -- Maximum autoscaling replicas for the query-frontend
2052 maxReplicas: 3
2053 # -- Target CPU utilisation percentage for the query-frontend
2054 targetCPUUtilizationPercentage: 60
2055 # -- Target memory utilisation percentage for the query-frontend
2056 targetMemoryUtilizationPercentage: null
2057 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2058 customMetrics: []
2059 # - type: Pods
2060 # pods:
2061 # metric:
2062 # name: loki_query_rate
2063 # target:
2064 # type: AverageValue
2065 # averageValue: 100
2066 behavior:
2067 # -- Enable autoscaling behaviours
2068 enabled: false
2069 # -- define scale down policies, must conform to HPAScalingRules
2070 scaleDown: {}
2071 # -- define scale up policies, must conform to HPAScalingRules
2072 scaleUp: {}
2073 image:
2074 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
2075 registry: null
2076 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
2077 repository: null
2078 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
2079 tag: null
2080 # -- Command to execute instead of defined in Docker image
2081 command: null
2082 # -- The name of the PriorityClass for query-frontend pods
2083 priorityClassName: null
2084 # -- Labels for query-frontend pods
2085 podLabels: {}
2086 # -- Annotations for query-frontend pods
2087 podAnnotations: {}
2088 # -- Labels for query-frontend service
2089 serviceLabels: {}
2090 # -- Additional CLI args for the query-frontend
2091 extraArgs: []
2092 # -- Environment variables to add to the query-frontend pods
2093 extraEnv: []
2094 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
2095 extraEnvFrom: []
2096 # -- Volume mounts to add to the query-frontend pods
2097 extraVolumeMounts: []
2098 # -- Volumes to add to the query-frontend pods
2099 extraVolumes: []
2100 # -- Resource requests and limits for the query-frontend
2101 resources: {}
2102 # -- Containers to add to the query-frontend pods
2103 extraContainers: []
2104 # -- Grace period to allow the query-frontend to shutdown before it is killed
2105 terminationGracePeriodSeconds: 30
2106 # -- Affinity for query-frontend pods.
2107 # @default -- Hard node anti-affinity
2108 affinity:
2109 podAntiAffinity:
2110 requiredDuringSchedulingIgnoredDuringExecution:
2111 - labelSelector:
2112 matchLabels:
2113 app.kubernetes.io/component: query-frontend
2114 topologyKey: kubernetes.io/hostname
2115 # -- Pod Disruption Budget maxUnavailable
2116 maxUnavailable: null
2117 # -- Node selector for query-frontend pods
2118 nodeSelector: {}
2119 # -- Tolerations for query-frontend pods
2120 tolerations: []
2121 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
2122 appProtocol:
2123 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2124 grpc: ""
2125# -- Configuration for the query-scheduler
2126queryScheduler:
2127 # -- Number of replicas for the query-scheduler.
2128 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
2129 # it's also recommended that this value evenly divides the latter
2130 replicas: 0
2131 # -- hostAliases to add
2132 hostAliases: []
2133 # - ip: 1.2.3.4
2134 # hostnames:
2135 # - domain.tld
2136 image:
2137 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
2138 registry: null
2139 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
2140 repository: null
2141 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
2142 tag: null
2143 # -- The name of the PriorityClass for query-scheduler pods
2144 priorityClassName: null
2145 # -- Labels for query-scheduler pods
2146 podLabels: {}
2147 # -- Annotations for query-scheduler pods
2148 podAnnotations: {}
2149 # -- Labels for query-scheduler service
2150 serviceLabels: {}
2151 # -- Additional CLI args for the query-scheduler
2152 extraArgs: []
2153 # -- Environment variables to add to the query-scheduler pods
2154 extraEnv: []
2155 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
2156 extraEnvFrom: []
2157 # -- Volume mounts to add to the query-scheduler pods
2158 extraVolumeMounts: []
2159 # -- Volumes to add to the query-scheduler pods
2160 extraVolumes: []
2161 # -- Resource requests and limits for the query-scheduler
2162 resources: {}
2163 # -- Containers to add to the query-scheduler pods
2164 extraContainers: []
2165 # -- Grace period to allow the query-scheduler to shutdown before it is killed
2166 terminationGracePeriodSeconds: 30
2167 # -- Affinity for query-scheduler pods.
2168 # @default -- Hard node anti-affinity
2169 affinity:
2170 podAntiAffinity:
2171 requiredDuringSchedulingIgnoredDuringExecution:
2172 - labelSelector:
2173 matchLabels:
2174 app.kubernetes.io/component: query-scheduler
2175 topologyKey: kubernetes.io/hostname
2176 # -- Pod Disruption Budget maxUnavailable
2177 maxUnavailable: 1
2178 # -- Node selector for query-scheduler pods
2179 nodeSelector: {}
2180 # -- Tolerations for query-scheduler pods
2181 tolerations: []
2182 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2183 appProtocol:
2184 grpc: ""
2185# -- Configuration for the index-gateway
2186indexGateway:
2187 # -- Number of replicas for the index-gateway
2188 replicas: 0
2189 # -- Whether the index gateway should join the memberlist hashring
2190 joinMemberlist: true
2191 # -- hostAliases to add
2192 hostAliases: []
2193 # - ip: 1.2.3.4
2194 # hostnames:
2195 # - domain.tld
2196 image:
2197 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
2198 registry: null
2199 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
2200 repository: null
2201 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
2202 tag: null
2203 # -- The name of the PriorityClass for index-gateway pods
2204 priorityClassName: null
2205 # -- Labels for index-gateway pods
2206 podLabels: {}
2207 # -- Annotations for index-gateway pods
2208 podAnnotations: {}
2209 # -- Labels for index-gateway service
2210 serviceLabels: {}
2211 # -- Additional CLI args for the index-gateway
2212 extraArgs: []
2213 # -- Environment variables to add to the index-gateway pods
2214 extraEnv: []
2215 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
2216 extraEnvFrom: []
2217 # -- Volume mounts to add to the index-gateway pods
2218 extraVolumeMounts: []
2219 # -- Volumes to add to the index-gateway pods
2220 extraVolumes: []
2221 # -- Resource requests and limits for the index-gateway
2222 resources: {}
2223 # -- Containers to add to the index-gateway pods
2224 extraContainers: []
2225 # -- Init containers to add to the index-gateway pods
2226 initContainers: []
2227 # -- Grace period to allow the index-gateway to shutdown before it is killed.
2228 terminationGracePeriodSeconds: 300
2229 # -- Affinity for index-gateway pods.
2230 # @default -- Hard node anti-affinity
2231 affinity:
2232 podAntiAffinity:
2233 requiredDuringSchedulingIgnoredDuringExecution:
2234 - labelSelector:
2235 matchLabels:
2236 app.kubernetes.io/component: index-gateway
2237 topologyKey: kubernetes.io/hostname
2238 # -- Pod Disruption Budget maxUnavailable
2239 maxUnavailable: null
2240 # -- Node selector for index-gateway pods
2241 nodeSelector: {}
2242 # -- Tolerations for index-gateway pods
2243 tolerations: []
2244 persistence:
2245 # -- Enable creating PVCs which is required when using boltdb-shipper
2246 enabled: false
2247 # -- Use emptyDir with ramdisk for storage. **Please note that all data in indexGateway will be lost on pod restart**
2248 inMemory: false
2249 # -- Size of persistent or memory disk
2250 size: 10Gi
2251 # -- Storage class to be used.
2252 # If defined, storageClassName: <storageClass>.
2253 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2254 # If empty or set to null, no storageClassName spec is
2255 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2256 storageClass: null
2257 # -- Annotations for index gateway PVCs
2258 annotations: {}
2259 # -- Enable StatefulSetAutoDeletePVC feature
2260 enableStatefulSetAutoDeletePVC: false
2261 whenDeleted: Retain
2262 whenScaled: Retain
2263 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2264 appProtocol:
2265 grpc: ""
2266# -- Configuration for the compactor
2267compactor:
2268 # -- Number of replicas for the compactor
2269 replicas: 0
2270 # -- hostAliases to add
2271 hostAliases: []
2272 # - ip: 1.2.3.4
2273 # hostnames:
2274 # - domain.tld
2275 image:
2276 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
2277 registry: null
2278 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
2279 repository: null
2280 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
2281 tag: null
2282 # -- Command to execute instead of defined in Docker image
2283 command: null
2284 # -- The name of the PriorityClass for compactor pods
2285 priorityClassName: null
2286 # -- Labels for compactor pods
2287 podLabels: {}
2288 # -- Annotations for compactor pods
2289 podAnnotations: {}
2290 # -- Affinity for compactor pods.
2291 # @default -- Hard node anti-affinity
2292 affinity:
2293 podAntiAffinity:
2294 requiredDuringSchedulingIgnoredDuringExecution:
2295 - labelSelector:
2296 matchLabels:
2297 app.kubernetes.io/component: compactor
2298 topologyKey: kubernetes.io/hostname
2299 # -- Labels for compactor service
2300 serviceLabels: {}
2301 # -- Additional CLI args for the compactor
2302 extraArgs: []
2303 # -- Environment variables to add to the compactor pods
2304 extraEnv: []
2305 # -- Environment variables from secrets or configmaps to add to the compactor pods
2306 extraEnvFrom: []
2307 # -- Volume mounts to add to the compactor pods
2308 extraVolumeMounts: []
2309 # -- Volumes to add to the compactor pods
2310 extraVolumes: []
2311 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2312 readinessProbe: {}
2313 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2314 livenessProbe: {}
2315 # -- Resource requests and limits for the compactor
2316 resources: {}
2317 # -- Containers to add to the compactor pods
2318 extraContainers: []
2319 # -- Init containers to add to the compactor pods
2320 initContainers: []
2321 # -- Grace period to allow the compactor to shutdown before it is killed
2322 terminationGracePeriodSeconds: 30
2323 # -- Node selector for compactor pods
2324 nodeSelector: {}
2325 # -- Tolerations for compactor pods
2326 tolerations: []
2327 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2328 appProtocol:
2329 grpc: ""
2330 persistence:
2331 # -- Enable creating PVCs for the compactor
2332 enabled: false
2333 # -- Size of persistent disk
2334 size: 10Gi
2335 # -- Storage class to be used.
2336 # If defined, storageClassName: <storageClass>.
2337 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2338 # If empty or set to null, no storageClassName spec is
2339 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2340 storageClass: null
2341 # -- Annotations for compactor PVCs
2342 annotations: {}
2343 # -- List of the compactor PVCs
2344 # @notationType -- list
2345 claims:
2346 - name: data
2347 size: 10Gi
2348 # -- Storage class to be used.
2349 # If defined, storageClassName: <storageClass>.
2350 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2351 # If empty or set to null, no storageClassName spec is
2352 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2353 storageClass: null
2354 # - name: wal
2355 # size: 150Gi
2356 # -- Enable StatefulSetAutoDeletePVC feature
2357 enableStatefulSetAutoDeletePVC: false
2358 whenDeleted: Retain
2359 whenScaled: Retain
2360 serviceAccount:
2361 create: false
2362 # -- The name of the ServiceAccount to use for the compactor.
2363 # If not set and create is true, a name is generated by appending
2364 # "-compactor" to the common ServiceAccount.
2365 name: null
2366 # -- Image pull secrets for the compactor service account
2367 imagePullSecrets: []
2368 # -- Annotations for the compactor service account
2369 annotations: {}
2370 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2371 automountServiceAccountToken: true
2372# -- Configuration for the bloom gateway
2373bloomGateway:
2374 # -- Number of replicas for the bloom gateway
2375 replicas: 0
2376 # -- hostAliases to add
2377 hostAliases: []
2378 # - ip: 1.2.3.4
2379 # hostnames:
2380 # - domain.tld
2381 image:
2382 # -- The Docker registry for the bloom gateway image. Overrides `loki.image.registry`
2383 registry: null
2384 # -- Docker image repository for the bloom gateway image. Overrides `loki.image.repository`
2385 repository: null
2386 # -- Docker image tag for the bloom gateway image. Overrides `loki.image.tag`
2387 tag: null
2388 # -- Command to execute instead of defined in Docker image
2389 command: null
2390 # -- The name of the PriorityClass for bloom gateway pods
2391 priorityClassName: null
2392 # -- Labels for bloom gateway pods
2393 podLabels: {}
2394 # -- Annotations for bloom gateway pods
2395 podAnnotations: {}
2396 # -- Affinity for bloom gateway pods.
2397 # @default -- Hard node anti-affinity
2398 affinity:
2399 podAntiAffinity:
2400 requiredDuringSchedulingIgnoredDuringExecution:
2401 - labelSelector:
2402 matchLabels:
2403 app.kubernetes.io/component: bloom-gateway
2404 topologyKey: kubernetes.io/hostname
2405 # -- Labels for bloom gateway service
2406 serviceLabels: {}
2407 # -- Additional CLI args for the bloom gateway
2408 extraArgs: []
2409 # -- Environment variables to add to the bloom gateway pods
2410 extraEnv: []
2411 # -- Environment variables from secrets or configmaps to add to the bloom gateway pods
2412 extraEnvFrom: []
2413 # -- Volume mounts to add to the bloom gateway pods
2414 extraVolumeMounts: []
2415 # -- Volumes to add to the bloom gateway pods
2416 extraVolumes: []
2417 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2418 readinessProbe: {}
2419 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2420 livenessProbe: {}
2421 # -- Resource requests and limits for the bloom gateway
2422 resources: {}
2423 # -- Containers to add to the bloom gateway pods
2424 extraContainers: []
2425 # -- Init containers to add to the bloom gateway pods
2426 initContainers: []
2427 # -- Grace period to allow the bloom gateway to shutdown before it is killed
2428 terminationGracePeriodSeconds: 30
2429 # -- Node selector for bloom gateway pods
2430 nodeSelector: {}
2431 # -- Tolerations for bloom gateway pods
2432 tolerations: []
2433 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2434 appProtocol:
2435 grpc: ""
2436 persistence:
2437 # -- Enable creating PVCs for the bloom gateway
2438 enabled: false
2439 # -- Size of persistent disk
2440 size: 10Gi
2441 # -- Storage class to be used.
2442 # If defined, storageClassName: <storageClass>.
2443 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2444 # If empty or set to null, no storageClassName spec is
2445 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2446 storageClass: null
2447 # -- Annotations for bloom gateway PVCs
2448 annotations: {}
2449 # -- List of the bloom gateway PVCs
2450 # @notationType -- list
2451 claims:
2452 - name: data
2453 size: 10Gi
2454 # -- Storage class to be used.
2455 # If defined, storageClassName: <storageClass>.
2456 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2457 # If empty or set to null, no storageClassName spec is
2458 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2459 storageClass: null
2460 # - name: wal
2461 # size: 150Gi
2462 # -- Enable StatefulSetAutoDeletePVC feature
2463 enableStatefulSetAutoDeletePVC: false
2464 whenDeleted: Retain
2465 whenScaled: Retain
2466 serviceAccount:
2467 create: false
2468 # -- The name of the ServiceAccount to use for the bloom gateway.
2469 # If not set and create is true, a name is generated by appending
2470 # "-bloom-gateway" to the common ServiceAccount.
2471 name: null
2472 # -- Image pull secrets for the bloom gateway service account
2473 imagePullSecrets: []
2474 # -- Annotations for the bloom gateway service account
2475 annotations: {}
2476 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2477 automountServiceAccountToken: true
2478# -- Configuration for the bloom compactor
2479bloomCompactor:
2480 # -- Number of replicas for the bloom compactor
2481 replicas: 0
2482 # -- hostAliases to add
2483 hostAliases: []
2484 # - ip: 1.2.3.4
2485 # hostnames:
2486 # - domain.tld
2487 image:
2488 # -- The Docker registry for the bloom compactor image. Overrides `loki.image.registry`
2489 registry: null
2490 # -- Docker image repository for the bloom compactor image. Overrides `loki.image.repository`
2491 repository: null
2492 # -- Docker image tag for the bloom compactor image. Overrides `loki.image.tag`
2493 tag: null
2494 # -- Command to execute instead of defined in Docker image
2495 command: null
2496 # -- The name of the PriorityClass for bloom compactor pods
2497 priorityClassName: null
2498 # -- Labels for bloom compactor pods
2499 podLabels: {}
2500 # -- Annotations for bloom compactor pods
2501 podAnnotations: {}
2502 # -- Affinity for bloom compactor pods.
2503 # @default -- Hard node anti-affinity
2504 affinity:
2505 podAntiAffinity:
2506 requiredDuringSchedulingIgnoredDuringExecution:
2507 - labelSelector:
2508 matchLabels:
2509 app.kubernetes.io/component: bloom-compactor
2510 topologyKey: kubernetes.io/hostname
2511 # -- Labels for bloom compactor service
2512 serviceLabels: {}
2513 # -- Additional CLI args for the bloom compactor
2514 extraArgs: []
2515 # -- Environment variables to add to the bloom compactor pods
2516 extraEnv: []
2517 # -- Environment variables from secrets or configmaps to add to the bloom compactor pods
2518 extraEnvFrom: []
2519 # -- Volume mounts to add to the bloom compactor pods
2520 extraVolumeMounts: []
2521 # -- Volumes to add to the bloom compactor pods
2522 extraVolumes: []
2523 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2524 readinessProbe: {}
2525 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2526 livenessProbe: {}
2527 # -- Resource requests and limits for the bloom compactor
2528 resources: {}
2529 # -- Containers to add to the bloom compactor pods
2530 extraContainers: []
2531 # -- Init containers to add to the bloom compactor pods
2532 initContainers: []
2533 # -- Grace period to allow the bloom compactor to shutdown before it is killed
2534 terminationGracePeriodSeconds: 30
2535 # -- Node selector for bloom compactor pods
2536 nodeSelector: {}
2537 # -- Tolerations for bloom compactor pods
2538 tolerations: []
2539 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2540 appProtocol:
2541 grpc: ""
2542 persistence:
2543 # -- Enable creating PVCs for the bloom compactor
2544 enabled: false
2545 # -- Size of persistent disk
2546 size: 10Gi
2547 # -- Storage class to be used.
2548 # If defined, storageClassName: <storageClass>.
2549 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2550 # If empty or set to null, no storageClassName spec is
2551 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2552 storageClass: null
2553 # -- Annotations for bloom compactor PVCs
2554 annotations: {}
2555 # -- List of the bloom compactor PVCs
2556 # @notationType -- list
2557 claims:
2558 - name: data
2559 size: 10Gi
2560 # -- Storage class to be used.
2561 # If defined, storageClassName: <storageClass>.
2562 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2563 # If empty or set to null, no storageClassName spec is
2564 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2565 storageClass: null
2566 # - name: wal
2567 # size: 150Gi
2568 # -- Enable StatefulSetAutoDeletePVC feature
2569 enableStatefulSetAutoDeletePVC: false
2570 whenDeleted: Retain
2571 whenScaled: Retain
2572 serviceAccount:
2573 create: false
2574 # -- The name of the ServiceAccount to use for the bloom compactor.
2575 # If not set and create is true, a name is generated by appending
2576 # "-bloom-compactor" to the common ServiceAccount.
2577 name: null
2578 # -- Image pull secrets for the bloom compactor service account
2579 imagePullSecrets: []
2580 # -- Annotations for the bloom compactor service account
2581 annotations: {}
2582 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2583 automountServiceAccountToken: true
2584# -- Configuration for the pattern ingester
2585patternIngester:
2586 # -- Number of replicas for the pattern ingester
2587 replicas: 0
2588 # -- hostAliases to add
2589 hostAliases: []
2590 # - ip: 1.2.3.4
2591 # hostnames:
2592 # - domain.tld
2593 image:
2594 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
2595 registry: null
2596 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
2597 repository: null
2598 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
2599 tag: null
2600 # -- Command to execute instead of defined in Docker image
2601 command: null
2602 # -- The name of the PriorityClass for pattern ingester pods
2603 priorityClassName: null
2604 # -- Labels for pattern ingester pods
2605 podLabels: {}
2606 # -- Annotations for pattern ingester pods
2607 podAnnotations: {}
2608 # -- Affinity for pattern ingester pods.
2609 # @default -- Hard node anti-affinity
2610 affinity:
2611 podAntiAffinity:
2612 requiredDuringSchedulingIgnoredDuringExecution:
2613 - labelSelector:
2614 matchLabels:
2615 app.kubernetes.io/component: pattern-ingester
2616 topologyKey: kubernetes.io/hostname
2617 # -- Labels for pattern ingester service
2618 serviceLabels: {}
2619 # -- Additional CLI args for the pattern ingester
2620 extraArgs: []
2621 # -- Environment variables to add to the pattern ingester pods
2622 extraEnv: []
2623 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
2624 extraEnvFrom: []
2625 # -- Volume mounts to add to the pattern ingester pods
2626 extraVolumeMounts: []
2627 # -- Volumes to add to the pattern ingester pods
2628 extraVolumes: []
2629 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2630 readinessProbe: {}
2631 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2632 livenessProbe: {}
2633 # -- Resource requests and limits for the pattern ingester
2634 resources: {}
2635 # -- Containers to add to the pattern ingester pods
2636 extraContainers: []
2637 # -- Init containers to add to the pattern ingester pods
2638 initContainers: []
2639 # -- Grace period to allow the pattern ingester to shutdown before it is killed
2640 terminationGracePeriodSeconds: 30
2641 # -- Node selector for pattern ingester pods
2642 nodeSelector: {}
2643 # -- Tolerations for pattern ingester pods
2644 tolerations: []
2645 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2646 appProtocol:
2647 grpc: ""
2648 persistence:
2649 # -- Enable creating PVCs for the pattern ingester
2650 enabled: false
2651 # -- Size of persistent disk
2652 size: 10Gi
2653 # -- Storage class to be used.
2654 # If defined, storageClassName: <storageClass>.
2655 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2656 # If empty or set to null, no storageClassName spec is
2657 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2658 storageClass: null
2659 # -- Annotations for pattern ingester PVCs
2660 annotations: {}
2661 # -- List of the pattern ingester PVCs
2662 # @notationType -- list
2663 claims:
2664 - name: data
2665 size: 10Gi
2666 # -- Storage class to be used.
2667 # If defined, storageClassName: <storageClass>.
2668 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2669 # If empty or set to null, no storageClassName spec is
2670 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2671 storageClass: null
2672 # - name: wal
2673 # size: 150Gi
2674 # -- Enable StatefulSetAutoDeletePVC feature
2675 enableStatefulSetAutoDeletePVC: false
2676 whenDeleted: Retain
2677 whenScaled: Retain
2678 serviceAccount:
2679 create: false
2680 # -- The name of the ServiceAccount to use for the pattern ingester.
2681 # If not set and create is true, a name is generated by appending
2682 # "-pattern-ingester" to the common ServiceAccount.
2683 name: null
2684 # -- Image pull secrets for the pattern ingester service account
2685 imagePullSecrets: []
2686 # -- Annotations for the pattern ingester service account
2687 annotations: {}
2688 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2689 automountServiceAccountToken: true
2690# -- Configuration for the ruler
2691ruler:
2692 # -- The ruler component is optional and can be disabled if desired.
2693 enabled: true
2694 # -- Number of replicas for the ruler
2695 replicas: 0
2696 # -- hostAliases to add
2697 hostAliases: []
2698 # - ip: 1.2.3.4
2699 # hostnames:
2700 # - domain.tld
2701 image:
2702 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
2703 registry: null
2704 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
2705 repository: null
2706 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
2707 tag: null
2708 # -- Command to execute instead of defined in Docker image
2709 command: null
2710 # -- The name of the PriorityClass for ruler pods
2711 priorityClassName: null
2712 # -- Labels for compactor pods
2713 podLabels: {}
2714 # -- Annotations for ruler pods
2715 podAnnotations: {}
2716 # -- Labels for ruler service
2717 serviceLabels: {}
2718 # -- Additional CLI args for the ruler
2719 extraArgs: []
2720 # -- Environment variables to add to the ruler pods
2721 extraEnv: []
2722 # -- Environment variables from secrets or configmaps to add to the ruler pods
2723 extraEnvFrom: []
2724 # -- Volume mounts to add to the ruler pods
2725 extraVolumeMounts: []
2726 # -- Volumes to add to the ruler pods
2727 extraVolumes: []
2728 # -- Resource requests and limits for the ruler
2729 resources: {}
2730 # -- Containers to add to the ruler pods
2731 extraContainers: []
2732 # -- Init containers to add to the ruler pods
2733 initContainers: []
2734 # -- Grace period to allow the ruler to shutdown before it is killed
2735 terminationGracePeriodSeconds: 300
2736 # -- Affinity for ruler pods.
2737 # @default -- Hard node anti-affinity
2738 affinity:
2739 podAntiAffinity:
2740 requiredDuringSchedulingIgnoredDuringExecution:
2741 - labelSelector:
2742 matchLabels:
2743 app.kubernetes.io/component: ruler
2744 topologyKey: kubernetes.io/hostname
2745 # -- Pod Disruption Budget maxUnavailable
2746 maxUnavailable: null
2747 # -- Node selector for ruler pods
2748 nodeSelector: {}
2749 # -- Tolerations for ruler pods
2750 tolerations: []
2751 # -- DNSConfig for ruler pods
2752 dnsConfig: {}
2753 persistence:
2754 # -- Enable creating PVCs which is required when using recording rules
2755 enabled: false
2756 # -- Size of persistent disk
2757 size: 10Gi
2758 # -- Storage class to be used.
2759 # If defined, storageClassName: <storageClass>.
2760 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2761 # If empty or set to null, no storageClassName spec is
2762 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2763 storageClass: null
2764 # -- Annotations for ruler PVCs
2765 annotations: {}
2766 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2767 appProtocol:
2768 grpc: ""
2769 # -- Directories containing rules files
2770 directories: {}
2771 # tenant_foo:
2772 # rules1.txt: |
2773 # groups:
2774 # - name: should_fire
2775 # rules:
2776 # - alert: HighPercentageError
2777 # expr: |
2778 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
2779 # /
2780 # sum(rate({app="foo", env="production"}[5m])) by (job)
2781 # > 0.05
2782 # for: 10m
2783 # labels:
2784 # severity: warning
2785 # annotations:
2786 # summary: High error rate
2787 # - name: credentials_leak
2788 # rules:
2789 # - alert: http-credentials-leaked
2790 # annotations:
2791 # message: "{{ $labels.job }} is leaking http basic auth credentials."
2792 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
2793 # for: 10m
2794 # labels:
2795 # severity: critical
2796 # rules2.txt: |
2797 # groups:
2798 # - name: example
2799 # rules:
2800 # - alert: HighThroughputLogStreams
2801 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
2802 # for: 2m
2803 # tenant_bar:
2804 # rules1.txt: |
2805 # groups:
2806 # - name: should_fire
2807 # rules:
2808 # - alert: HighPercentageError
2809 # expr: |
2810 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
2811 # /
2812 # sum(rate({app="foo", env="production"}[5m])) by (job)
2813 # > 0.05
2814 # for: 10m
2815 # labels:
2816 # severity: warning
2817 # annotations:
2818 # summary: High error rate
2819 # - name: credentials_leak
2820 # rules:
2821 # - alert: http-credentials-leaked
2822 # annotations:
2823 # message: "{{ $labels.job }} is leaking http basic auth credentials."
2824 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
2825 # for: 10m
2826 # labels:
2827 # severity: critical
2828 # rules2.txt: |
2829 # groups:
2830 # - name: example
2831 # rules:
2832 # - alert: HighThroughputLogStreams
2833 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
2834 # for: 2m
2835memcached:
2836 image:
2837 # -- Memcached Docker image repository
2838 repository: memcached
2839 # -- Memcached Docker image tag
2840 tag: 1.6.23-alpine
2841 # -- Memcached Docker image pull policy
2842 pullPolicy: IfNotPresent
2843 # -- The SecurityContext override for memcached pods
2844 podSecurityContext: {}
2845 # -- The name of the PriorityClass for memcached pods
2846 priorityClassName: null
2847 # -- The SecurityContext for memcached containers
2848 containerSecurityContext:
2849 readOnlyRootFilesystem: true
2850 capabilities:
2851 drop: [ALL]
2852 allowPrivilegeEscalation: false
2853memcachedExporter:
2854 # -- Whether memcached metrics should be exported
2855 enabled: true
2856 image:
2857 repository: prom/memcached-exporter
2858 tag: v0.14.2
2859 pullPolicy: IfNotPresent
2860 resources:
2861 requests: {}
2862 limits: {}
2863 # -- The SecurityContext for memcached exporter containers
2864 containerSecurityContext:
2865 readOnlyRootFilesystem: true
2866 capabilities:
2867 drop: [ALL]
2868 allowPrivilegeEscalation: false
2869 # -- Extra args to add to the exporter container.
2870 # Example:
2871 # extraArgs:
2872 # memcached.tls.enable: true
2873 # memcached.tls.cert-file: /certs/cert.crt
2874 # memcached.tls.key-file: /certs/cert.key
2875 # memcached.tls.ca-file: /certs/ca.crt
2876 # memcached.tls.insecure-skip-verify: false
2877 # memcached.tls.server-name: memcached
2878 extraArgs: {}
2879resultsCache:
2880 # -- Specifies whether memcached based results-cache should be enabled
2881 enabled: true
2882 # -- Specify how long cached results should be stored in the results-cache before being expired
2883 defaultValidity: 12h
2884 # -- Memcached operation timeout
2885 timeout: 500ms
2886 # -- Total number of results-cache replicas
2887 replicas: 1
2888 # -- Port of the results-cache service
2889 port: 11211
2890 # -- Amount of memory allocated to results-cache for object storage (in MB).
2891 allocatedMemory: 1024
2892 # -- Maximum item results-cache for memcached (in MB).
2893 maxItemMemory: 5
2894 # -- Maximum number of connections allowed
2895 connectionLimit: 16384
2896 # -- Max memory to use for cache write back
2897 writebackSizeLimit: 500MB
2898 # -- Max number of objects to use for cache write back
2899 writebackBuffer: 500000
2900 # -- Number of parallel threads for cache write back
2901 writebackParallelism: 1
2902 # -- Extra init containers for results-cache pods
2903 initContainers: []
2904 # -- Annotations for the results-cache pods
2905 annotations: {}
2906 # -- Node selector for results-cache pods
2907 nodeSelector: {}
2908 # -- Affinity for results-cache pods
2909 affinity: {}
2910 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
2911 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
2912 topologySpreadConstraints: []
2913 # maxSkew: 1
2914 # topologyKey: kubernetes.io/hostname
2915 # whenUnsatisfiable: ScheduleAnyway
2916 # -- Tolerations for results-cache pods
2917 tolerations: []
2918 # -- Pod Disruption Budget
2919 podDisruptionBudget:
2920 maxUnavailable: 1
2921 # -- The name of the PriorityClass for results-cache pods
2922 priorityClassName: null
2923 # -- Labels for results-cache pods
2924 podLabels: {}
2925 # -- Annotations for results-cache pods
2926 podAnnotations: {}
2927 # -- Management policy for results-cache pods
2928 podManagementPolicy: Parallel
2929 # -- Grace period to allow the results-cache to shutdown before it is killed
2930 terminationGracePeriodSeconds: 60
2931 # -- Stateful results-cache strategy
2932 statefulStrategy:
2933 type: RollingUpdate
2934 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
2935 # Example:
2936 # extraExtendedOptions: 'tls,modern,track_sizes'
2937 extraExtendedOptions: ""
2938 # -- Additional CLI args for results-cache
2939 extraArgs: {}
2940 # -- Additional containers to be added to the results-cache pod.
2941 extraContainers: []
2942 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
2943 # Example:
2944 # extraVolumes:
2945 # - name: extra-volume
2946 # secret:
2947 # secretName: extra-volume-secret
2948 extraVolumes: []
2949 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
2950 # Example:
2951 # extraVolumeMounts:
2952 # - name: extra-volume
2953 # mountPath: /etc/extra-volume
2954 # readOnly: true
2955 extraVolumeMounts: []
2956 # -- Resource requests and limits for the results-cache
2957 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
2958 resources: null
2959 # -- Service annotations and labels
2960 service:
2961 annotations: {}
2962 labels: {}
2963chunksCache:
2964 # -- Specifies whether memcached based chunks-cache should be enabled
2965 enabled: true
2966 # -- Batchsize for sending and receiving chunks from chunks cache
2967 batchSize: 4
2968 # -- Parallel threads for sending and receiving chunks from chunks cache
2969 parallelism: 5
2970 # -- Memcached operation timeout
2971 timeout: 2000ms
2972 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
2973 defaultValidity: 0s
2974 # -- Total number of chunks-cache replicas
2975 replicas: 1
2976 # -- Port of the chunks-cache service
2977 port: 11211
2978 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
2979 allocatedMemory: 8192
2980 # -- Maximum item memory for chunks-cache (in MB).
2981 maxItemMemory: 5
2982 # -- Maximum number of connections allowed
2983 connectionLimit: 16384
2984 # -- Max memory to use for cache write back
2985 writebackSizeLimit: 500MB
2986 # -- Max number of objects to use for cache write back
2987 writebackBuffer: 500000
2988 # -- Number of parallel threads for cache write back
2989 writebackParallelism: 1
2990 # -- Extra init containers for chunks-cache pods
2991 initContainers: []
2992 # -- Annotations for the chunks-cache pods
2993 annotations: {}
2994 # -- Node selector for chunks-cache pods
2995 nodeSelector: {}
2996 # -- Affinity for chunks-cache pods
2997 affinity: {}
2998 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
2999 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3000 topologySpreadConstraints: []
3001 # maxSkew: 1
3002 # topologyKey: kubernetes.io/hostname
3003 # whenUnsatisfiable: ScheduleAnyway
3004 # -- Tolerations for chunks-cache pods
3005 tolerations: []
3006 # -- Pod Disruption Budget
3007 podDisruptionBudget:
3008 maxUnavailable: 1
3009 # -- The name of the PriorityClass for chunks-cache pods
3010 priorityClassName: null
3011 # -- Labels for chunks-cache pods
3012 podLabels: {}
3013 # -- Annotations for chunks-cache pods
3014 podAnnotations: {}
3015 # -- Management policy for chunks-cache pods
3016 podManagementPolicy: Parallel
3017 # -- Grace period to allow the chunks-cache to shutdown before it is killed
3018 terminationGracePeriodSeconds: 60
3019 # -- Stateful chunks-cache strategy
3020 statefulStrategy:
3021 type: RollingUpdate
3022 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
3023 # Example:
3024 # extraExtendedOptions: 'tls,no_hashexpand'
3025 extraExtendedOptions: ""
3026 # -- Additional CLI args for chunks-cache
3027 extraArgs: {}
3028 # -- Additional containers to be added to the chunks-cache pod.
3029 extraContainers: []
3030 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3031 # Example:
3032 # extraVolumes:
3033 # - name: extra-volume
3034 # secret:
3035 # secretName: extra-volume-secret
3036 extraVolumes: []
3037 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3038 # Example:
3039 # extraVolumeMounts:
3040 # - name: extra-volume
3041 # mountPath: /etc/extra-volume
3042 # readOnly: true
3043 extraVolumeMounts: []
3044 # -- Resource requests and limits for the chunks-cache
3045 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3046 resources: null
3047 # -- Service annotations and labels
3048 service:
3049 annotations: {}
3050 labels: {}
3051######################################################################################################################
3052#
3053# Subchart configurations
3054#
3055######################################################################################################################
3056# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
3057rollout_operator:
3058 enabled: false
3059 # -- podSecurityContext is the pod security context for the rollout operator.
3060 # When installing on OpenShift, override podSecurityContext settings with
3061 #
3062 # rollout_operator:
3063 # podSecurityContext:
3064 # fsGroup: null
3065 # runAsGroup: null
3066 # runAsUser: null
3067 podSecurityContext:
3068 fsGroup: 10001
3069 runAsGroup: 10001
3070 runAsNonRoot: true
3071 runAsUser: 10001
3072 seccompProfile:
3073 type: RuntimeDefault
3074 # Set the container security context
3075 securityContext:
3076 readOnlyRootFilesystem: true
3077 capabilities:
3078 drop: [ALL]
3079 allowPrivilegeEscalation: false
3080# -- Configuration for the minio subchart
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00003081minio:
3082 enabled: false
3083 replicas: 1
3084 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
3085 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
3086 # Since we only have 1 replica, that means 2 drives must be used.
3087 drivesPerNode: 2
3088 rootUser: enterprise-logs
3089 rootPassword: supersecret
3090 buckets:
3091 - name: chunks
3092 policy: none
3093 purge: false
3094 - name: ruler
3095 policy: none
3096 purge: false
3097 - name: admin
3098 policy: none
3099 purge: false
3100 persistence:
3101 size: 5Gi
Mohammed Naser7d1623e2024-06-17 09:12:39 -04003102 annotations: {}
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00003103 resources:
3104 requests:
3105 cpu: 100m
3106 memory: 128Mi
Mohammed Naser65cda132024-05-02 14:34:08 -04003107 # Allow the address used by Loki to refer to Minio to be overridden
3108 address: null
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00003109# Create extra manifests via values. Would be passed through `tpl` for templating
Mohammed Naser7d1623e2024-06-17 09:12:39 -04003110# objects can also be provided as multiline strings, useful for templating field names
Mohammed Naser8a2c8fb2023-02-19 17:23:55 +00003111extraObjects: []
3112# - apiVersion: v1
3113# kind: ConfigMap
3114# metadata:
3115# name: loki-alerting-rules
3116# data:
3117# loki-alerting-rules.yaml: |-
3118# groups:
3119# - name: example
3120# rules:
3121# - alert: example
3122# expr: |
3123# sum(count_over_time({app="loki"} |~ "error")) > 0
3124# for: 3m
3125# labels:
3126# severity: warning
3127# category: logs
3128# annotations:
3129# message: "loki has encountered errors"
Mohammed Naser7d1623e2024-06-17 09:12:39 -04003130# - |
3131# apiVersion: v1
3132# kind: Secret
3133# type: Opaque
3134# metadata:
3135# name: loki-distributed-basic-auth
3136# data:
3137# {{- range .Values.loki.tenants }}
3138# {{ .name }}: {{ b64enc .password | quote }}
3139# {{- end }}
Giovanni Tirloni59219b62024-04-09 14:50:25 -03003140
3141sidecar:
3142 image:
3143 # -- The Docker registry and image for the k8s sidecar
3144 repository: kiwigrid/k8s-sidecar
3145 # -- Docker image tag
3146 tag: 1.24.3
3147 # -- Docker image sha. If empty, no sha will be used
3148 sha: ""
3149 # -- Docker image pull policy
3150 pullPolicy: IfNotPresent
3151 # -- Resource requests and limits for the sidecar
3152 resources: {}
3153 # limits:
3154 # cpu: 100m
3155 # memory: 100Mi
3156 # requests:
3157 # cpu: 50m
3158 # memory: 50Mi
3159 # -- The SecurityContext for the sidecar.
3160 securityContext: {}
3161 # -- Set to true to skip tls verification for kube api calls.
3162 skipTlsVerify: false
3163 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
3164 enableUniqueFilenames: false
3165 # -- Readiness probe definition. Probe is disabled on the sidecar by default.
3166 readinessProbe: {}
3167 # -- Liveness probe definition. Probe is disabled on the sidecar by default.
3168 livenessProbe: {}
3169 rules:
3170 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
3171 enabled: true
3172 # -- Label that the configmaps/secrets with rules will be marked with.
3173 label: loki_rule
3174 # -- Label value that the configmaps/secrets with rules will be set to.
3175 labelValue: ""
3176 # -- Folder into which the rules will be placed.
3177 folder: /rules
3178 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
3179 # Otherwise the namespace in which the sidecar is running will be used.
3180 # It's also possible to specify 'ALL' to search in all namespaces.
3181 searchNamespace: null
3182 # -- 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.
3183 watchMethod: WATCH
3184 # -- Search in configmap, secret, or both.
3185 resource: both
3186 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
3187 script: null
3188 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
3189 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
3190 watchServerTimeout: 60
3191 #
3192 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
3193 # If you have a network outage dropping all packets with no RST/FIN,
3194 # this is how long your client waits before realizing & dropping the connection.
3195 # Defaults to 66sec.
3196 watchClientTimeout: 60
3197 # -- Log level of the sidecar container.
3198 logLevel: INFO
Mohammed Naser65cda132024-05-02 14:34:08 -04003199############################################## WARNING ###############################################################
3200#
3201# DEPRECATED VALUES
3202#
3203# The following values are deprecated and will be removed in a future version of the helm chart!
3204#
3205############################################## WARNING ##############################################################
3206
3207# -- DEPRECATED Monitoring section determines which monitoring features to enable, this section is being replaced
3208# by https://github.com/grafana/meta-monitoring-chart
3209monitoring:
3210 # Dashboards for monitoring Loki
3211 dashboards:
3212 # -- If enabled, create configmap with dashboards for monitoring Loki
3213 enabled: false
3214 # -- Alternative namespace to create dashboards ConfigMap in
3215 namespace: null
3216 # -- Additional annotations for the dashboards ConfigMap
3217 annotations: {}
3218 # -- Labels for the dashboards ConfigMap
3219 labels:
3220 grafana_dashboard: "1"
3221 # Recording rules for monitoring Loki, required for some dashboards
3222 rules:
3223 # -- If enabled, create PrometheusRule resource with Loki recording rules
3224 enabled: false
3225 # -- Include alerting rules
3226 alerting: true
3227 # -- Specify which individual alerts should be disabled
3228 # -- Instead of turning off each alert one by one, set the .monitoring.rules.alerting value to false instead.
3229 # -- If you disable all the alerts and keep .monitoring.rules.alerting set to true, the chart will fail to render.
3230 disabled: {}
3231 # LokiRequestErrors: true
3232 # LokiRequestPanics: true
3233 # -- Alternative namespace to create PrometheusRule resources in
3234 namespace: null
3235 # -- Additional annotations for the rules PrometheusRule resource
3236 annotations: {}
3237 # -- Additional labels for the rules PrometheusRule resource
3238 labels: {}
3239 # -- Additional labels for PrometheusRule alerts
3240 additionalRuleLabels: {}
3241 # -- Additional groups to add to the rules file
3242 additionalGroups: []
3243 # - name: additional-loki-rules
3244 # rules:
3245 # - record: job:loki_request_duration_seconds_bucket:sum_rate
3246 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job)
3247 # - record: job_route:loki_request_duration_seconds_bucket:sum_rate
3248 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job, route)
3249 # - record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
3250 # expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (node, namespace, pod, container)
3251 # ServiceMonitor configuration
3252 serviceMonitor:
3253 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
3254 enabled: false
3255 # -- Namespace selector for ServiceMonitor resources
3256 namespaceSelector: {}
3257 # -- ServiceMonitor annotations
3258 annotations: {}
3259 # -- Additional ServiceMonitor labels
3260 labels: {}
3261 # -- ServiceMonitor scrape interval
3262 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
3263 # least 1/4 rate interval.
3264 interval: 15s
3265 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
3266 scrapeTimeout: null
3267 # -- ServiceMonitor relabel configs to apply to samples before scraping
3268 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
3269 relabelings: []
3270 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
3271 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
3272 metricRelabelings: []
3273 # -- ServiceMonitor will use http by default, but you can pick https as well
3274 scheme: http
3275 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
3276 tlsConfig: null
3277 # -- If defined, will create a MetricsInstance for the Grafana Agent Operator.
3278 metricsInstance:
3279 # -- If enabled, MetricsInstance resources for Grafana Agent Operator are created
3280 enabled: true
3281 # -- MetricsInstance annotations
3282 annotations: {}
3283 # -- Additional MetricsInstance labels
3284 labels: {}
3285 # -- If defined a MetricsInstance will be created to remote write metrics.
3286 remoteWrite: null
3287 # Self monitoring determines whether Loki should scrape its own logs.
3288 # This feature currently relies on the Grafana Agent Operator being installed,
3289 # which is installed by default using the grafana-agent-operator sub-chart.
3290 # It will create custom resources for GrafanaAgent, LogsInstance, and PodLogs to configure
3291 # scrape configs to scrape its own logs with the labels expected by the included dashboards.
3292 selfMonitoring:
3293 enabled: false
3294 # -- Tenant to use for self monitoring
3295 tenant:
3296 # -- Name of the tenant
3297 name: "self-monitoring"
3298 # -- Password of the gateway for Basic auth
3299 password: null
3300 # -- Namespace to create additional tenant token secret in. Useful if your Grafana instance
3301 # is in a separate namespace. Token will still be created in the canary namespace.
3302 secretNamespace: "{{ .Release.Namespace }}"
3303 # Grafana Agent configuration
3304 grafanaAgent:
3305 # -- Controls whether to install the Grafana Agent Operator and its CRDs.
3306 # Note that helm will not install CRDs if this flag is enabled during an upgrade.
3307 # In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds
3308 installOperator: false
3309 # -- Grafana Agent annotations
3310 annotations: {}
3311 # -- Additional Grafana Agent labels
3312 labels: {}
3313 # -- Enable the config read api on port 8080 of the agent
3314 enableConfigReadAPI: false
3315 # -- The name of the PriorityClass for GrafanaAgent pods
3316 priorityClassName: null
3317 # -- Resource requests and limits for the grafanaAgent pods
3318 resources: {}
3319 # limits:
3320 # memory: 200Mi
3321 # requests:
3322 # cpu: 50m
3323 # memory: 100Mi
3324 # -- Tolerations for GrafanaAgent pods
3325 tolerations: []
3326 # PodLogs configuration
3327 podLogs:
3328 # -- PodLogs version
3329 apiVersion: monitoring.grafana.com/v1alpha1
3330 # -- PodLogs annotations
3331 annotations: {}
3332 # -- Additional PodLogs labels
3333 labels: {}
3334 # -- PodLogs relabel configs to apply to samples before scraping
3335 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
3336 relabelings: []
3337 # -- Additional pipeline stages to process logs after scraping
3338 # https://grafana.com/docs/agent/latest/operator/api/#pipelinestagespec-a-namemonitoringgrafanacomv1alpha1pipelinestagespeca
3339 additionalPipelineStages: []
3340 # LogsInstance configuration
3341 logsInstance:
3342 # -- LogsInstance annotations
3343 annotations: {}
3344 # -- Additional LogsInstance labels
3345 labels: {}
3346 # -- Additional clients for remote write
3347 clients: null
3348# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
3349# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
3350# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
3351tableManager:
3352 # -- Specifies whether the table-manager should be enabled
3353 enabled: false
3354 image:
3355 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
3356 registry: null
3357 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
3358 repository: null
3359 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
3360 tag: null
3361 # -- Command to execute instead of defined in Docker image
3362 command: null
3363 # -- The name of the PriorityClass for table-manager pods
3364 priorityClassName: null
3365 # -- Labels for table-manager pods
3366 podLabels: {}
3367 # -- Annotations for table-manager deployment
3368 annotations: {}
3369 # -- Annotations for table-manager pods
3370 podAnnotations: {}
3371 service:
3372 # -- Annotations for table-manager Service
3373 annotations: {}
3374 # -- Additional labels for table-manager Service
3375 labels: {}
3376 # -- Additional CLI args for the table-manager
3377 extraArgs: []
3378 # -- Environment variables to add to the table-manager pods
3379 extraEnv: []
3380 # -- Environment variables from secrets or configmaps to add to the table-manager pods
3381 extraEnvFrom: []
3382 # -- Volume mounts to add to the table-manager pods
3383 extraVolumeMounts: []
3384 # -- Volumes to add to the table-manager pods
3385 extraVolumes: []
3386 # -- Resource requests and limits for the table-manager
3387 resources: {}
3388 # -- Containers to add to the table-manager pods
3389 extraContainers: []
3390 # -- Grace period to allow the table-manager to shutdown before it is killed
3391 terminationGracePeriodSeconds: 30
3392 # -- Affinity for table-manager pods.
3393 # @default -- Hard node and anti-affinity
3394 affinity:
3395 podAntiAffinity:
3396 requiredDuringSchedulingIgnoredDuringExecution:
3397 - labelSelector:
3398 matchLabels:
3399 app.kubernetes.io/component: table-manager
3400 topologyKey: kubernetes.io/hostname
3401 # -- DNS config table-manager pods
3402 dnsConfig: {}
3403 # -- Node selector for table-manager pods
3404 nodeSelector: {}
3405 # -- Tolerations for table-manager pods
3406 tolerations: []
3407 # -- Enable deletes by retention
3408 retention_deletes_enabled: false
3409 # -- Set retention period
3410 retention_period: 0