values.yaml 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958
  1. global:
  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"
  13. # -- Overrides the chart's name
  14. nameOverride: null
  15. # -- Overrides the chart's computed fullname
  16. fullnameOverride: null
  17. # -- Image pull secrets for Docker images
  18. imagePullSecrets: []
  19. # -- hostAliases to add
  20. hostAliases: []
  21. # - ip: 1.2.3.4
  22. # hostnames:
  23. # - domain.tld
  24. loki:
  25. # -- If set, these annotations are added to all of the Kubernetes controllers
  26. # (Deployments, StatefulSets, etc) that this chart launches. Use this to
  27. # implement something like the "Wave" controller or another controller that
  28. # is monitoring top level deployment resources.
  29. annotations: {}
  30. # Configures the readiness probe for all of the Loki pods
  31. readinessProbe:
  32. httpGet:
  33. path: /ready
  34. port: http
  35. initialDelaySeconds: 30
  36. timeoutSeconds: 1
  37. livenessProbe:
  38. httpGet:
  39. path: /ready
  40. port: http
  41. initialDelaySeconds: 300
  42. image:
  43. # -- The Docker registry
  44. registry: docker.io
  45. # -- Docker image repository
  46. repository: grafana/loki
  47. # -- Overrides the image tag whose default is the chart's appVersion
  48. tag: null
  49. # -- Docker image pull policy
  50. pullPolicy: IfNotPresent
  51. # -- Common labels for all pods
  52. podLabels: {}
  53. # -- Common annotations for all pods
  54. podAnnotations: {}
  55. # -- Common command override for all pods (except gateway)
  56. command: null
  57. # -- The number of old ReplicaSets to retain to allow rollback
  58. revisionHistoryLimit: 10
  59. # -- The SecurityContext for Loki pods
  60. podSecurityContext:
  61. fsGroup: 10001
  62. runAsGroup: 10001
  63. runAsNonRoot: true
  64. runAsUser: 10001
  65. # -- The SecurityContext for Loki containers
  66. containerSecurityContext:
  67. readOnlyRootFilesystem: true
  68. capabilities:
  69. drop:
  70. - ALL
  71. allowPrivilegeEscalation: false
  72. # -- Specify an existing secret containing loki configuration. If non-empty, overrides `loki.config`
  73. existingSecretForConfig: ""
  74. # -- Store the loki configuration as a secret.
  75. configAsSecret: false
  76. # -- Adds the appProtocol field to the memberlist service. This allows memberlist to work with istio protocol selection. Ex: "http" or "tcp"
  77. appProtocol: ""
  78. # -- Common annotations for all loki services
  79. serviceAnnotations: {}
  80. # Loki server configuration
  81. # Refers to https://grafana.com/docs/loki/latest/configuration/#server
  82. server:
  83. # -- HTTP server listen port
  84. http_listen_port: 3100
  85. # -- Config file contents for Loki
  86. # @default -- See values.yaml
  87. config: |
  88. auth_enabled: false
  89. server:
  90. {{- toYaml .Values.loki.server | nindent 6 }}
  91. common:
  92. compactor_address: http://{{ include "loki.compactorFullname" . }}:3100
  93. distributor:
  94. ring:
  95. kvstore:
  96. store: memberlist
  97. memberlist:
  98. join_members:
  99. - {{ include "loki.fullname" . }}-memberlist
  100. ingester_client:
  101. grpc_client_config:
  102. grpc_compression: gzip
  103. ingester:
  104. lifecycler:
  105. ring:
  106. kvstore:
  107. store: memberlist
  108. replication_factor: 1
  109. chunk_idle_period: 30m
  110. chunk_block_size: 262144
  111. chunk_encoding: snappy
  112. chunk_retain_period: 1m
  113. max_transfer_retries: 0
  114. wal:
  115. dir: /var/loki/wal
  116. limits_config:
  117. enforce_metric_name: false
  118. reject_old_samples: true
  119. reject_old_samples_max_age: 168h
  120. max_cache_freshness_per_query: 10m
  121. split_queries_by_interval: 15m
  122. {{- if .Values.loki.schemaConfig}}
  123. schema_config:
  124. {{- toYaml .Values.loki.schemaConfig | nindent 2}}
  125. {{- end}}
  126. {{- if .Values.loki.storageConfig}}
  127. storage_config:
  128. {{- if .Values.indexGateway.enabled}}
  129. {{- $indexGatewayClient := dict "server_address" (printf "dns:///%s:9095" (include "loki.indexGatewayFullname" .)) }}
  130. {{- $_ := set .Values.loki.storageConfig.boltdb_shipper "index_gateway_client" $indexGatewayClient }}
  131. {{- end}}
  132. {{- toYaml .Values.loki.storageConfig | nindent 2}}
  133. {{- if .Values.memcachedIndexQueries.enabled }}
  134. index_queries_cache_config:
  135. memcached_client:
  136. addresses: dnssrv+_memcached-client._tcp.{{ include "loki.memcachedIndexQueriesFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}
  137. consistent_hash: true
  138. {{- end}}
  139. {{- end}}
  140. runtime_config:
  141. file: /var/{{ include "loki.name" . }}-runtime/runtime.yaml
  142. chunk_store_config:
  143. max_look_back_period: 0s
  144. {{- if .Values.memcachedChunks.enabled }}
  145. chunk_cache_config:
  146. embedded_cache:
  147. enabled: false
  148. memcached_client:
  149. consistent_hash: true
  150. addresses: dnssrv+_memcached-client._tcp.{{ include "loki.memcachedChunksFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}
  151. {{- end }}
  152. {{- if .Values.memcachedIndexWrites.enabled }}
  153. write_dedupe_cache_config:
  154. memcached_client:
  155. consistent_hash: true
  156. addresses: dnssrv+_memcached-client._tcp.{{ include "loki.memcachedIndexWritesFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}
  157. {{- end }}
  158. table_manager:
  159. retention_deletes_enabled: false
  160. retention_period: 0s
  161. query_range:
  162. align_queries_with_step: true
  163. max_retries: 5
  164. cache_results: true
  165. results_cache:
  166. cache:
  167. {{- if .Values.memcachedFrontend.enabled }}
  168. memcached_client:
  169. addresses: dnssrv+_memcached-client._tcp.{{ include "loki.memcachedFrontendFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}
  170. consistent_hash: true
  171. {{- else }}
  172. embedded_cache:
  173. enabled: true
  174. ttl: 24h
  175. {{- end }}
  176. frontend_worker:
  177. {{- if .Values.queryScheduler.enabled }}
  178. scheduler_address: {{ include "loki.querySchedulerFullname" . }}:9095
  179. {{- else }}
  180. frontend_address: {{ include "loki.queryFrontendFullname" . }}-headless:9095
  181. {{- end }}
  182. frontend:
  183. log_queries_longer_than: 5s
  184. compress_responses: true
  185. {{- if .Values.queryScheduler.enabled }}
  186. scheduler_address: {{ include "loki.querySchedulerFullname" . }}:9095
  187. {{- end }}
  188. tail_proxy_url: http://{{ include "loki.querierFullname" . }}:3100
  189. compactor:
  190. shared_store: filesystem
  191. ruler:
  192. storage:
  193. type: local
  194. local:
  195. directory: /etc/loki/rules
  196. ring:
  197. kvstore:
  198. store: memberlist
  199. rule_path: /tmp/loki/scratch
  200. alertmanager_url: https://alertmanager.xx
  201. external_url: https://alertmanager.xx
  202. # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
  203. schemaConfig:
  204. configs:
  205. - from: 2020-09-07
  206. store: boltdb-shipper
  207. object_store: filesystem
  208. schema: v11
  209. index:
  210. prefix: loki_index_
  211. period: 24h
  212. # -- Check https://grafana.com/docs/loki/latest/configuration/#storage_config for more info on how to configure storages
  213. storageConfig:
  214. boltdb_shipper:
  215. shared_store: filesystem
  216. active_index_directory: /var/loki/index
  217. cache_location: /var/loki/cache
  218. cache_ttl: 168h
  219. filesystem:
  220. directory: /var/loki/chunks
  221. # -- Uncomment to configure each storage individually
  222. # azure: {}
  223. # gcs: {}
  224. # s3: {}
  225. # boltdb: {}
  226. # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
  227. structuredConfig: {}
  228. # -- Provides a reloadable runtime configuration file for some specific configuration
  229. runtimeConfig: {}
  230. serviceAccount:
  231. # -- Specifies whether a ServiceAccount should be created
  232. create: true
  233. # -- The name of the ServiceAccount to use.
  234. # If not set and create is true, a name is generated using the fullname template
  235. name: null
  236. # -- Image pull secrets for the service account
  237. imagePullSecrets: []
  238. # -- Labels for the service account
  239. labels: {}
  240. # -- Annotations for the service account
  241. annotations: {}
  242. # -- Set this toggle to false to opt out of automounting API credentials for the service account
  243. automountServiceAccountToken: true
  244. # RBAC configuration
  245. rbac:
  246. # -- If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.
  247. pspEnabled: false
  248. # -- For OpenShift set pspEnabled to 'false' and sccEnabled to 'true' to use the SecurityContextConstraints.
  249. sccEnabled: false
  250. # ServiceMonitor configuration
  251. serviceMonitor:
  252. # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
  253. enabled: false
  254. # -- Alternative namespace for ServiceMonitor resources
  255. namespace: null
  256. # -- Namespace selector for ServiceMonitor resources
  257. namespaceSelector: {}
  258. # -- ServiceMonitor annotations
  259. annotations: {}
  260. # -- Additional ServiceMonitor labels
  261. labels: {}
  262. # -- ServiceMonitor scrape interval
  263. interval: null
  264. # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
  265. scrapeTimeout: null
  266. # -- ServiceMonitor relabel configs to apply to samples before scraping
  267. # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
  268. relabelings: []
  269. # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
  270. # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
  271. metricRelabelings: []
  272. # --ServiceMonitor will add labels from the service to the Prometheus metric
  273. # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
  274. targetLabels: []
  275. # -- ServiceMonitor will use http by default, but you can pick https as well
  276. scheme: http
  277. # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
  278. tlsConfig: null
  279. # Rules for the Prometheus Operator
  280. prometheusRule:
  281. # -- If enabled, a PrometheusRule resource for Prometheus Operator is created
  282. enabled: false
  283. # -- Alternative namespace for the PrometheusRule resource
  284. namespace: null
  285. # -- PrometheusRule annotations
  286. annotations: {}
  287. # -- Additional PrometheusRule labels
  288. labels: {}
  289. # -- Contents of Prometheus rules file
  290. groups: []
  291. # - name: loki_rules
  292. # rules:
  293. # - expr: histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket[1m]))
  294. # by (le, cluster, job))
  295. # record: cluster_job:loki_request_duration_seconds:99quantile
  296. # - expr: histogram_quantile(0.50, sum(rate(loki_request_duration_seconds_bucket[1m]))
  297. # by (le, cluster, job))
  298. # record: cluster_job:loki_request_duration_seconds:50quantile
  299. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, job) / sum(rate(loki_request_duration_seconds_count[1m]))
  300. # by (cluster, job)
  301. # record: cluster_job:loki_request_duration_seconds:avg
  302. # - expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, cluster, job)
  303. # record: cluster_job:loki_request_duration_seconds_bucket:sum_rate
  304. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, job)
  305. # record: cluster_job:loki_request_duration_seconds_sum:sum_rate
  306. # - expr: sum(rate(loki_request_duration_seconds_count[1m])) by (cluster, job)
  307. # record: cluster_job:loki_request_duration_seconds_count:sum_rate
  308. # - expr: histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket[1m]))
  309. # by (le, cluster, job, route))
  310. # record: cluster_job_route:loki_request_duration_seconds:99quantile
  311. # - expr: histogram_quantile(0.50, sum(rate(loki_request_duration_seconds_bucket[1m]))
  312. # by (le, cluster, job, route))
  313. # record: cluster_job_route:loki_request_duration_seconds:50quantile
  314. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, job, route)
  315. # / sum(rate(loki_request_duration_seconds_count[1m])) by (cluster, job, route)
  316. # record: cluster_job_route:loki_request_duration_seconds:avg
  317. # - expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, cluster, job,
  318. # route)
  319. # record: cluster_job_route:loki_request_duration_seconds_bucket:sum_rate
  320. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, job, route)
  321. # record: cluster_job_route:loki_request_duration_seconds_sum:sum_rate
  322. # - expr: sum(rate(loki_request_duration_seconds_count[1m])) by (cluster, job, route)
  323. # record: cluster_job_route:loki_request_duration_seconds_count:sum_rate
  324. # - expr: histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket[1m]))
  325. # by (le, cluster, namespace, job, route))
  326. # record: cluster_namespace_job_route:loki_request_duration_seconds:99quantile
  327. # - expr: histogram_quantile(0.50, sum(rate(loki_request_duration_seconds_bucket[1m]))
  328. # by (le, cluster, namespace, job, route))
  329. # record: cluster_namespace_job_route:loki_request_duration_seconds:50quantile
  330. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, namespace,
  331. # job, route) / sum(rate(loki_request_duration_seconds_count[1m])) by (cluster,
  332. # namespace, job, route)
  333. # record: cluster_namespace_job_route:loki_request_duration_seconds:avg
  334. # - expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, cluster, namespace,
  335. # job, route)
  336. # record: cluster_namespace_job_route:loki_request_duration_seconds_bucket:sum_rate
  337. # - expr: sum(rate(loki_request_duration_seconds_sum[1m])) by (cluster, namespace,
  338. # job, route)
  339. # record: cluster_namespace_job_route:loki_request_duration_seconds_sum:sum_rate
  340. # - expr: sum(rate(loki_request_duration_seconds_count[1m])) by (cluster, namespace,
  341. # job, route)
  342. # record: cluster_namespace_job_route:loki_request_duration_seconds_count:sum_rate
  343. # Configuration for the ingester
  344. ingester:
  345. # -- Kind of deployment [StatefulSet/Deployment]
  346. kind: StatefulSet
  347. # -- Number of replicas for the ingester
  348. replicas: 1
  349. # -- hostAliases to add
  350. hostAliases: []
  351. # - ip: 1.2.3.4
  352. # hostnames:
  353. # - domain.tld
  354. autoscaling:
  355. # -- Enable autoscaling for the ingester
  356. enabled: false
  357. # -- Minimum autoscaling replicas for the ingester
  358. minReplicas: 1
  359. # -- Maximum autoscaling replicas for the ingester
  360. maxReplicas: 3
  361. # -- Target CPU utilisation percentage for the ingester
  362. targetCPUUtilizationPercentage: 60
  363. # -- Target memory utilisation percentage for the ingester
  364. targetMemoryUtilizationPercentage:
  365. behavior:
  366. # -- Enable autoscaling behaviours
  367. enabled: false
  368. # -- define scale down policies, must conform to HPAScalingRules
  369. scaleDown: {}
  370. # -- define scale up policies, must conform to HPAScalingRules
  371. scaleUp: {}
  372. image:
  373. # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
  374. registry: null
  375. # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
  376. repository: null
  377. # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
  378. tag: null
  379. # -- Command to execute instead of defined in Docker image
  380. command: null
  381. # -- The name of the PriorityClass for ingester pods
  382. priorityClassName: null
  383. # -- Labels for ingester pods
  384. podLabels: {}
  385. # -- Annotations for ingester pods
  386. podAnnotations: {}
  387. # -- Labels for ingestor service
  388. serviceLabels: {}
  389. # -- Additional CLI args for the ingester
  390. extraArgs: []
  391. # -- Environment variables to add to the ingester pods
  392. extraEnv: []
  393. # -- Environment variables from secrets or configmaps to add to the ingester pods
  394. extraEnvFrom: []
  395. # -- Volume mounts to add to the ingester pods
  396. extraVolumeMounts: []
  397. # -- Volumes to add to the ingester pods
  398. extraVolumes: []
  399. # -- Resource requests and limits for the ingester
  400. resources: {}
  401. # -- Containers to add to the ingester pods
  402. extraContainers: []
  403. # -- Init containers to add to the ingester pods
  404. initContainers: []
  405. # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
  406. # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
  407. # all data and to successfully leave the member ring on shutdown.
  408. terminationGracePeriodSeconds: 300
  409. # -- Lifecycle for the ingester container
  410. lifecycle: {}
  411. # -- topologySpread for ingester pods. Passed through `tpl` and, thus, to be configured as string
  412. # @default -- Defaults to allow skew no more then 1 node per AZ
  413. topologySpreadConstraints: |
  414. - maxSkew: 1
  415. topologyKey: kubernetes.io/hostname
  416. whenUnsatisfiable: ScheduleAnyway
  417. labelSelector:
  418. matchLabels:
  419. {{- include "loki.ingesterSelectorLabels" . | nindent 6 }}
  420. # -- Affinity for ingester pods. Passed through `tpl` and, thus, to be configured as string
  421. # @default -- Hard node and soft zone anti-affinity
  422. affinity: |
  423. podAntiAffinity:
  424. requiredDuringSchedulingIgnoredDuringExecution:
  425. - labelSelector:
  426. matchLabels:
  427. {{- include "loki.ingesterSelectorLabels" . | nindent 10 }}
  428. topologyKey: kubernetes.io/hostname
  429. preferredDuringSchedulingIgnoredDuringExecution:
  430. - weight: 100
  431. podAffinityTerm:
  432. labelSelector:
  433. matchLabels:
  434. {{- include "loki.ingesterSelectorLabels" . | nindent 12 }}
  435. topologyKey: failure-domain.beta.kubernetes.io/zone
  436. # -- Pod Disruption Budget maxUnavailable
  437. maxUnavailable: null
  438. # -- Max Surge for ingester pods
  439. maxSurge: 0
  440. # -- Node selector for ingester pods
  441. nodeSelector: {}
  442. # -- Tolerations for ingester pods
  443. tolerations: []
  444. # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
  445. readinessProbe: {}
  446. # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
  447. livenessProbe: {}
  448. persistence:
  449. # -- Enable creating PVCs which is required when using boltdb-shipper
  450. enabled: true
  451. # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
  452. inMemory: false
  453. # -- List of the ingester PVCs
  454. # @notationType -- list
  455. claims:
  456. - name: data
  457. size: 30Gi
  458. # -- Storage class to be used.
  459. # If defined, storageClassName: <storageClass>.
  460. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  461. # If empty or set to null, no storageClassName spec is
  462. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  463. storageClass: "openebs-hostpath"
  464. # - name: wal
  465. # size: 150Gi
  466. # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
  467. appProtocol:
  468. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  469. grpc: ""
  470. # Configuration for the distributor
  471. distributor:
  472. # -- Number of replicas for the distributor
  473. replicas: 1
  474. # -- hostAliases to add
  475. hostAliases: []
  476. # - ip: 1.2.3.4
  477. # hostnames:
  478. # - domain.tld
  479. autoscaling:
  480. # -- Enable autoscaling for the distributor
  481. enabled: false
  482. # -- Minimum autoscaling replicas for the distributor
  483. minReplicas: 1
  484. # -- Maximum autoscaling replicas for the distributor
  485. maxReplicas: 3
  486. # -- Target CPU utilisation percentage for the distributor
  487. targetCPUUtilizationPercentage: 60
  488. # -- Target memory utilisation percentage for the distributor
  489. targetMemoryUtilizationPercentage:
  490. behavior:
  491. # -- Enable autoscaling behaviours
  492. enabled: false
  493. # -- define scale down policies, must conform to HPAScalingRules
  494. scaleDown: {}
  495. # -- define scale up policies, must conform to HPAScalingRules
  496. scaleUp: {}
  497. image:
  498. # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
  499. registry: null
  500. # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
  501. repository: null
  502. # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
  503. tag: null
  504. # -- Command to execute instead of defined in Docker image
  505. command: null
  506. # -- The name of the PriorityClass for distributor pods
  507. priorityClassName: null
  508. # -- Labels for distributor pods
  509. podLabels: {}
  510. # -- Annotations for distributor pods
  511. podAnnotations: {}
  512. # -- Labels for distributor service
  513. serviceLabels: {}
  514. # -- Additional CLI args for the distributor
  515. extraArgs: []
  516. # -- Environment variables to add to the distributor pods
  517. extraEnv: []
  518. # -- Environment variables from secrets or configmaps to add to the distributor pods
  519. extraEnvFrom: []
  520. # -- Volume mounts to add to the distributor pods
  521. extraVolumeMounts: []
  522. # -- Volumes to add to the distributor pods
  523. extraVolumes: []
  524. # -- Resource requests and limits for the distributor
  525. resources: {}
  526. # -- Containers to add to the distributor pods
  527. extraContainers: []
  528. # -- Grace period to allow the distributor to shutdown before it is killed
  529. terminationGracePeriodSeconds: 30
  530. # -- Affinity for distributor pods. Passed through `tpl` and, thus, to be configured as string
  531. # @default -- Hard node and soft zone anti-affinity
  532. affinity: |
  533. podAntiAffinity:
  534. requiredDuringSchedulingIgnoredDuringExecution:
  535. - labelSelector:
  536. matchLabels:
  537. {{- include "loki.distributorSelectorLabels" . | nindent 10 }}
  538. topologyKey: kubernetes.io/hostname
  539. preferredDuringSchedulingIgnoredDuringExecution:
  540. - weight: 100
  541. podAffinityTerm:
  542. labelSelector:
  543. matchLabels:
  544. {{- include "loki.distributorSelectorLabels" . | nindent 12 }}
  545. topologyKey: failure-domain.beta.kubernetes.io/zone
  546. # -- Pod Disruption Budget maxUnavailable
  547. maxUnavailable: null
  548. # -- Max Surge for distributor pods
  549. maxSurge: 0
  550. # -- Node selector for distributor pods
  551. nodeSelector: {}
  552. # -- Tolerations for distributor pods
  553. tolerations: []
  554. # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
  555. appProtocol:
  556. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  557. grpc: ""
  558. # Configuration for the querier
  559. querier:
  560. # -- Number of replicas for the querier
  561. replicas: 1
  562. # -- hostAliases to add
  563. hostAliases: []
  564. # - ip: 1.2.3.4
  565. # hostnames:
  566. # - domain.tld
  567. autoscaling:
  568. # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
  569. enabled: false
  570. # -- Minimum autoscaling replicas for the querier
  571. minReplicas: 1
  572. # -- Maximum autoscaling replicas for the querier
  573. maxReplicas: 3
  574. # -- Target CPU utilisation percentage for the querier
  575. targetCPUUtilizationPercentage: 60
  576. # -- Target memory utilisation percentage for the querier
  577. targetMemoryUtilizationPercentage:
  578. behavior:
  579. # -- Enable autoscaling behaviours
  580. enabled: false
  581. # -- define scale down policies, must conform to HPAScalingRules
  582. scaleDown: {}
  583. # -- define scale up policies, must conform to HPAScalingRules
  584. scaleUp: {}
  585. image:
  586. # -- The Docker registry for the querier image. Overrides `loki.image.registry`
  587. registry: null
  588. # -- Docker image repository for the querier image. Overrides `loki.image.repository`
  589. repository: null
  590. # -- Docker image tag for the querier image. Overrides `loki.image.tag`
  591. tag: null
  592. # -- Command to execute instead of defined in Docker image
  593. command: null
  594. # -- The name of the PriorityClass for querier pods
  595. priorityClassName: null
  596. # -- Labels for querier pods
  597. podLabels: {}
  598. # -- Annotations for querier pods
  599. podAnnotations: {}
  600. # -- Labels for querier service
  601. serviceLabels: {}
  602. # -- Additional CLI args for the querier
  603. extraArgs: []
  604. # -- Environment variables to add to the querier pods
  605. extraEnv: []
  606. # -- Environment variables from secrets or configmaps to add to the querier pods
  607. extraEnvFrom: []
  608. # -- Volume mounts to add to the querier pods
  609. extraVolumeMounts: []
  610. # -- Volumes to add to the querier pods
  611. extraVolumes: []
  612. # -- Resource requests and limits for the querier
  613. resources: {}
  614. # -- Containers to add to the querier pods
  615. extraContainers: []
  616. # -- Init containers to add to the querier pods
  617. initContainers: []
  618. # -- Grace period to allow the querier to shutdown before it is killed
  619. terminationGracePeriodSeconds: 30
  620. # -- topologySpread for querier pods. Passed through `tpl` and, thus, to be configured as string
  621. # @default -- Defaults to allow skew no more then 1 node per AZ
  622. topologySpreadConstraints: |
  623. - maxSkew: 1
  624. topologyKey: kubernetes.io/hostname
  625. whenUnsatisfiable: ScheduleAnyway
  626. labelSelector:
  627. matchLabels:
  628. {{- include "loki.querierSelectorLabels" . | nindent 6 }}
  629. # -- Affinity for querier pods. Passed through `tpl` and, thus, to be configured as string
  630. # @default -- Hard node and soft zone anti-affinity
  631. affinity: |
  632. podAntiAffinity:
  633. requiredDuringSchedulingIgnoredDuringExecution:
  634. - labelSelector:
  635. matchLabels:
  636. {{- include "loki.querierSelectorLabels" . | nindent 10 }}
  637. topologyKey: kubernetes.io/hostname
  638. preferredDuringSchedulingIgnoredDuringExecution:
  639. - weight: 100
  640. podAffinityTerm:
  641. labelSelector:
  642. matchLabels:
  643. {{- include "loki.querierSelectorLabels" . | nindent 12 }}
  644. topologyKey: failure-domain.beta.kubernetes.io/zone
  645. # -- Pod Disruption Budget maxUnavailable
  646. maxUnavailable: null
  647. # -- Max Surge for querier pods
  648. maxSurge: 0
  649. # -- Node selector for querier pods
  650. nodeSelector: {}
  651. # -- Tolerations for querier pods
  652. tolerations: []
  653. # -- DNSConfig for querier pods
  654. dnsConfig: {}
  655. persistence:
  656. # -- Enable creating PVCs for the querier cache
  657. enabled: false
  658. # -- Size of persistent disk
  659. size: 10Gi
  660. # -- Storage class to be used.
  661. # If defined, storageClassName: <storageClass>.
  662. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  663. # If empty or set to null, no storageClassName spec is
  664. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  665. storageClass: "openebs-hostpath"
  666. # -- Annotations for querier PVCs
  667. annotations: {}
  668. # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
  669. appProtocol:
  670. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  671. grpc: ""
  672. # Configuration for the query-frontend
  673. queryFrontend:
  674. # -- Number of replicas for the query-frontend
  675. replicas: 1
  676. # -- hostAliases to add
  677. hostAliases: []
  678. # - ip: 1.2.3.4
  679. # hostnames:
  680. # - domain.tld
  681. autoscaling:
  682. # -- Enable autoscaling for the query-frontend
  683. enabled: false
  684. # -- Minimum autoscaling replicas for the query-frontend
  685. minReplicas: 1
  686. # -- Maximum autoscaling replicas for the query-frontend
  687. maxReplicas: 3
  688. # -- Target CPU utilisation percentage for the query-frontend
  689. targetCPUUtilizationPercentage: 60
  690. # -- Target memory utilisation percentage for the query-frontend
  691. targetMemoryUtilizationPercentage:
  692. behavior:
  693. # -- Enable autoscaling behaviours
  694. enabled: false
  695. # -- define scale down policies, must conform to HPAScalingRules
  696. scaleDown: {}
  697. # -- define scale up policies, must conform to HPAScalingRules
  698. scaleUp: {}
  699. image:
  700. # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
  701. registry: null
  702. # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
  703. repository: null
  704. # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
  705. tag: null
  706. # -- Command to execute instead of defined in Docker image
  707. command: null
  708. # -- The name of the PriorityClass for query-frontend pods
  709. priorityClassName: null
  710. # -- Labels for query-frontend pods
  711. podLabels: {}
  712. # -- Annotations for query-frontend pods
  713. podAnnotations: {}
  714. # -- Labels for query-frontend service
  715. serviceLabels: {}
  716. # -- Additional CLI args for the query-frontend
  717. extraArgs: []
  718. # -- Environment variables to add to the query-frontend pods
  719. extraEnv: []
  720. # -- Environment variables from secrets or configmaps to add to the query-frontend pods
  721. extraEnvFrom: []
  722. # -- Volume mounts to add to the query-frontend pods
  723. extraVolumeMounts: []
  724. # -- Volumes to add to the query-frontend pods
  725. extraVolumes: []
  726. # -- Resource requests and limits for the query-frontend
  727. resources: {}
  728. # -- Containers to add to the query-frontend pods
  729. extraContainers: []
  730. # -- Grace period to allow the query-frontend to shutdown before it is killed
  731. terminationGracePeriodSeconds: 30
  732. # -- Affinity for query-frontend pods. Passed through `tpl` and, thus, to be configured as string
  733. # @default -- Hard node and soft zone anti-affinity
  734. affinity: |
  735. podAntiAffinity:
  736. requiredDuringSchedulingIgnoredDuringExecution:
  737. - labelSelector:
  738. matchLabels:
  739. {{- include "loki.queryFrontendSelectorLabels" . | nindent 10 }}
  740. topologyKey: kubernetes.io/hostname
  741. preferredDuringSchedulingIgnoredDuringExecution:
  742. - weight: 100
  743. podAffinityTerm:
  744. labelSelector:
  745. matchLabels:
  746. {{- include "loki.queryFrontendSelectorLabels" . | nindent 12 }}
  747. topologyKey: failure-domain.beta.kubernetes.io/zone
  748. # -- Pod Disruption Budget maxUnavailable
  749. maxUnavailable: null
  750. # -- Node selector for query-frontend pods
  751. nodeSelector: {}
  752. # -- Tolerations for query-frontend pods
  753. tolerations: []
  754. # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
  755. appProtocol:
  756. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  757. grpc: ""
  758. # Configuration for the query-scheduler
  759. queryScheduler:
  760. # -- Specifies whether the query-scheduler should be decoupled from the query-frontend
  761. enabled: false
  762. # -- Number of replicas for the query-scheduler.
  763. # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
  764. # it's also recommended that this value evenly divides the latter
  765. replicas: 2
  766. # -- hostAliases to add
  767. hostAliases: []
  768. # - ip: 1.2.3.4
  769. # hostnames:
  770. # - domain.tld
  771. image:
  772. # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
  773. registry: null
  774. # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
  775. repository: null
  776. # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
  777. tag: null
  778. # -- The name of the PriorityClass for query-scheduler pods
  779. priorityClassName: null
  780. # -- Labels for query-scheduler pods
  781. podLabels: {}
  782. # -- Annotations for query-scheduler pods
  783. podAnnotations: {}
  784. # -- Labels for query-scheduler service
  785. serviceLabels: {}
  786. # -- Additional CLI args for the query-scheduler
  787. extraArgs: []
  788. # -- Environment variables to add to the query-scheduler pods
  789. extraEnv: []
  790. # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
  791. extraEnvFrom: []
  792. # -- Volume mounts to add to the query-scheduler pods
  793. extraVolumeMounts: []
  794. # -- Volumes to add to the query-scheduler pods
  795. extraVolumes: []
  796. # -- Resource requests and limits for the query-scheduler
  797. resources: {}
  798. # -- Containers to add to the query-scheduler pods
  799. extraContainers: []
  800. # -- Grace period to allow the query-scheduler to shutdown before it is killed
  801. terminationGracePeriodSeconds: 30
  802. # -- Affinity for query-scheduler pods. Passed through `tpl` and, thus, to be configured as string
  803. # @default -- Hard node and soft zone anti-affinity
  804. affinity: |
  805. podAntiAffinity:
  806. requiredDuringSchedulingIgnoredDuringExecution:
  807. - labelSelector:
  808. matchLabels:
  809. {{- include "loki.querySchedulerSelectorLabels" . | nindent 10 }}
  810. topologyKey: kubernetes.io/hostname
  811. preferredDuringSchedulingIgnoredDuringExecution:
  812. - weight: 100
  813. podAffinityTerm:
  814. labelSelector:
  815. matchLabels:
  816. {{- include "loki.querySchedulerSelectorLabels" . | nindent 12 }}
  817. topologyKey: failure-domain.beta.kubernetes.io/zone
  818. # -- Pod Disruption Budget maxUnavailable
  819. maxUnavailable: 1
  820. # -- Node selector for query-scheduler pods
  821. nodeSelector: {}
  822. # -- Tolerations for query-scheduler pods
  823. tolerations: []
  824. # Configuration for the table-manager
  825. tableManager:
  826. # -- Specifies whether the table-manager should be enabled
  827. enabled: false
  828. # -- hostAliases to add
  829. hostAliases: []
  830. # - ip: 1.2.3.4
  831. # hostnames:
  832. # - domain.tld
  833. image:
  834. # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
  835. registry: null
  836. # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
  837. repository: null
  838. # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
  839. tag: null
  840. # -- Command to execute instead of defined in Docker image
  841. command: null
  842. # -- The name of the PriorityClass for table-manager pods
  843. priorityClassName: null
  844. # -- Labels for table-manager pods
  845. podLabels: {}
  846. # -- Annotations for table-manager pods
  847. podAnnotations: {}
  848. # -- Labels for table-manager service
  849. serviceLabels: {}
  850. # -- Additional CLI args for the table-manager
  851. extraArgs: []
  852. # -- Environment variables to add to the table-manager pods
  853. extraEnv: []
  854. # -- Environment variables from secrets or configmaps to add to the table-manager pods
  855. extraEnvFrom: []
  856. # -- Volume mounts to add to the table-manager pods
  857. extraVolumeMounts: []
  858. # -- Volumes to add to the table-manager pods
  859. extraVolumes: []
  860. # -- Resource requests and limits for the table-manager
  861. resources: {}
  862. # -- Containers to add to the table-manager pods
  863. extraContainers: []
  864. # -- Grace period to allow the table-manager to shutdown before it is killed
  865. terminationGracePeriodSeconds: 30
  866. # -- Affinity for table-manager pods. Passed through `tpl` and, thus, to be configured as string
  867. # @default -- Hard node and soft zone anti-affinity
  868. affinity: |
  869. podAntiAffinity:
  870. requiredDuringSchedulingIgnoredDuringExecution:
  871. - labelSelector:
  872. matchLabels:
  873. {{- include "loki.tableManagerSelectorLabels" . | nindent 10 }}
  874. topologyKey: kubernetes.io/hostname
  875. preferredDuringSchedulingIgnoredDuringExecution:
  876. - weight: 100
  877. podAffinityTerm:
  878. labelSelector:
  879. matchLabels:
  880. {{- include "loki.tableManagerSelectorLabels" . | nindent 12 }}
  881. topologyKey: failure-domain.beta.kubernetes.io/zone
  882. # -- Node selector for table-manager pods
  883. nodeSelector: {}
  884. # -- Tolerations for table-manager pods
  885. tolerations: []
  886. # Use either this ingress or the gateway, but not both at once.
  887. # If you enable this, make sure to disable the gateway.
  888. # You'll need to supply authn configuration for your ingress controller.
  889. ingress:
  890. enabled: false
  891. # ingressClassName: nginx
  892. annotations: {}
  893. # nginx.ingress.kubernetes.io/auth-type: basic
  894. # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
  895. # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
  896. # nginx.ingress.kubernetes.io/configuration-snippet: |
  897. # proxy_set_header X-Scope-OrgID $remote_user;
  898. paths:
  899. distributor:
  900. - /api/prom/push
  901. - /loki/api/v1/push
  902. querier:
  903. - /api/prom/tail
  904. - /loki/api/v1/tail
  905. query-frontend:
  906. - /loki/api
  907. ruler:
  908. - /api/prom/rules
  909. - /loki/api/v1/rules
  910. - /prometheus/api/v1/rules
  911. - /prometheus/api/v1/alerts
  912. hosts:
  913. - loki.example.com
  914. # tls:
  915. # - secretName: loki-distributed-tls
  916. # hosts:
  917. # - loki.example.com
  918. # Configuration for the gateway
  919. gateway:
  920. # -- Specifies whether the gateway should be enabled
  921. enabled: true
  922. # -- hostAliases to add
  923. hostAliases: []
  924. # - ip: 1.2.3.4
  925. # hostnames:
  926. # - domain.tld
  927. # -- Number of replicas for the gateway
  928. replicas: 1
  929. # -- Enable logging of 2xx and 3xx HTTP requests
  930. verboseLogging: true
  931. autoscaling:
  932. # -- Enable autoscaling for the gateway
  933. enabled: false
  934. # -- Minimum autoscaling replicas for the gateway
  935. minReplicas: 1
  936. # -- Maximum autoscaling replicas for the gateway
  937. maxReplicas: 3
  938. # -- Target CPU utilisation percentage for the gateway
  939. targetCPUUtilizationPercentage: 60
  940. # -- Target memory utilisation percentage for the gateway
  941. targetMemoryUtilizationPercentage:
  942. behavior:
  943. # -- Enable autoscaling behaviours
  944. enabled: false
  945. # -- define scale down policies, must conform to HPAScalingRules
  946. scaleDown: {}
  947. # -- define scale up policies, must conform to HPAScalingRules
  948. scaleUp: {}
  949. # -- See `kubectl explain deployment.spec.strategy` for more,
  950. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  951. deploymentStrategy:
  952. type: RollingUpdate
  953. image:
  954. # -- The Docker registry for the gateway image
  955. registry: docker.io
  956. # -- The gateway image repository
  957. repository: nginxinc/nginx-unprivileged
  958. # -- The gateway image tag
  959. tag: 1.20.2-alpine
  960. # -- The gateway image pull policy
  961. pullPolicy: IfNotPresent
  962. # -- The name of the PriorityClass for gateway pods
  963. priorityClassName: null
  964. # -- Labels for gateway pods
  965. podLabels: {}
  966. # -- Annotations for gateway pods
  967. podAnnotations: {}
  968. # -- Additional CLI args for the gateway
  969. extraArgs: []
  970. # -- Environment variables to add to the gateway pods
  971. extraEnv: []
  972. # -- Environment variables from secrets or configmaps to add to the gateway pods
  973. extraEnvFrom: []
  974. # -- Volumes to add to the gateway pods
  975. extraVolumes: []
  976. # -- Volume mounts to add to the gateway pods
  977. extraVolumeMounts: []
  978. # -- The SecurityContext for gateway containers
  979. podSecurityContext:
  980. fsGroup: 101
  981. runAsGroup: 101
  982. runAsNonRoot: true
  983. runAsUser: 101
  984. # -- The SecurityContext for gateway containers
  985. containerSecurityContext:
  986. readOnlyRootFilesystem: true
  987. capabilities:
  988. drop:
  989. - ALL
  990. allowPrivilegeEscalation: false
  991. # -- Resource requests and limits for the gateway
  992. resources: {}
  993. # -- Containers to add to the gateway pods
  994. extraContainers: []
  995. # -- Grace period to allow the gateway to shutdown before it is killed
  996. terminationGracePeriodSeconds: 30
  997. # -- Affinity for gateway pods. Passed through `tpl` and, thus, to be configured as string
  998. # @default -- Hard node and soft zone anti-affinity
  999. affinity: |
  1000. podAntiAffinity:
  1001. requiredDuringSchedulingIgnoredDuringExecution:
  1002. - labelSelector:
  1003. matchLabels:
  1004. {{- include "loki.gatewaySelectorLabels" . | nindent 10 }}
  1005. topologyKey: kubernetes.io/hostname
  1006. preferredDuringSchedulingIgnoredDuringExecution:
  1007. - weight: 100
  1008. podAffinityTerm:
  1009. labelSelector:
  1010. matchLabels:
  1011. {{- include "loki.gatewaySelectorLabels" . | nindent 12 }}
  1012. topologyKey: failure-domain.beta.kubernetes.io/zone
  1013. # -- Pod Disruption Budget maxUnavailable
  1014. maxUnavailable: null
  1015. # -- Node selector for gateway pods
  1016. nodeSelector: {}
  1017. # -- Tolerations for gateway pods
  1018. tolerations: []
  1019. # -- DNSConfig for gateway pods
  1020. dnsConfig: {}
  1021. # Gateway service configuration
  1022. service:
  1023. # -- Port of the gateway service
  1024. port: 80
  1025. # -- Type of the gateway service
  1026. type: ClusterIP
  1027. # -- ClusterIP of the gateway service
  1028. clusterIP: null
  1029. # -- Node port if service type is NodePort
  1030. nodePort: null
  1031. # -- Load balancer IPO address if service type is LoadBalancer
  1032. loadBalancerIP: null
  1033. # -- Load balancer allow traffic from CIDR list if service type is LoadBalancer
  1034. loadBalancerSourceRanges: []
  1035. # -- Set appProtocol for the service
  1036. appProtocol: null
  1037. # -- Annotations for the gateway service
  1038. annotations: {}
  1039. # -- Labels for gateway service
  1040. labels: {}
  1041. # Gateway ingress configuration
  1042. ingress:
  1043. # -- Specifies whether an ingress for the gateway should be created
  1044. enabled: false
  1045. # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
  1046. # For example: `ingressClassName: nginx`
  1047. ingressClassName: ''
  1048. # -- Annotations for the gateway ingress
  1049. annotations: {}
  1050. # -- Hosts configuration for the gateway ingress
  1051. hosts:
  1052. - host: gateway.loki.example.com
  1053. paths:
  1054. - path: /
  1055. # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
  1056. # pathType: Prefix
  1057. # -- TLS configuration for the gateway ingress
  1058. tls: []
  1059. # tls:
  1060. # - secretName: loki-gateway-tls
  1061. # hosts:
  1062. # - gateway.loki.example.com
  1063. # Basic auth configuration
  1064. basicAuth:
  1065. # -- Enables basic authentication for the gateway
  1066. enabled: false
  1067. # -- The basic auth username for the gateway
  1068. username: null
  1069. # -- The basic auth password for the gateway
  1070. password: null
  1071. # -- Uses the specified username and password to compute a htpasswd using Sprig's `htpasswd` function.
  1072. # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
  1073. # high CPU load.
  1074. # @default -- See values.yaml
  1075. htpasswd: >-
  1076. {{ htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password) }}
  1077. # -- Existing basic auth secret to use. Must contain '.htpasswd'
  1078. existingSecret: null
  1079. # Configures the readiness probe for the gateway
  1080. readinessProbe:
  1081. httpGet:
  1082. path: /
  1083. port: http
  1084. initialDelaySeconds: 15
  1085. timeoutSeconds: 1
  1086. livenessProbe:
  1087. httpGet:
  1088. path: /
  1089. port: http
  1090. initialDelaySeconds: 30
  1091. nginxConfig:
  1092. # -- NGINX log format
  1093. # @default -- See values.yaml
  1094. logFormat: |-
  1095. main '$remote_addr - $remote_user [$time_local] $status '
  1096. '"$request" $body_bytes_sent "$http_referer" '
  1097. '"$http_user_agent" "$http_x_forwarded_for"';
  1098. # -- Allows appending custom configuration to the server block
  1099. serverSnippet: ""
  1100. # -- Allows appending custom configuration to the http block
  1101. httpSnippet: ""
  1102. # -- Allows overriding the DNS resolver address nginx will use.
  1103. resolver: ""
  1104. # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
  1105. # @default -- See values.yaml
  1106. file: |
  1107. worker_processes 5; ## Default: 1
  1108. error_log /dev/stderr;
  1109. pid /tmp/nginx.pid;
  1110. worker_rlimit_nofile 8192;
  1111. events {
  1112. worker_connections 4096; ## Default: 1024
  1113. }
  1114. http {
  1115. client_body_temp_path /tmp/client_temp;
  1116. proxy_temp_path /tmp/proxy_temp_path;
  1117. fastcgi_temp_path /tmp/fastcgi_temp;
  1118. uwsgi_temp_path /tmp/uwsgi_temp;
  1119. scgi_temp_path /tmp/scgi_temp;
  1120. proxy_http_version 1.1;
  1121. default_type application/octet-stream;
  1122. log_format {{ .Values.gateway.nginxConfig.logFormat }}
  1123. {{- if .Values.gateway.verboseLogging }}
  1124. access_log /dev/stderr main;
  1125. {{- else }}
  1126. map $status $loggable {
  1127. ~^[23] 0;
  1128. default 1;
  1129. }
  1130. access_log /dev/stderr main if=$loggable;
  1131. {{- end }}
  1132. sendfile on;
  1133. tcp_nopush on;
  1134. {{- if .Values.gateway.nginxConfig.resolver }}
  1135. resolver {{ .Values.gateway.nginxConfig.resolver }};
  1136. {{- else }}
  1137. resolver {{ .Values.global.dnsService }}.{{ .Values.global.dnsNamespace }}.svc.{{ .Values.global.clusterDomain }};
  1138. {{- end }}
  1139. {{- with .Values.gateway.nginxConfig.httpSnippet }}
  1140. {{ . | nindent 2 }}
  1141. {{- end }}
  1142. server {
  1143. listen 8080;
  1144. {{- if .Values.gateway.basicAuth.enabled }}
  1145. auth_basic "Loki";
  1146. auth_basic_user_file /etc/nginx/secrets/.htpasswd;
  1147. {{- end }}
  1148. location = / {
  1149. return 200 'OK';
  1150. auth_basic off;
  1151. access_log off;
  1152. }
  1153. location = /api/prom/push {
  1154. set $api_prom_push_backend http://{{ include "loki.distributorFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1155. proxy_pass $api_prom_push_backend:3100$request_uri;
  1156. proxy_http_version 1.1;
  1157. }
  1158. location = /api/prom/tail {
  1159. set $api_prom_tail_backend http://{{ include "loki.querierFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1160. proxy_pass $api_prom_tail_backend:3100$request_uri;
  1161. proxy_set_header Upgrade $http_upgrade;
  1162. proxy_set_header Connection "upgrade";
  1163. proxy_http_version 1.1;
  1164. }
  1165. # Ruler
  1166. location ~ /prometheus/api/v1/alerts.* {
  1167. proxy_pass http://{{ include "loki.rulerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1168. }
  1169. location ~ /prometheus/api/v1/rules.* {
  1170. proxy_pass http://{{ include "loki.rulerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1171. }
  1172. location ~ /api/prom/rules.* {
  1173. proxy_pass http://{{ include "loki.rulerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1174. }
  1175. location ~ /api/prom/alerts.* {
  1176. proxy_pass http://{{ include "loki.rulerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1177. }
  1178. location ~ /api/prom/.* {
  1179. set $api_prom_backend http://{{ include "loki.queryFrontendFullname" . }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1180. proxy_pass $api_prom_backend:3100$request_uri;
  1181. proxy_http_version 1.1;
  1182. }
  1183. location = /loki/api/v1/push {
  1184. set $loki_api_v1_push_backend http://{{ include "loki.distributorFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1185. proxy_pass $loki_api_v1_push_backend:3100$request_uri;
  1186. proxy_http_version 1.1;
  1187. }
  1188. location = /loki/api/v1/tail {
  1189. set $loki_api_v1_tail_backend http://{{ include "loki.querierFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1190. proxy_pass $loki_api_v1_tail_backend:3100$request_uri;
  1191. proxy_set_header Upgrade $http_upgrade;
  1192. proxy_set_header Connection "upgrade";
  1193. proxy_http_version 1.1;
  1194. }
  1195. location ~ /loki/api/.* {
  1196. set $loki_api_backend http://{{ include "loki.queryFrontendFullname" . }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }};
  1197. proxy_pass $loki_api_backend:3100$request_uri;
  1198. proxy_http_version 1.1;
  1199. }
  1200. {{- with .Values.gateway.nginxConfig.serverSnippet }}
  1201. {{ . | nindent 4 }}
  1202. {{- end }}
  1203. }
  1204. }
  1205. # Configuration for the compactor
  1206. compactor:
  1207. # -- Specifies whether compactor should be enabled
  1208. enabled: false
  1209. # -- hostAliases to add
  1210. hostAliases: []
  1211. # - ip: 1.2.3.4
  1212. # hostnames:
  1213. # - domain.tld
  1214. image:
  1215. # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
  1216. registry: null
  1217. # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
  1218. repository: null
  1219. # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
  1220. tag: null
  1221. # -- Command to execute instead of defined in Docker image
  1222. command: null
  1223. # -- The name of the PriorityClass for compactor pods
  1224. priorityClassName: null
  1225. # -- Labels for compactor pods
  1226. podLabels: {}
  1227. # -- Annotations for compactor pods
  1228. podAnnotations: {}
  1229. # -- Affinity for compactor pods. Passed through `tpl` and, thus, to be configured as string
  1230. # @default -- Hard node and soft zone anti-affinity
  1231. affinity: |
  1232. podAntiAffinity:
  1233. requiredDuringSchedulingIgnoredDuringExecution:
  1234. - labelSelector:
  1235. matchLabels:
  1236. {{- include "loki.compactorSelectorLabels" . | nindent 10 }}
  1237. topologyKey: kubernetes.io/hostname
  1238. preferredDuringSchedulingIgnoredDuringExecution:
  1239. - weight: 100
  1240. podAffinityTerm:
  1241. labelSelector:
  1242. matchLabels:
  1243. {{- include "loki.compactorSelectorLabels" . | nindent 12 }}
  1244. topologyKey: failure-domain.beta.kubernetes.io/zone
  1245. # -- Labels for compactor service
  1246. serviceLabels: {}
  1247. # -- Additional CLI args for the compactor
  1248. extraArgs: []
  1249. # -- Environment variables to add to the compactor pods
  1250. extraEnv: []
  1251. # -- Environment variables from secrets or configmaps to add to the compactor pods
  1252. extraEnvFrom: []
  1253. # -- Volume mounts to add to the compactor pods
  1254. extraVolumeMounts: []
  1255. # -- Volumes to add to the compactor pods
  1256. extraVolumes: []
  1257. # -- Resource requests and limits for the compactor
  1258. resources: {}
  1259. # -- Containers to add to the compactor pods
  1260. extraContainers: []
  1261. # -- Init containers to add to the compactor pods
  1262. initContainers: []
  1263. # -- Grace period to allow the compactor to shutdown before it is killed
  1264. terminationGracePeriodSeconds: 30
  1265. # -- Node selector for compactor pods
  1266. nodeSelector: {}
  1267. # -- Tolerations for compactor pods
  1268. tolerations: []
  1269. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  1270. appProtocol:
  1271. grpc: ""
  1272. persistence:
  1273. # -- Enable creating PVCs for the compactor
  1274. enabled: false
  1275. # -- Size of persistent disk
  1276. size: 10Gi
  1277. # -- Storage class to be used.
  1278. # If defined, storageClassName: <storageClass>.
  1279. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1280. # If empty or set to null, no storageClassName spec is
  1281. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1282. storageClass: null
  1283. # -- Annotations for compactor PVCs
  1284. annotations: {}
  1285. serviceAccount:
  1286. create: false
  1287. # -- The name of the ServiceAccount to use for the compactor.
  1288. # If not set and create is true, a name is generated by appending
  1289. # "-compactor" to the common ServiceAccount.
  1290. name: null
  1291. # -- Image pull secrets for the compactor service account
  1292. imagePullSecrets: []
  1293. # -- Annotations for the compactor service account
  1294. annotations: {}
  1295. # -- Set this toggle to false to opt out of automounting API credentials for the service account
  1296. automountServiceAccountToken: true
  1297. # Configuration for the ruler
  1298. ruler:
  1299. # -- Specifies whether the ruler should be enabled
  1300. enabled: false
  1301. # -- Kind of deployment [StatefulSet/Deployment]
  1302. kind: Deployment
  1303. # -- Number of replicas for the ruler
  1304. replicas: 1
  1305. # -- hostAliases to add
  1306. hostAliases: []
  1307. # - ip: 1.2.3.4
  1308. # hostnames:
  1309. # - domain.tld
  1310. image:
  1311. # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
  1312. registry: null
  1313. # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
  1314. repository: null
  1315. # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
  1316. tag: null
  1317. # -- Command to execute instead of defined in Docker image
  1318. command: null
  1319. # -- The name of the PriorityClass for ruler pods
  1320. priorityClassName: null
  1321. # -- Labels for compactor pods
  1322. podLabels: {}
  1323. # -- Annotations for ruler pods
  1324. podAnnotations: {}
  1325. # -- Labels for ruler service
  1326. serviceLabels: {}
  1327. # -- Additional CLI args for the ruler
  1328. extraArgs: []
  1329. # -- Environment variables to add to the ruler pods
  1330. extraEnv: []
  1331. # -- Environment variables from secrets or configmaps to add to the ruler pods
  1332. extraEnvFrom: []
  1333. # -- Volume mounts to add to the ruler pods
  1334. extraVolumeMounts: []
  1335. # -- Volumes to add to the ruler pods
  1336. extraVolumes: []
  1337. # -- Resource requests and limits for the ruler
  1338. resources: {}
  1339. # -- Containers to add to the ruler pods
  1340. extraContainers: []
  1341. # -- Init containers to add to the ruler pods
  1342. initContainers: []
  1343. # -- Grace period to allow the ruler to shutdown before it is killed
  1344. terminationGracePeriodSeconds: 300
  1345. # -- Affinity for ruler pods. Passed through `tpl` and, thus, to be configured as string
  1346. # @default -- Hard node and soft zone anti-affinity
  1347. affinity: |
  1348. podAntiAffinity:
  1349. requiredDuringSchedulingIgnoredDuringExecution:
  1350. - labelSelector:
  1351. matchLabels:
  1352. {{- include "loki.rulerSelectorLabels" . | nindent 10 }}
  1353. topologyKey: kubernetes.io/hostname
  1354. preferredDuringSchedulingIgnoredDuringExecution:
  1355. - weight: 100
  1356. podAffinityTerm:
  1357. labelSelector:
  1358. matchLabels:
  1359. {{- include "loki.rulerSelectorLabels" . | nindent 12 }}
  1360. topologyKey: failure-domain.beta.kubernetes.io/zone
  1361. # -- Pod Disruption Budget maxUnavailable
  1362. maxUnavailable: null
  1363. # -- Node selector for ruler pods
  1364. nodeSelector: {}
  1365. # -- Tolerations for ruler pods
  1366. tolerations: []
  1367. # -- DNSConfig for ruler pods
  1368. dnsConfig: {}
  1369. persistence:
  1370. # -- Enable creating PVCs which is required when using recording rules
  1371. enabled: false
  1372. # -- Size of persistent disk
  1373. size: 10Gi
  1374. # -- Storage class to be used.
  1375. # If defined, storageClassName: <storageClass>.
  1376. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1377. # If empty or set to null, no storageClassName spec is
  1378. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1379. storageClass: null
  1380. # -- Annotations for ruler PVCs
  1381. annotations: {}
  1382. # -- Directories containing rules files
  1383. directories: {}
  1384. # tenant_foo:
  1385. # rules1.txt: |
  1386. # groups:
  1387. # - name: should_fire
  1388. # rules:
  1389. # - alert: HighPercentageError
  1390. # expr: |
  1391. # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
  1392. # /
  1393. # sum(rate({app="foo", env="production"}[5m])) by (job)
  1394. # > 0.05
  1395. # for: 10m
  1396. # labels:
  1397. # severity: warning
  1398. # annotations:
  1399. # summary: High error rate
  1400. # - name: credentials_leak
  1401. # rules:
  1402. # - alert: http-credentials-leaked
  1403. # annotations:
  1404. # message: "{{ $labels.job }} is leaking http basic auth credentials."
  1405. # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
  1406. # for: 10m
  1407. # labels:
  1408. # severity: critical
  1409. # rules2.txt: |
  1410. # groups:
  1411. # - name: example
  1412. # rules:
  1413. # - alert: HighThroughputLogStreams
  1414. # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
  1415. # for: 2m
  1416. # tenant_bar:
  1417. # rules1.txt: |
  1418. # groups:
  1419. # - name: should_fire
  1420. # rules:
  1421. # - alert: HighPercentageError
  1422. # expr: |
  1423. # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
  1424. # /
  1425. # sum(rate({app="foo", env="production"}[5m])) by (job)
  1426. # > 0.05
  1427. # for: 10m
  1428. # labels:
  1429. # severity: warning
  1430. # annotations:
  1431. # summary: High error rate
  1432. # - name: credentials_leak
  1433. # rules:
  1434. # - alert: http-credentials-leaked
  1435. # annotations:
  1436. # message: "{{ $labels.job }} is leaking http basic auth credentials."
  1437. # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
  1438. # for: 10m
  1439. # labels:
  1440. # severity: critical
  1441. # rules2.txt: |
  1442. # groups:
  1443. # - name: example
  1444. # rules:
  1445. # - alert: HighThroughputLogStreams
  1446. # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
  1447. # for: 2m
  1448. # Configuration for the index-gateway
  1449. indexGateway:
  1450. # -- Specifies whether the index-gateway should be enabled
  1451. enabled: true
  1452. # -- Number of replicas for the index-gateway
  1453. replicas: 1
  1454. # -- hostAliases to add
  1455. hostAliases: []
  1456. # - ip: 1.2.3.4
  1457. # hostnames:
  1458. # - domain.tld
  1459. image:
  1460. # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
  1461. registry: null
  1462. # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
  1463. repository: null
  1464. # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
  1465. tag: null
  1466. # -- The name of the PriorityClass for index-gateway pods
  1467. priorityClassName: null
  1468. # -- Labels for index-gateway pods
  1469. podLabels: {}
  1470. # -- Annotations for index-gateway pods
  1471. podAnnotations: {}
  1472. # -- Labels for index-gateway service
  1473. serviceLabels: {}
  1474. # -- Additional CLI args for the index-gateway
  1475. extraArgs: []
  1476. # -- Environment variables to add to the index-gateway pods
  1477. extraEnv: []
  1478. # -- Environment variables from secrets or configmaps to add to the index-gateway pods
  1479. extraEnvFrom: []
  1480. # -- Volume mounts to add to the index-gateway pods
  1481. extraVolumeMounts: []
  1482. # -- Volumes to add to the index-gateway pods
  1483. extraVolumes: []
  1484. # -- Resource requests and limits for the index-gateway
  1485. resources: {}
  1486. # -- Containers to add to the index-gateway pods
  1487. extraContainers: []
  1488. # -- Init containers to add to the index-gateway pods
  1489. initContainers: []
  1490. # -- Grace period to allow the index-gateway to shutdown before it is killed.
  1491. terminationGracePeriodSeconds: 300
  1492. # -- Affinity for index-gateway pods. Passed through `tpl` and, thus, to be configured as string
  1493. # @default -- Hard node and soft zone anti-affinity
  1494. affinity: |
  1495. podAntiAffinity:
  1496. requiredDuringSchedulingIgnoredDuringExecution:
  1497. - labelSelector:
  1498. matchLabels:
  1499. {{- include "loki.indexGatewaySelectorLabels" . | nindent 10 }}
  1500. topologyKey: kubernetes.io/hostname
  1501. preferredDuringSchedulingIgnoredDuringExecution:
  1502. - weight: 100
  1503. podAffinityTerm:
  1504. labelSelector:
  1505. matchLabels:
  1506. {{- include "loki.indexGatewaySelectorLabels" . | nindent 12 }}
  1507. topologyKey: failure-domain.beta.kubernetes.io/zone
  1508. # -- Pod Disruption Budget maxUnavailable
  1509. maxUnavailable: null
  1510. # -- Node selector for index-gateway pods
  1511. nodeSelector: {}
  1512. # -- Tolerations for index-gateway pods
  1513. tolerations: []
  1514. persistence:
  1515. # -- Enable creating PVCs which is required when using boltdb-shipper
  1516. enabled: true
  1517. # -- Use emptyDir with ramdisk for storage. **Please note that all data in indexGateway will be lost on pod restart**
  1518. inMemory: false
  1519. # -- Size of persistent or memory disk
  1520. size: 10Gi
  1521. # -- Storage class to be used.
  1522. # If defined, storageClassName: <storageClass>.
  1523. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1524. # If empty or set to null, no storageClassName spec is
  1525. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1526. storageClass: "openebs-hostpath"
  1527. # -- Annotations for index gateway PVCs
  1528. annotations: {}
  1529. memcached:
  1530. readinessProbe:
  1531. tcpSocket:
  1532. port: http
  1533. initialDelaySeconds: 5
  1534. timeoutSeconds: 1
  1535. livenessProbe:
  1536. tcpSocket:
  1537. port: http
  1538. initialDelaySeconds: 10
  1539. image:
  1540. # -- The Docker registry for the memcached
  1541. registry: docker.io
  1542. # -- Memcached Docker image repository
  1543. repository: memcached
  1544. # -- Memcached Docker image tag
  1545. tag: 1.6.17-alpine
  1546. # -- Memcached Docker image pull policy
  1547. pullPolicy: IfNotPresent
  1548. # -- Labels for memcached pods
  1549. podLabels: {}
  1550. # -- The SecurityContext for memcached pods
  1551. podSecurityContext:
  1552. fsGroup: 11211
  1553. runAsGroup: 11211
  1554. runAsNonRoot: true
  1555. runAsUser: 11211
  1556. # -- The SecurityContext for memcached containers
  1557. containerSecurityContext:
  1558. readOnlyRootFilesystem: true
  1559. capabilities:
  1560. drop:
  1561. - ALL
  1562. allowPrivilegeEscalation: false
  1563. # -- Common annotations for all memcached services
  1564. serviceAnnotations: {}
  1565. # -- Adds the appProtocol field to the memcached services. This allows memcached to work with istio protocol selection. Ex: "http" or "tcp"
  1566. appProtocol: ""
  1567. memcachedExporter:
  1568. # -- Specifies whether the Memcached Exporter should be enabled
  1569. enabled: false
  1570. image:
  1571. # -- The Docker registry for the Memcached Exporter
  1572. registry: docker.io
  1573. # -- Memcached Exporter Docker image repository
  1574. repository: prom/memcached-exporter
  1575. # -- Memcached Exporter Docker image tag
  1576. tag: v0.6.0
  1577. # -- Memcached Exporter Docker image pull policy
  1578. pullPolicy: IfNotPresent
  1579. # -- Labels for memcached-exporter pods
  1580. podLabels: {}
  1581. # -- Memcached Exporter resource requests and limits
  1582. resources: {}
  1583. # -- The SecurityContext for memcachedExporter containers
  1584. containerSecurityContext:
  1585. readOnlyRootFilesystem: true
  1586. capabilities:
  1587. drop:
  1588. - ALL
  1589. allowPrivilegeEscalation: false
  1590. memcachedChunks:
  1591. # -- Specifies whether the Memcached chunks cache should be enabled
  1592. enabled: false
  1593. # -- hostAliases to add
  1594. hostAliases: []
  1595. # - ip: 1.2.3.4
  1596. # hostnames:
  1597. # - domain.tld
  1598. # -- Number of replicas for memcached-chunks
  1599. replicas: 1
  1600. # -- The name of the PriorityClass for memcached-chunks pods
  1601. priorityClassName: null
  1602. # -- Labels for memcached-chunks pods
  1603. podLabels: {}
  1604. # -- Annotations for memcached-chunks pods
  1605. podAnnotations: {}
  1606. # -- Labels for memcached-chunks service
  1607. serviceLabels: {}
  1608. # -- Additional CLI args for memcached-chunks
  1609. extraArgs:
  1610. - -I 32m
  1611. # -- Environment variables to add to memcached-chunks pods
  1612. extraEnv: []
  1613. # -- Environment variables from secrets or configmaps to add to memcached-chunks pods
  1614. extraEnvFrom: []
  1615. # -- Resource requests and limits for memcached-chunks
  1616. resources: {}
  1617. # -- Containers to add to the memcached-chunks pods
  1618. extraContainers: []
  1619. # -- Grace period to allow memcached-chunks to shutdown before it is killed
  1620. terminationGracePeriodSeconds: 30
  1621. # -- Affinity for memcached-chunks pods. Passed through `tpl` and, thus, to be configured as string
  1622. # @default -- Hard node and soft zone anti-affinity
  1623. affinity: |
  1624. podAntiAffinity:
  1625. requiredDuringSchedulingIgnoredDuringExecution:
  1626. - labelSelector:
  1627. matchLabels:
  1628. {{- include "loki.memcachedChunksSelectorLabels" . | nindent 10 }}
  1629. topologyKey: kubernetes.io/hostname
  1630. preferredDuringSchedulingIgnoredDuringExecution:
  1631. - weight: 100
  1632. podAffinityTerm:
  1633. labelSelector:
  1634. matchLabels:
  1635. {{- include "loki.memcachedChunksSelectorLabels" . | nindent 12 }}
  1636. topologyKey: failure-domain.beta.kubernetes.io/zone
  1637. # -- Pod Disruption Budget maxUnavailable
  1638. maxUnavailable: null
  1639. # -- Node selector for memcached-chunks pods
  1640. nodeSelector: {}
  1641. # -- Tolerations for memcached-chunks pods
  1642. tolerations: []
  1643. persistence:
  1644. # -- Enable creating PVCs which will persist cached data through restarts
  1645. enabled: false
  1646. # -- Size of persistent or memory disk
  1647. size: 10Gi
  1648. # -- Storage class to be used.
  1649. # If defined, storageClassName: <storageClass>.
  1650. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1651. # If empty or set to null, no storageClassName spec is
  1652. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1653. storageClass: null
  1654. # -- List of additional PVCs to be created for the memcached-chunks statefulset
  1655. volumeClaimTemplates: []
  1656. # -- List of additional volumes to be mounted for the memcached-chunks statefulset
  1657. extraVolumeMounts: []
  1658. memcachedFrontend:
  1659. # -- Specifies whether the Memcached frontend cache should be enabled
  1660. enabled: false
  1661. # -- hostAliases to add
  1662. hostAliases: []
  1663. # - ip: 1.2.3.4
  1664. # hostnames:
  1665. # - domain.tld
  1666. # -- Number of replicas for memcached-frontend
  1667. replicas: 1
  1668. # -- The name of the PriorityClass for memcached-frontend pods
  1669. priorityClassName: null
  1670. # -- Labels for memcached-frontend pods
  1671. podLabels: {}
  1672. # -- Annotations for memcached-frontend pods
  1673. podAnnotations: {}
  1674. # -- Labels for memcached-frontend service
  1675. serviceLabels: {}
  1676. # -- Additional CLI args for memcached-frontend
  1677. extraArgs:
  1678. - -I 32m
  1679. # -- Environment variables to add to memcached-frontend pods
  1680. extraEnv: []
  1681. # -- Environment variables from secrets or configmaps to add to memcached-frontend pods
  1682. extraEnvFrom: []
  1683. # -- Resource requests and limits for memcached-frontend
  1684. resources: {}
  1685. # -- Containers to add to the memcached-frontend pods
  1686. extraContainers: []
  1687. # -- Grace period to allow memcached-frontend to shutdown before it is killed
  1688. terminationGracePeriodSeconds: 30
  1689. # -- Affinity for memcached-frontend pods. Passed through `tpl` and, thus, to be configured as string
  1690. # @default -- Hard node and soft zone anti-affinity
  1691. affinity: |
  1692. podAntiAffinity:
  1693. requiredDuringSchedulingIgnoredDuringExecution:
  1694. - labelSelector:
  1695. matchLabels:
  1696. {{- include "loki.memcachedFrontendSelectorLabels" . | nindent 10 }}
  1697. topologyKey: kubernetes.io/hostname
  1698. preferredDuringSchedulingIgnoredDuringExecution:
  1699. - weight: 100
  1700. podAffinityTerm:
  1701. labelSelector:
  1702. matchLabels:
  1703. {{- include "loki.memcachedFrontendSelectorLabels" . | nindent 12 }}
  1704. topologyKey: failure-domain.beta.kubernetes.io/zone
  1705. # -- Pod Disruption Budget maxUnavailable
  1706. maxUnavailable: 1
  1707. # -- Node selector for memcached-frontend pods
  1708. nodeSelector: {}
  1709. # -- Tolerations for memcached-frontend pods
  1710. tolerations: []
  1711. persistence:
  1712. # -- Enable creating PVCs which will persist cached data through restarts
  1713. enabled: false
  1714. # -- Size of persistent or memory disk
  1715. size: 10Gi
  1716. # -- Storage class to be used.
  1717. # If defined, storageClassName: <storageClass>.
  1718. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1719. # If empty or set to null, no storageClassName spec is
  1720. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1721. storageClass: null
  1722. memcachedIndexQueries:
  1723. # -- Specifies whether the Memcached index queries cache should be enabled
  1724. enabled: false
  1725. # -- Number of replicas for memcached-index-queries
  1726. replicas: 1
  1727. # -- hostAliases to add
  1728. hostAliases: []
  1729. # - ip: 1.2.3.4
  1730. # hostnames:
  1731. # - domain.tld
  1732. # -- The name of the PriorityClass for memcached-index-queries pods
  1733. priorityClassName: null
  1734. # -- Labels for memcached-index-queries pods
  1735. podLabels: {}
  1736. # -- Annotations for memcached-index-queries pods
  1737. podAnnotations: {}
  1738. # -- Labels for memcached-index-queries service
  1739. serviceLabels: {}
  1740. # -- Additional CLI args for memcached-index-queries
  1741. extraArgs:
  1742. - -I 32m
  1743. # -- Environment variables to add to memcached-index-queries pods
  1744. extraEnv: []
  1745. # -- Environment variables from secrets or configmaps to add to memcached-index-queries pods
  1746. extraEnvFrom: []
  1747. # -- Resource requests and limits for memcached-index-queries
  1748. resources: {}
  1749. # -- Containers to add to the memcached-index-queries pods
  1750. extraContainers: []
  1751. # -- Grace period to allow memcached-index-queries to shutdown before it is killed
  1752. terminationGracePeriodSeconds: 30
  1753. # -- Affinity for memcached-index-queries pods. Passed through `tpl` and, thus, to be configured as string
  1754. # @default -- Hard node and soft zone anti-affinity
  1755. affinity: |
  1756. podAntiAffinity:
  1757. requiredDuringSchedulingIgnoredDuringExecution:
  1758. - labelSelector:
  1759. matchLabels:
  1760. {{- include "loki.memcachedIndexQueriesSelectorLabels" . | nindent 10 }}
  1761. topologyKey: kubernetes.io/hostname
  1762. preferredDuringSchedulingIgnoredDuringExecution:
  1763. - weight: 100
  1764. podAffinityTerm:
  1765. labelSelector:
  1766. matchLabels:
  1767. {{- include "loki.memcachedIndexQueriesSelectorLabels" . | nindent 12 }}
  1768. topologyKey: failure-domain.beta.kubernetes.io/zone
  1769. # -- Pod Disruption Budget maxUnavailable
  1770. maxUnavailable: null
  1771. # -- Node selector for memcached-index-queries pods
  1772. nodeSelector: {}
  1773. # -- Tolerations for memcached-index-queries pods
  1774. tolerations: []
  1775. persistence:
  1776. # -- Enable creating PVCs which will persist cached data through restarts
  1777. enabled: false
  1778. # -- Size of persistent or memory disk
  1779. size: 10Gi
  1780. # -- Storage class to be used.
  1781. # If defined, storageClassName: <storageClass>.
  1782. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1783. # If empty or set to null, no storageClassName spec is
  1784. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1785. storageClass: null
  1786. memcachedIndexWrites:
  1787. # -- Specifies whether the Memcached index writes cache should be enabled
  1788. enabled: false
  1789. # -- Number of replicas for memcached-index-writes
  1790. replicas: 1
  1791. # -- hostAliases to add
  1792. hostAliases: []
  1793. # - ip: 1.2.3.4
  1794. # hostnames:
  1795. # - domain.tld
  1796. # -- The name of the PriorityClass for memcached-index-writes pods
  1797. priorityClassName: null
  1798. # -- Labels for memcached-index-writes pods
  1799. podLabels: {}
  1800. # -- Annotations for memcached-index-writes pods
  1801. podAnnotations: {}
  1802. # -- Labels for memcached-index-writes service
  1803. serviceLabels: {}
  1804. # -- Additional CLI args for memcached-index-writes
  1805. extraArgs:
  1806. - -I 32m
  1807. # -- Environment variables to add to memcached-index-writes pods
  1808. extraEnv: []
  1809. # -- Environment variables from secrets or configmaps to add to memcached-index-writes pods
  1810. extraEnvFrom: []
  1811. # -- Resource requests and limits for memcached-index-writes
  1812. resources: {}
  1813. # -- Containers to add to the memcached-index-writes pods
  1814. extraContainers: []
  1815. # -- Grace period to allow memcached-index-writes to shutdown before it is killed
  1816. terminationGracePeriodSeconds: 30
  1817. # -- Affinity for memcached-index-writes pods. Passed through `tpl` and, thus, to be configured as string
  1818. # @default -- Hard node and soft zone anti-affinity
  1819. affinity: |
  1820. podAntiAffinity:
  1821. requiredDuringSchedulingIgnoredDuringExecution:
  1822. - labelSelector:
  1823. matchLabels:
  1824. {{- include "loki.memcachedIndexWritesSelectorLabels" . | nindent 10 }}
  1825. topologyKey: kubernetes.io/hostname
  1826. preferredDuringSchedulingIgnoredDuringExecution:
  1827. - weight: 100
  1828. podAffinityTerm:
  1829. labelSelector:
  1830. matchLabels:
  1831. {{- include "loki.memcachedIndexWritesSelectorLabels" . | nindent 12 }}
  1832. topologyKey: failure-domain.beta.kubernetes.io/zone
  1833. # -- Pod Disruption Budget maxUnavailable
  1834. maxUnavailable: null
  1835. # -- Node selector for memcached-index-writes pods
  1836. nodeSelector: {}
  1837. # -- Tolerations for memcached-index-writes pods
  1838. tolerations: []
  1839. persistence:
  1840. # -- Enable creating PVCs which will persist cached data through restarts
  1841. enabled: false
  1842. # -- Size of persistent or memory disk
  1843. size: 10Gi
  1844. # -- Storage class to be used.
  1845. # If defined, storageClassName: <storageClass>.
  1846. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  1847. # If empty or set to null, no storageClassName spec is
  1848. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  1849. storageClass: null
  1850. networkPolicy:
  1851. # -- Specifies whether Network Policies should be created
  1852. enabled: false
  1853. metrics:
  1854. # -- Specifies the Pods which are allowed to access the metrics port.
  1855. # As this is cross-namespace communication, you also need the namespaceSelector.
  1856. podSelector: {}
  1857. # -- Specifies the namespaces which are allowed to access the metrics port
  1858. namespaceSelector: {}
  1859. # -- Specifies specific network CIDRs which are allowed to access the metrics port.
  1860. # In case you use namespaceSelector, you also have to specify your kubelet networks here.
  1861. # The metrics ports are also used for probes.
  1862. cidrs: []
  1863. ingress:
  1864. # -- Specifies the Pods which are allowed to access the http port.
  1865. # As this is cross-namespace communication, you also need the namespaceSelector.
  1866. podSelector: {}
  1867. # -- Specifies the namespaces which are allowed to access the http port
  1868. namespaceSelector: {}
  1869. alertmanager:
  1870. # -- Specify the alertmanager port used for alerting
  1871. port: 9093
  1872. # -- Specifies the alertmanager Pods.
  1873. # As this is cross-namespace communication, you also need the namespaceSelector.
  1874. podSelector: {}
  1875. # -- Specifies the namespace the alertmanager is running in
  1876. namespaceSelector: {}
  1877. externalStorage:
  1878. # -- Specify the port used for external storage, e.g. AWS S3
  1879. ports: []
  1880. # -- Specifies specific network CIDRs you want to limit access to
  1881. cidrs: []
  1882. discovery:
  1883. # -- Specify the port used for discovery
  1884. port: null
  1885. # -- Specifies the Pods labels used for discovery.
  1886. # As this is cross-namespace communication, you also need the namespaceSelector.
  1887. podSelector: {}
  1888. # -- Specifies the namespace the discovery Pods are running in
  1889. namespaceSelector: {}