values.yaml 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092
  1. global:
  2. image:
  3. # -- Overrides the Docker registry globally for all images, excluding enterprise.
  4. registry: docker.io
  5. # -- Optional list of imagePullSecrets for all images, excluding enterprise.
  6. # Names of existing secrets with private container registry credentials.
  7. # Ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
  8. # Example:
  9. # pullSecrets: [ my-dockerconfigjson-secret ]
  10. pullSecrets: []
  11. # -- Overrides the priorityClassName for all pods
  12. priorityClassName: null
  13. # -- configures cluster domain ("cluster.local" by default)
  14. clusterDomain: 'cluster.local'
  15. # -- configures DNS service name
  16. dnsService: 'kube-dns'
  17. # -- configures DNS service namespace
  18. dnsNamespace: 'kube-system'
  19. fullnameOverride: ''
  20. # fullnameOverride: tempo
  21. # -- Configuration is loaded from the secret called 'externalConfigSecretName'.
  22. # If 'useExternalConfig' is true, then the configuration is not generated, just
  23. # consumed. Top level keys for `tempo.yaml` and `overrides.yaml` are to be
  24. # provided by the user.
  25. useExternalConfig: false
  26. # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
  27. # 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/mimir/latest/operators-guide/configuring/reference-configuration-parameters/#use-environment-variables-in-the-configuration).
  28. # 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).
  29. configStorageType: ConfigMap
  30. # -- Name of the Secret or ConfigMap that contains the configuration (used for naming even if config is internal).
  31. externalConfigSecretName: '{{ include "tempo.resourceName" (dict "ctx" . "component" "config") }}'
  32. # -- Name of the Secret or ConfigMap that contains the runtime configuration (used for naming even if config is internal).
  33. externalRuntimeConfigName: '{{ include "tempo.resourceName" (dict "ctx" . "component" "runtime") }}'
  34. # -- When 'useExternalConfig' is true, then changing 'externalConfigVersion' triggers restart of services - otherwise changes to the configuration cause a restart.
  35. externalConfigVersion: '0'
  36. # -- If true, Tempo will report anonymous usage data about the shape of a deployment to Grafana Labs
  37. reportingEnabled: true
  38. tempo:
  39. image:
  40. # -- The Docker registry
  41. registry: docker.io
  42. # -- Optional list of imagePullSecrets. Overrides `global.image.pullSecrets`
  43. pullSecrets: []
  44. # -- Docker image repository
  45. repository: grafana/tempo
  46. # -- Overrides the image tag whose default is the chart's appVersion
  47. tag: null
  48. pullPolicy: IfNotPresent
  49. readinessProbe:
  50. httpGet:
  51. path: /ready
  52. port: http-metrics
  53. initialDelaySeconds: 30
  54. timeoutSeconds: 1
  55. # -- Global labels for all tempo pods
  56. podLabels: {}
  57. # -- Common annotations for all pods
  58. podAnnotations: {}
  59. # -- SecurityContext holds container-level security attributes and common container settings
  60. securityContext:
  61. runAsNonRoot: true
  62. runAsUser: 1000
  63. runAsGroup: 1000
  64. allowPrivilegeEscalation: false
  65. capabilities:
  66. drop:
  67. - ALL
  68. readOnlyRootFilesystem: true
  69. # -- podSecurityContext holds pod-level security attributes and common container settings
  70. podSecurityContext:
  71. fsGroup: 1000
  72. # -- Structured tempo configuration
  73. structuredConfig: {}
  74. # -- Memberlist service configuration.
  75. memberlist:
  76. # -- Adds the appProtocol field to the memberlist service. This allows memberlist to work with istio protocol selection. Set the optional service protocol. Ex: "tcp", "http" or "https".
  77. appProtocol: null
  78. serviceAccount:
  79. # -- Specifies whether a ServiceAccount should be created
  80. create: true
  81. # -- The name of the ServiceAccount to use.
  82. # If not set and create is true, a name is generated using the fullname template
  83. name: null
  84. # -- Image pull secrets for the service account
  85. imagePullSecrets: []
  86. # -- Annotations for the service account
  87. annotations: {}
  88. automountServiceAccountToken: false
  89. rbac:
  90. # -- Specifies whether RBAC manifests should be created
  91. create: false
  92. # -- Specifies whether a PodSecurityPolicy should be created
  93. pspEnabled: false
  94. # Configuration for the ingester
  95. ingester:
  96. # -- Annotations for the ingester StatefulSet
  97. annotations: {}
  98. # -- Number of replicas for the ingester
  99. replicas: 3
  100. # -- hostAliases to add
  101. hostAliases: []
  102. # - ip: 1.2.3.4
  103. # hostnames:
  104. # - domain.tld
  105. autoscaling:
  106. # -- Enable autoscaling for the ingester. WARNING: Autoscaling ingesters can result in lost data. Only do this if you know what you're doing.
  107. enabled: false
  108. # -- Minimum autoscaling replicas for the ingester
  109. minReplicas: 2
  110. # -- Maximum autoscaling replicas for the ingester
  111. maxReplicas: 3
  112. # -- Autoscaling behavior configuration for the ingester
  113. behavior: {}
  114. # -- Target CPU utilisation percentage for the ingester
  115. targetCPUUtilizationPercentage: 60
  116. # -- Target memory utilisation percentage for the ingester
  117. targetMemoryUtilizationPercentage:
  118. image:
  119. # -- The Docker registry for the ingester image. Overrides `tempo.image.registry`
  120. registry: null
  121. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  122. pullSecrets: []
  123. # -- Docker image repository for the ingester image. Overrides `tempo.image.repository`
  124. repository: null
  125. # -- Docker image tag for the ingester image. Overrides `tempo.image.tag`
  126. tag: null
  127. # -- The name of the PriorityClass for ingester pods
  128. priorityClassName: null
  129. # -- Labels for ingester pods
  130. podLabels: {}
  131. # -- Annotations for ingester pods
  132. podAnnotations: {}
  133. # -- Additional CLI args for the ingester
  134. extraArgs: []
  135. # -- Environment variables to add to the ingester pods
  136. extraEnv: []
  137. # -- Environment variables from secrets or configmaps to add to the ingester pods
  138. extraEnvFrom: []
  139. # -- Resource requests and limits for the ingester
  140. resources: {}
  141. # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
  142. # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
  143. # all data and to successfully leave the member ring on shutdown.
  144. terminationGracePeriodSeconds: 300
  145. # -- topologySpread for ingester pods. Passed through `tpl` and, thus, to be configured as string
  146. # @default -- Defaults to allow skew no more then 1 node per AZ
  147. topologySpreadConstraints: |
  148. - maxSkew: 1
  149. topologyKey: topology.kubernetes.io/zone
  150. whenUnsatisfiable: ScheduleAnyway
  151. labelSelector:
  152. matchLabels:
  153. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "ingester") | nindent 6 }}
  154. # -- Affinity for ingester pods. Passed through `tpl` and, thus, to be configured as string
  155. # @default -- Soft node and soft zone anti-affinity
  156. affinity: |
  157. podAntiAffinity:
  158. preferredDuringSchedulingIgnoredDuringExecution:
  159. - weight: 100
  160. podAffinityTerm:
  161. labelSelector:
  162. matchLabels:
  163. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "ingester") | nindent 12 }}
  164. topologyKey: kubernetes.io/hostname
  165. - weight: 75
  166. podAffinityTerm:
  167. labelSelector:
  168. matchLabels:
  169. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "ingester") | nindent 12 }}
  170. topologyKey: topology.kubernetes.io/zone
  171. # -- Node selector for ingester pods
  172. nodeSelector: {}
  173. # -- Tolerations for ingester pods
  174. tolerations: []
  175. # -- Extra volumes for ingester pods
  176. extraVolumeMounts: []
  177. # -- Extra volumes for ingester deployment
  178. extraVolumes: []
  179. persistence:
  180. # -- Enable creating PVCs which is required when using boltdb-shipper
  181. enabled: true
  182. # -- use emptyDir with ramdisk instead of PVC. **Please note that all data in ingester will be lost on pod restart**
  183. inMemory: false
  184. # -- Size of persistent or memory disk
  185. size: 50Gi
  186. # -- Storage class to be used.
  187. # If defined, storageClassName: <storageClass>.
  188. # If set to "-", storageClassName: "", which disables dynamic provisioning.
  189. # If empty or set to null, no storageClassName spec is
  190. # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
  191. storageClass: "openebs-hostpath"
  192. # -- Annotations for ingester's persist volume claim
  193. annotations: {}
  194. config:
  195. # -- Number of copies of spans to store in the ingester ring
  196. replication_factor: 3
  197. # -- Amount of time a trace must be idle before flushing it to the wal.
  198. trace_idle_period: null
  199. # -- How often to sweep all tenants and move traces from live -> wal -> completed blocks.
  200. flush_check_period: null
  201. # -- Maximum size of a block before cutting it
  202. max_block_bytes: null
  203. # -- Maximum length of time before cutting a block
  204. max_block_duration: null
  205. # -- Duration to keep blocks in the ingester after they have been flushed
  206. complete_block_timeout: null
  207. # -- Flush all traces to backend when ingester is stopped
  208. flush_all_on_shutdown: false
  209. service:
  210. # -- Annotations for ingester service
  211. annotations: {}
  212. # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
  213. appProtocol:
  214. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  215. grpc: null
  216. # Configuration for the metrics-generator
  217. metricsGenerator:
  218. # -- Specifies whether a metrics-generator should be deployed
  219. enabled: true
  220. # -- Annotations for the metrics-generator StatefulSet
  221. annotations: {}
  222. # -- Number of replicas for the metrics-generator
  223. replicas: 1
  224. # -- hostAliases to add
  225. hostAliases: []
  226. # - ip: 1.2.3.4
  227. # hostnames:
  228. # - domain.tld
  229. image:
  230. # -- The Docker registry for the metrics-generator image. Overrides `tempo.image.registry`
  231. registry: null
  232. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  233. pullSecrets: []
  234. # -- Docker image repository for the metrics-generator image. Overrides `tempo.image.repository`
  235. repository: null
  236. # -- Docker image tag for the metrics-generator image. Overrides `tempo.image.tag`
  237. tag: null
  238. # -- The name of the PriorityClass for metrics-generator pods
  239. priorityClassName: null
  240. # -- Labels for metrics-generator pods
  241. podLabels: {}
  242. # -- Annotations for metrics-generator pods
  243. podAnnotations: {}
  244. # -- Additional CLI args for the metrics-generator
  245. extraArgs: []
  246. # -- Environment variables to add to the metrics-generator pods
  247. extraEnv: []
  248. # -- Environment variables from secrets or configmaps to add to the metrics-generator pods
  249. extraEnvFrom: []
  250. # -- Resource requests and limits for the metrics-generator
  251. resources: {}
  252. # -- Grace period to allow the metrics-generator to shutdown before it is killed. Especially for the ingestor,
  253. # this must be increased. It must be long enough so metrics-generators can be gracefully shutdown flushing/transferring
  254. # all data and to successfully leave the member ring on shutdown.
  255. terminationGracePeriodSeconds: 300
  256. # -- topologySpread for metrics-generator pods. Passed through `tpl` and, thus, to be configured as string
  257. # @default -- Defaults to allow skew no more then 1 node per AZ
  258. topologySpreadConstraints: |
  259. - maxSkew: 1
  260. topologyKey: topology.kubernetes.io/zone
  261. whenUnsatisfiable: ScheduleAnyway
  262. labelSelector:
  263. matchLabels:
  264. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "metrics-generator") | nindent 6 }}
  265. # -- Affinity for metrics-generator pods. Passed through `tpl` and, thus, to be configured as string
  266. # @default -- Hard node and soft zone anti-affinity
  267. affinity: |
  268. podAntiAffinity:
  269. requiredDuringSchedulingIgnoredDuringExecution:
  270. - labelSelector:
  271. matchLabels:
  272. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "metrics-generator") | nindent 10 }}
  273. topologyKey: kubernetes.io/hostname
  274. preferredDuringSchedulingIgnoredDuringExecution:
  275. - weight: 100
  276. podAffinityTerm:
  277. labelSelector:
  278. matchLabels:
  279. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "metrics-generator") | nindent 12 }}
  280. topologyKey: topology.kubernetes.io/zone
  281. # -- Node selector for metrics-generator pods
  282. nodeSelector: {}
  283. # -- Tolerations for metrics-generator pods
  284. tolerations: []
  285. # -- The EmptyDir location where the /var/tempo will be mounted on. Defaults to local disk, can be set to memory.
  286. walEmptyDir: {}
  287. ## Here shows how to configure 1Gi memory as emptyDir.
  288. ## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#emptydirvolumesource-v1-core
  289. # medium: "Memory"
  290. # sizeLimit: 1Gi
  291. # -- Extra volumes for metrics-generator pods
  292. extraVolumeMounts: []
  293. # -- Extra volumes for metrics-generator deployment
  294. extraVolumes: []
  295. # -- Default ports
  296. ports:
  297. - name: grpc
  298. port: 9095
  299. service: true
  300. - name: http-memberlist
  301. port: 7946
  302. service: false
  303. - name: http-metrics
  304. port: 3100
  305. service: true
  306. # -- More information on configuration: https://grafana.com/docs/tempo/latest/configuration/#metrics-generator
  307. config:
  308. registry:
  309. collection_interval: 15s
  310. external_labels: {}
  311. stale_duration: 15m
  312. processor:
  313. # -- For processors to be enabled and generate metrics, pass the names of the processors to overrides.metrics_generator_processors value like [service-graphs, span-metrics]
  314. service_graphs:
  315. # -- Additional dimensions to add to the metrics. Dimensions are searched for in the
  316. # -- resource and span attributes and are added to the metrics if present.
  317. dimensions: []
  318. histogram_buckets: [0.1, 0.2, 0.4, 0.8, 1.6, 3.2, 6.4, 12.8]
  319. max_items: 10000
  320. wait: 10s
  321. workers: 10
  322. span_metrics:
  323. # -- Additional dimensions to add to the metrics along with the default dimensions.
  324. # -- Dimensions are searched for in the resource and span attributes and are added to the metrics if present.
  325. dimensions: []
  326. histogram_buckets: [0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512, 1.02, 2.05, 4.10]
  327. storage:
  328. path: /var/tempo/wal
  329. wal:
  330. remote_write_flush_deadline: 1m
  331. # -- A list of remote write endpoints.
  332. # -- https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write
  333. remote_write:
  334. - name: prometheus
  335. url: "http://prometheus-server.observe.svc.cluster.local:80/api/v1/write"
  336. metrics_ingestion_time_range_slack: 30s
  337. service:
  338. # -- Annotations for Metrics Generator service
  339. annotations: {}
  340. # -- Adds the appProtocol field to the metricsGenerator service. This allows metricsGenerator to work with istio protocol selection.
  341. appProtocol:
  342. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  343. grpc: null
  344. # Configuration for the distributor
  345. distributor:
  346. # -- Number of replicas for the distributor
  347. replicas: 1
  348. # -- hostAliases to add
  349. hostAliases: []
  350. # - ip: 1.2.3.4
  351. # hostnames:
  352. # - domain.tld
  353. autoscaling:
  354. # -- Enable autoscaling for the distributor
  355. enabled: false
  356. # -- Minimum autoscaling replicas for the distributor
  357. minReplicas: 1
  358. # -- Maximum autoscaling replicas for the distributor
  359. maxReplicas: 3
  360. # -- Autoscaling behavior configuration for the distributor
  361. behavior: {}
  362. # -- Target CPU utilisation percentage for the distributor
  363. targetCPUUtilizationPercentage: 60
  364. # -- Target memory utilisation percentage for the distributor
  365. targetMemoryUtilizationPercentage:
  366. image:
  367. # -- The Docker registry for the ingester image. Overrides `tempo.image.registry`
  368. registry: null
  369. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  370. pullSecrets: []
  371. # -- Docker image repository for the ingester image. Overrides `tempo.image.repository`
  372. repository: null
  373. # -- Docker image tag for the ingester image. Overrides `tempo.image.tag`
  374. tag: null
  375. service:
  376. # -- Annotations for distributor service
  377. annotations: {}
  378. # -- Labels for distributor service
  379. labels: {}
  380. # -- Type of service for the distributor
  381. type: ClusterIP
  382. # -- If type is LoadBalancer you can assign the IP to the LoadBalancer
  383. loadBalancerIP: ''
  384. # -- If type is LoadBalancer limit incoming traffic from IPs.
  385. loadBalancerSourceRanges: []
  386. serviceDiscovery:
  387. # -- Annotations for distributorDiscovery service
  388. annotations: {}
  389. # -- Labels for distributorDiscovery service
  390. labels: {}
  391. # -- The name of the PriorityClass for distributor pods
  392. priorityClassName: null
  393. # -- Labels for distributor pods
  394. podLabels: {}
  395. # -- Annotations for distributor pods
  396. podAnnotations: {}
  397. # -- Additional CLI args for the distributor
  398. extraArgs: []
  399. # -- Environment variables to add to the distributor pods
  400. extraEnv: []
  401. # -- Environment variables from secrets or configmaps to add to the distributor pods
  402. extraEnvFrom: []
  403. # -- Resource requests and limits for the distributor
  404. resources: {}
  405. # -- Grace period to allow the distributor to shutdown before it is killed
  406. terminationGracePeriodSeconds: 30
  407. # -- topologySpread for distributor pods. Passed through `tpl` and, thus, to be configured as string
  408. # @default -- Defaults to allow skew no more then 1 node per AZ
  409. topologySpreadConstraints: |
  410. - maxSkew: 1
  411. topologyKey: topology.kubernetes.io/zone
  412. whenUnsatisfiable: ScheduleAnyway
  413. labelSelector:
  414. matchLabels:
  415. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "distributor") | nindent 6 }}
  416. # -- Affinity for distributor pods. Passed through `tpl` and, thus, to be configured as string
  417. # @default -- Hard node and soft zone anti-affinity
  418. affinity: |
  419. podAntiAffinity:
  420. requiredDuringSchedulingIgnoredDuringExecution:
  421. - labelSelector:
  422. matchLabels:
  423. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "distributor") | nindent 10 }}
  424. topologyKey: kubernetes.io/hostname
  425. preferredDuringSchedulingIgnoredDuringExecution:
  426. - weight: 100
  427. podAffinityTerm:
  428. labelSelector:
  429. matchLabels:
  430. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "distributor") | nindent 12 }}
  431. topologyKey: topology.kubernetes.io/zone
  432. # -- Node selector for distributor pods
  433. nodeSelector: {}
  434. # -- Tolerations for distributor pods
  435. tolerations: []
  436. # -- Extra volumes for distributor pods
  437. extraVolumeMounts: []
  438. # -- Extra volumes for distributor deployment
  439. extraVolumes: []
  440. config:
  441. # -- Enable to log every received trace id to help debug ingestion
  442. # -- WARNING: Deprecated. Use log_received_spans instead.
  443. log_received_traces: null
  444. # -- Enable to log every received span to help debug ingestion or calculate span error distributions using the logs
  445. log_received_spans:
  446. enabled: false
  447. include_all_attributes: false
  448. filter_by_status_error: false
  449. # -- Disables write extension with inactive ingesters
  450. extend_writes: null
  451. # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
  452. appProtocol:
  453. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  454. grpc: null
  455. # Configuration for the compactor
  456. compactor:
  457. # -- Number of replicas for the compactor
  458. replicas: 1
  459. # -- hostAliases to add
  460. hostAliases: []
  461. # - ip: 1.2.3.4
  462. # hostnames:
  463. # - domain.tld
  464. image:
  465. # -- The Docker registry for the compactor image. Overrides `tempo.image.registry`
  466. registry: null
  467. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  468. pullSecrets: []
  469. # -- Docker image repository for the compactor image. Overrides `tempo.image.repository`
  470. repository: null
  471. # -- Docker image tag for the compactor image. Overrides `tempo.image.tag`
  472. tag: null
  473. # -- The name of the PriorityClass for compactor pods
  474. priorityClassName: null
  475. # -- Labels for compactor pods
  476. podLabels: {}
  477. # -- Annotations for compactor pods
  478. podAnnotations: {}
  479. # -- Additional CLI args for the compactor
  480. extraArgs: []
  481. # -- Environment variables to add to the compactor pods
  482. extraEnv: []
  483. # -- Environment variables from secrets or configmaps to add to the compactor pods
  484. extraEnvFrom: []
  485. # -- Resource requests and limits for the compactor
  486. resources: {}
  487. # -- Grace period to allow the compactor to shutdown before it is killed
  488. terminationGracePeriodSeconds: 30
  489. # -- Node selector for compactor pods
  490. nodeSelector: {}
  491. # -- Tolerations for compactor pods
  492. tolerations: []
  493. # -- Extra volumes for compactor pods
  494. extraVolumeMounts: []
  495. # -- Extra volumes for compactor deployment
  496. extraVolumes: []
  497. config:
  498. compaction:
  499. # -- Duration to keep blocks
  500. block_retention: 48h
  501. # Duration to keep blocks that have been compacted elsewhere
  502. compacted_block_retention: 1h
  503. # -- Blocks in this time window will be compacted together
  504. compaction_window: 1h
  505. # -- Amount of data to buffer from input blocks
  506. v2_in_buffer_bytes: 5242880
  507. # -- Flush data to backend when buffer is this large
  508. v2_out_buffer_bytes: 20971520
  509. # -- Maximum number of traces in a compacted block. WARNING: Deprecated. Use max_block_bytes instead.
  510. max_compaction_objects: 6000000
  511. # -- Maximum size of a compacted block in bytes
  512. max_block_bytes: 107374182400
  513. # -- Number of tenants to process in parallel during retention
  514. retention_concurrency: 10
  515. # -- Number of traces to buffer in memory during compaction
  516. v2_prefetch_traces_count: 1000
  517. # -- The maximum amount of time to spend compacting a single tenant before moving to the next
  518. max_time_per_tenant: 5m
  519. # -- The time between compaction cycles
  520. compaction_cycle: 30s
  521. service:
  522. # -- Annotations for compactor service
  523. annotations: {}
  524. dnsConfigOverides:
  525. enabled: false
  526. dnsConfig:
  527. options:
  528. - name: ndots
  529. value: "3" # This is required for Azure Kubernetes Service (AKS) https://github.com/grafana/tempo/issues/1462
  530. # Configuration for the querier
  531. querier:
  532. # -- Number of replicas for the querier
  533. replicas: 1
  534. # -- hostAliases to add
  535. hostAliases: []
  536. # - ip: 1.2.3.4
  537. # hostnames:
  538. # - domain.tld
  539. autoscaling:
  540. # -- Enable autoscaling for the querier
  541. enabled: false
  542. # -- Minimum autoscaling replicas for the querier
  543. minReplicas: 1
  544. # -- Maximum autoscaling replicas for the querier
  545. maxReplicas: 3
  546. # -- Autoscaling behavior configuration for the querier
  547. behavior: {}
  548. # -- Target CPU utilisation percentage for the querier
  549. targetCPUUtilizationPercentage: 60
  550. # -- Target memory utilisation percentage for the querier
  551. targetMemoryUtilizationPercentage:
  552. image:
  553. # -- The Docker registry for the querier image. Overrides `tempo.image.registry`
  554. registry: null
  555. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  556. pullSecrets: []
  557. # -- Docker image repository for the querier image. Overrides `tempo.image.repository`
  558. repository: null
  559. # -- Docker image tag for the querier image. Overrides `tempo.image.tag`
  560. tag: null
  561. # -- The name of the PriorityClass for querier pods
  562. priorityClassName: null
  563. # -- Labels for querier pods
  564. podLabels: {}
  565. # -- Annotations for querier pods
  566. podAnnotations: {}
  567. # -- Additional CLI args for the querier
  568. extraArgs: []
  569. # -- Environment variables to add to the querier pods
  570. extraEnv: []
  571. # -- Environment variables from secrets or configmaps to add to the querier pods
  572. extraEnvFrom: []
  573. # -- Resource requests and limits for the querier
  574. resources: {}
  575. # -- Grace period to allow the querier to shutdown before it is killed
  576. terminationGracePeriodSeconds: 30
  577. # -- topologySpread for querier pods. Passed through `tpl` and, thus, to be configured as string
  578. # @default -- Defaults to allow skew no more then 1 node per AZ
  579. topologySpreadConstraints: |
  580. - maxSkew: 1
  581. topologyKey: topology.kubernetes.io/zone
  582. whenUnsatisfiable: ScheduleAnyway
  583. labelSelector:
  584. matchLabels:
  585. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "querier") | nindent 6 }}
  586. # -- Affinity for querier pods. Passed through `tpl` and, thus, to be configured as string
  587. # @default -- Hard node and soft zone anti-affinity
  588. affinity: |
  589. podAntiAffinity:
  590. requiredDuringSchedulingIgnoredDuringExecution:
  591. - labelSelector:
  592. matchLabels:
  593. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "querier" "memberlist" true) | nindent 10 }}
  594. topologyKey: kubernetes.io/hostname
  595. preferredDuringSchedulingIgnoredDuringExecution:
  596. - weight: 100
  597. podAffinityTerm:
  598. labelSelector:
  599. matchLabels:
  600. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "querier" "memberlist" true) | nindent 12 }}
  601. topologyKey: topology.kubernetes.io/zone
  602. # -- Node selector for querier pods
  603. nodeSelector: {}
  604. # -- Tolerations for querier pods
  605. tolerations: []
  606. # -- Extra volumes for querier pods
  607. extraVolumeMounts: []
  608. # -- Extra volumes for querier deployment
  609. extraVolumes: []
  610. config:
  611. frontend_worker:
  612. # -- grpc client configuration
  613. grpc_client_config: {}
  614. trace_by_id:
  615. # -- Timeout for trace lookup requests
  616. query_timeout: 10s
  617. search:
  618. # -- Timeout for search requests
  619. query_timeout: 30s
  620. # -- If search_external_endpoints is set then the querier will primarily act as a proxy for whatever serverless backend you have configured. This setting allows the operator to have the querier prefer itself for a configurable number of subqueries.
  621. prefer_self: 10
  622. # -- If set to a non-zero value a second request will be issued at the provided duration. Recommended to be set to p99 of external search requests to reduce long tail latency.
  623. external_hedge_requests_at: 8s
  624. # -- The maximum number of requests to execute when hedging. Requires hedge_requests_at to be set.
  625. external_hedge_requests_up_to: 2
  626. # -- A list of external endpoints that the querier will use to offload backend search requests
  627. external_endpoints: []
  628. # -- The serverless backend to use. The default value of "" omits
  629. # -- credentials when querying the external backend.
  630. external_backend: ""
  631. # -- Google Cloud Run configuration. Will be used only if the value of
  632. # -- external_backend is "google_cloud_run".
  633. google_cloud_run: {}
  634. # -- This value controls the overall number of simultaneous subqueries that the querier will service at once. It does not distinguish between the types of queries.
  635. max_concurrent_queries: 20
  636. service:
  637. # -- Annotations for querier service
  638. annotations: {}
  639. # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
  640. appProtocol:
  641. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  642. grpc: null
  643. # Configuration for the query-frontend
  644. queryFrontend:
  645. query:
  646. # -- Required for grafana version <7.5 for compatibility with jaeger-ui. Doesn't work on ARM arch
  647. enabled: false
  648. image:
  649. # -- The Docker registry for the query-frontend image. Overrides `tempo.image.registry`
  650. registry: null
  651. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  652. pullSecrets: []
  653. # -- Docker image repository for the query-frontend image. Overrides `tempo.image.repository`
  654. repository: grafana/tempo-query
  655. # -- Docker image tag for the query-frontend image. Overrides `tempo.image.tag`
  656. tag: null
  657. # -- Resource requests and limits for the query
  658. resources: {}
  659. # -- Additional CLI args for tempo-query pods
  660. extraArgs: []
  661. # -- Environment variables to add to the tempo-query pods
  662. extraEnv: []
  663. # -- Environment variables from secrets or configmaps to add to the tempo-query pods
  664. extraEnvFrom: []
  665. # -- Extra volumes for tempo-query pods
  666. extraVolumeMounts: []
  667. # -- Extra volumes for tempo-query deployment
  668. extraVolumes: []
  669. config: |
  670. backend: 127.0.0.1:3100
  671. # -- Number of replicas for the query-frontend
  672. replicas: 1
  673. # -- hostAliases to add
  674. hostAliases: []
  675. # - ip: 1.2.3.4
  676. # hostnames:
  677. # - domain.tld
  678. config:
  679. # -- Number of times to retry a request sent to a querier
  680. max_retries: 2
  681. search:
  682. # -- The number of concurrent jobs to execute when searching the backend
  683. concurrent_jobs: 1000
  684. # -- The target number of bytes for each job to handle when performing a backend search
  685. target_bytes_per_job: 104857600
  686. # -- Trace by ID lookup configuration
  687. trace_by_id:
  688. # -- The number of shards to split a trace by id query into.
  689. query_shards: 50
  690. # -- If set to a non-zero value, a second request will be issued at the provided duration. Recommended to be set to p99 of search requests to reduce long-tail latency.
  691. hedge_requests_at: 2s
  692. # -- The maximum number of requests to execute when hedging. Requires hedge_requests_at to be set. Must be greater than 0.
  693. hedge_requests_up_to: 2
  694. autoscaling:
  695. # -- Enable autoscaling for the query-frontend
  696. enabled: false
  697. # -- Minimum autoscaling replicas for the query-frontend
  698. minReplicas: 1
  699. # -- Maximum autoscaling replicas for the query-frontend
  700. maxReplicas: 3
  701. # -- Autoscaling behavior configuration for the query-frontend
  702. behavior: {}
  703. # -- Target CPU utilisation percentage for the query-frontend
  704. targetCPUUtilizationPercentage: 60
  705. # -- Target memory utilisation percentage for the query-frontend
  706. targetMemoryUtilizationPercentage:
  707. image:
  708. # -- The Docker registry for the query-frontend image. Overrides `tempo.image.registry`
  709. registry: null
  710. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  711. pullSecrets: []
  712. # -- Docker image repository for the query-frontend image. Overrides `tempo.image.repository`
  713. repository: null
  714. # -- Docker image tag for the query-frontend image. Overrides `tempo.image.tag`
  715. tag: null
  716. service:
  717. # -- Port of the query-frontend service
  718. port: 16686
  719. # -- Annotations for queryFrontend service
  720. annotations: {}
  721. # -- Labels for queryFrontend service
  722. labels: {}
  723. # -- Type of service for the queryFrontend
  724. type: ClusterIP
  725. # -- If type is LoadBalancer you can assign the IP to the LoadBalancer
  726. loadBalancerIP: ""
  727. # -- If type is LoadBalancer limit incoming traffic from IPs.
  728. loadBalancerSourceRanges: []
  729. serviceDiscovery:
  730. # -- Annotations for queryFrontendDiscovery service
  731. annotations: {}
  732. # -- Labels for queryFrontendDiscovery service
  733. labels: {}
  734. ingress:
  735. # -- Specifies whether an ingress for the Jaeger should be created
  736. enabled: false
  737. # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
  738. # ingressClassName: nginx
  739. # -- Annotations for the Jaeger ingress
  740. annotations: {}
  741. # -- Hosts configuration for the Jaeger ingress
  742. hosts:
  743. - host: query.tempo.example.com
  744. paths:
  745. - path: /
  746. # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
  747. # pathType: Prefix
  748. # -- TLS configuration for the Jaeger ingress
  749. tls:
  750. - secretName: tempo-query-tls
  751. hosts:
  752. - query.tempo.example.com
  753. # -- The name of the PriorityClass for query-frontend pods
  754. priorityClassName: null
  755. # -- Labels for queryFrontend pods
  756. podLabels: {}
  757. # -- Annotations for query-frontend pods
  758. podAnnotations: {}
  759. # -- Additional CLI args for the query-frontend
  760. extraArgs: []
  761. # -- Environment variables to add to the query-frontend pods
  762. extraEnv: []
  763. # -- Environment variables from secrets or configmaps to add to the query-frontend pods
  764. extraEnvFrom: []
  765. # -- Resource requests and limits for the query-frontend
  766. resources: {}
  767. # -- Grace period to allow the query-frontend to shutdown before it is killed
  768. terminationGracePeriodSeconds: 30
  769. # -- topologySpread for query-frontend pods. Passed through `tpl` and, thus, to be configured as string
  770. # @default -- Defaults to allow skew no more then 1 node per AZ
  771. topologySpreadConstraints: |
  772. - maxSkew: 1
  773. topologyKey: topology.kubernetes.io/zone
  774. whenUnsatisfiable: ScheduleAnyway
  775. labelSelector:
  776. matchLabels:
  777. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "query-frontend") | nindent 6 }}
  778. # -- Affinity for query-frontend pods. Passed through `tpl` and, thus, to be configured as string
  779. # @default -- Hard node and soft zone anti-affinity
  780. affinity: |
  781. podAntiAffinity:
  782. requiredDuringSchedulingIgnoredDuringExecution:
  783. - labelSelector:
  784. matchLabels:
  785. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "query-frontend") | nindent 10 }}
  786. topologyKey: kubernetes.io/hostname
  787. preferredDuringSchedulingIgnoredDuringExecution:
  788. - weight: 100
  789. podAffinityTerm:
  790. labelSelector:
  791. matchLabels:
  792. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "query-frontend") | nindent 12 }}
  793. topologyKey: topology.kubernetes.io/zone
  794. # -- Node selector for query-frontend pods
  795. nodeSelector: {}
  796. # -- Tolerations for query-frontend pods
  797. tolerations: []
  798. # -- Extra volumes for query-frontend pods
  799. extraVolumeMounts: []
  800. # -- Extra volumes for query-frontend deployment
  801. extraVolumes: []
  802. # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
  803. appProtocol:
  804. # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
  805. grpc: null
  806. # Configuration for the federation-frontend
  807. # Can only be enabled if enterprise.enabled is true - requires license.
  808. enterpriseFederationFrontend:
  809. # -- Specifies whether a federation-frontend should be deployed
  810. enabled: false
  811. # -- Number of replicas for the federation-frontend
  812. replicas: 1
  813. # -- hostAliases to add
  814. hostAliases: []
  815. # - ip: 1.2.3.4
  816. # hostnames:
  817. # - domain.tld
  818. # proxy_targets:
  819. # - name: own-data-center
  820. # url: http://get/tempo
  821. # - name: grafana-cloud
  822. # url: https://tempo-us-central1.grafana.net/tempo
  823. # basic_auth:
  824. # username: <instance-id>
  825. # password: <token>
  826. proxy_targets: []
  827. autoscaling:
  828. # -- Enable autoscaling for the federation-frontend
  829. enabled: false
  830. # -- Minimum autoscaling replicas for the federation-frontend
  831. minReplicas: 1
  832. # -- Maximum autoscaling replicas for the federation-frontend
  833. maxReplicas: 3
  834. # -- Target CPU utilisation percentage for the federation-frontend
  835. targetCPUUtilizationPercentage: 60
  836. # -- Target memory utilisation percentage for the federation-frontend
  837. targetMemoryUtilizationPercentage:
  838. image:
  839. # -- The Docker registry for the federation-frontend image. Overrides `tempo.image.registry`
  840. registry: null
  841. # -- Optional list of imagePullSecrets. Overrides `tempo.image.pullSecrets`
  842. pullSecrets: []
  843. # -- Docker image repository for the federation-frontend image. Overrides `tempo.image.repository`
  844. repository: null
  845. # -- Docker image tag for the federation-frontend image. Overrides `tempo.image.tag`
  846. tag: null
  847. service:
  848. # -- Port of the federation-frontend service
  849. port: 3100
  850. # -- Annotations for enterpriseFederationFrontend service
  851. annotations: {}
  852. # -- Type of service for the enterpriseFederationFrontend
  853. type: ClusterIP
  854. # -- If type is LoadBalancer you can assign the IP to the LoadBalancer
  855. loadBalancerIP: ""
  856. # -- If type is LoadBalancer limit incoming traffic from IPs.
  857. loadBalancerSourceRanges: []
  858. # -- The name of the PriorityClass for federation-frontend pods
  859. priorityClassName: null
  860. # -- Labels for enterpriseFederationFrontend pods
  861. podLabels: {}
  862. # -- Annotations for federation-frontend pods
  863. podAnnotations: {}
  864. # -- Additional CLI args for the federation-frontend
  865. extraArgs: []
  866. # -- Environment variables to add to the federation-frontend pods
  867. extraEnv: []
  868. # -- Environment variables from secrets or configmaps to add to the federation-frontend pods
  869. extraEnvFrom: []
  870. # -- Resource requests and limits for the federation-frontend
  871. resources: {}
  872. # -- Grace period to allow the federation-frontend to shutdown before it is killed
  873. terminationGracePeriodSeconds: 30
  874. # -- topologySpread for federation-frontend pods. Passed through `tpl` and, thus, to be configured as string
  875. # @default -- Defaults to allow skew no more then 1 node per AZ
  876. topologySpreadConstraints: |
  877. - maxSkew: 1
  878. topologyKey: failure-domain.beta.kubernetes.io/zone
  879. whenUnsatisfiable: ScheduleAnyway
  880. labelSelector:
  881. matchLabels:
  882. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "federation-frontend") | nindent 6 }}
  883. # -- Affinity for federation-frontend pods. Passed through `tpl` and, thus, to be configured as string
  884. # @default -- Hard node and soft zone anti-affinity
  885. affinity: |
  886. podAntiAffinity:
  887. requiredDuringSchedulingIgnoredDuringExecution:
  888. - labelSelector:
  889. matchLabels:
  890. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "federation-frontend") | nindent 10 }}
  891. topologyKey: kubernetes.io/hostname
  892. preferredDuringSchedulingIgnoredDuringExecution:
  893. - weight: 100
  894. podAffinityTerm:
  895. labelSelector:
  896. matchLabels:
  897. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "federation-frontend") | nindent 12 }}
  898. topologyKey: failure-domain.beta.kubernetes.io/zone
  899. # -- Node selector for federation-frontend pods
  900. nodeSelector: {}
  901. # -- Tolerations for federation-frontend pods
  902. tolerations: []
  903. # -- Extra volumes for federation-frontend pods
  904. extraVolumeMounts: []
  905. # -- Extra volumes for federation-frontend deployment
  906. extraVolumes: []
  907. multitenancyEnabled: false
  908. traces:
  909. jaeger:
  910. grpc:
  911. # -- Enable Tempo to ingest Jaeger GRPC traces
  912. enabled: false
  913. # -- Jaeger GRPC receiver config
  914. receiverConfig: {}
  915. thriftBinary:
  916. # -- Enable Tempo to ingest Jaeger Thrift Binary traces
  917. enabled: false
  918. # -- Jaeger Thrift Binary receiver config
  919. receiverConfig: {}
  920. thriftCompact:
  921. # -- Enable Tempo to ingest Jaeger Thrift Compact traces
  922. enabled: false
  923. # -- Jaeger Thrift Compact receiver config
  924. receiverConfig: {}
  925. thriftHttp:
  926. # -- Enable Tempo to ingest Jaeger Thrift HTTP traces
  927. enabled: false
  928. # -- Jaeger Thrift HTTP receiver config
  929. receiverConfig: {}
  930. zipkin:
  931. # -- Enable Tempo to ingest Zipkin traces
  932. enabled: false
  933. # -- Zipkin receiver config
  934. receiverConfig: {}
  935. otlp:
  936. http:
  937. # -- Enable Tempo to ingest Open Telemetry HTTP traces
  938. enabled: true
  939. # -- HTTP receiver advanced config
  940. receiverConfig: {}
  941. grpc:
  942. # -- Enable Tempo to ingest Open Telemetry GRPC traces
  943. enabled: true
  944. # -- GRPC receiver advanced config
  945. receiverConfig: {}
  946. opencensus:
  947. # -- Enable Tempo to ingest Open Census traces
  948. enabled: false
  949. # -- Open Census receiver config
  950. receiverConfig: {}
  951. # -- Enable Tempo to ingest traces from Kafka. Reference: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/kafkareceiver
  952. kafka: {}
  953. # -- Memberlist configuration. Please refer to https://grafana.com/docs/tempo/latest/configuration/#memberlist
  954. memberlist:
  955. node_name: ""
  956. randomize_node_name: true
  957. stream_timeout: "10s"
  958. retransmit_factor: 2
  959. pull_push_interval: "30s"
  960. gossip_interval: "1s"
  961. gossip_nodes: 2
  962. gossip_to_dead_nodes_time: "30s"
  963. min_join_backoff: "1s"
  964. max_join_backoff: "1m"
  965. max_join_retries: 10
  966. abort_if_cluster_join_fails: false
  967. rejoin_interval: "0s"
  968. left_ingesters_timeout: "5m"
  969. leave_timeout: "5s"
  970. bind_addr: []
  971. bind_port: 7946
  972. packet_dial_timeout: "5s"
  973. packet_write_timeout: "5s"
  974. # -- Config file contents for Tempo distributed. Passed through the `tpl` function to allow templating
  975. # @default -- See values.yaml
  976. config: |
  977. multitenancy_enabled: {{ .Values.multitenancyEnabled }}
  978. usage_report:
  979. reporting_enabled: {{ .Values.reportingEnabled }}
  980. {{- if .Values.enterprise.enabled }}
  981. license:
  982. path: "/license/license.jwt"
  983. admin_api:
  984. leader_election:
  985. enabled: true
  986. ring:
  987. kvstore:
  988. store: "memberlist"
  989. auth:
  990. type: enterprise
  991. http_api_prefix: {{get .Values.tempo.structuredConfig "http_api_prefix"}}
  992. admin_client:
  993. storage:
  994. backend: {{.Values.storage.admin.backend}}
  995. {{- if eq .Values.storage.admin.backend "s3"}}
  996. s3:
  997. {{- toYaml .Values.storage.admin.s3 | nindent 6}}
  998. {{- end}}
  999. {{- if eq .Values.storage.admin.backend "gcs"}}
  1000. gcs:
  1001. {{- toYaml .Values.storage.admin.gcs | nindent 6}}
  1002. {{- end}}
  1003. {{- if eq .Values.storage.admin.backend "azure"}}
  1004. azure:
  1005. {{- toYaml .Values.storage.admin.azure | nindent 6}}
  1006. {{- end}}
  1007. {{- if eq .Values.storage.admin.backend "swift"}}
  1008. swift:
  1009. {{- toYaml .Values.storage.admin.swift | nindent 6}}
  1010. {{- end}}
  1011. {{- if eq .Values.storage.admin.backend "filesystem"}}
  1012. filesystem:
  1013. {{- toYaml .Values.storage.admin.filesystem | nindent 6}}
  1014. {{- end}}
  1015. {{- end }}
  1016. {{- if and .Values.enterprise.enabled .Values.enterpriseGateway.useDefaultProxyURLs }}
  1017. gateway:
  1018. proxy:
  1019. admin_api:
  1020. url: http://{{ template "tempo.fullname" . }}-admin-api.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1021. compactor:
  1022. url: http://{{ template "tempo.fullname" . }}-compactor.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1023. default:
  1024. url: http://{{ template "tempo.fullname" . }}-admin-api.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1025. distributor:
  1026. url: http://{{ template "tempo.fullname" . }}-distributor.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1027. otlp/grpc:
  1028. url: h2c://{{ template "tempo.fullname" . }}-distributor.{{ .Release.Namespace }}.svc:4317
  1029. otlp/http:
  1030. url: http://{{ template "tempo.fullname" . }}-distributor.{{ .Release.Namespace }}.svc:4318
  1031. ingester:
  1032. url: http://{{ template "tempo.fullname" . }}-ingester.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1033. querier:
  1034. url: http://{{ template "tempo.fullname" . }}-querier.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}
  1035. query_frontend:
  1036. url: http://{{ template "tempo.fullname" . }}-query-frontend.{{ .Release.Namespace }}.svc:{{ include "tempo.serverHttpListenPort" . }}{{get .Values.tempo.structuredConfig "http_api_prefix"}}
  1037. {{else}}
  1038. {{- if and .Values.enterprise.enabled .Values.enterpriseGateway.proxy }}
  1039. gateway:
  1040. proxy: {{- toYaml .Values.enterpriseGateway.proxy | nindent 6 }}
  1041. {{- end }}
  1042. {{- end }}
  1043. compactor:
  1044. compaction:
  1045. block_retention: {{ .Values.compactor.config.compaction.block_retention }}
  1046. compacted_block_retention: {{ .Values.compactor.config.compaction.compacted_block_retention }}
  1047. compaction_window: {{ .Values.compactor.config.compaction.compaction_window }}
  1048. v2_in_buffer_bytes: {{ .Values.compactor.config.compaction.v2_in_buffer_bytes }}
  1049. v2_out_buffer_bytes: {{ .Values.compactor.config.compaction.v2_out_buffer_bytes }}
  1050. max_compaction_objects: {{ .Values.compactor.config.compaction.max_compaction_objects }}
  1051. max_block_bytes: {{ .Values.compactor.config.compaction.max_block_bytes }}
  1052. retention_concurrency: {{ .Values.compactor.config.compaction.retention_concurrency }}
  1053. v2_prefetch_traces_count: {{ .Values.compactor.config.compaction.v2_prefetch_traces_count }}
  1054. max_time_per_tenant: {{ .Values.compactor.config.compaction.max_time_per_tenant }}
  1055. compaction_cycle: {{ .Values.compactor.config.compaction.compaction_cycle }}
  1056. ring:
  1057. kvstore:
  1058. store: memberlist
  1059. {{- if and .Values.enterprise.enabled .Values.enterpriseFederationFrontend.enabled }}
  1060. federation:
  1061. proxy_targets:
  1062. {{- toYaml .Values.enterpriseFederationFrontend.proxy_targets | nindent 6 }}
  1063. {{- end }}
  1064. {{- if .Values.metricsGenerator.enabled }}
  1065. metrics_generator:
  1066. ring:
  1067. kvstore:
  1068. store: memberlist
  1069. processor:
  1070. {{- toYaml .Values.metricsGenerator.config.processor | nindent 6 }}
  1071. storage:
  1072. {{- toYaml .Values.metricsGenerator.config.storage | nindent 6 }}
  1073. registry:
  1074. {{- toYaml .Values.metricsGenerator.config.registry | nindent 6 }}
  1075. metrics_ingestion_time_range_slack: {{ .Values.metricsGenerator.config.metrics_ingestion_time_range_slack }}
  1076. {{- end }}
  1077. distributor:
  1078. ring:
  1079. kvstore:
  1080. store: memberlist
  1081. receivers:
  1082. {{- if or (.Values.traces.jaeger.thriftCompact.enabled) (.Values.traces.jaeger.thriftBinary.enabled) (.Values.traces.jaeger.thriftHttp.enabled) (.Values.traces.jaeger.grpc.enabled) }}
  1083. jaeger:
  1084. protocols:
  1085. {{- if .Values.traces.jaeger.thriftCompact.enabled }}
  1086. thrift_compact:
  1087. {{- $mergedJaegerThriftCompactConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:6831") .Values.traces.jaeger.thriftCompact.receiverConfig }}
  1088. {{- toYaml $mergedJaegerThriftCompactConfig | nindent 10 }}
  1089. {{- end }}
  1090. {{- if .Values.traces.jaeger.thriftBinary.enabled }}
  1091. thrift_binary:
  1092. {{- $mergedJaegerThriftBinaryConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:6832") .Values.traces.jaeger.thriftBinary.receiverConfig }}
  1093. {{- toYaml $mergedJaegerThriftBinaryConfig | nindent 10 }}
  1094. {{- end }}
  1095. {{- if .Values.traces.jaeger.thriftHttp.enabled }}
  1096. thrift_http:
  1097. {{- $mergedJaegerThriftHttpConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:14268") .Values.traces.jaeger.thriftHttp.receiverConfig }}
  1098. {{- toYaml $mergedJaegerThriftHttpConfig | nindent 10 }}
  1099. {{- end }}
  1100. {{- if .Values.traces.jaeger.grpc.enabled }}
  1101. grpc:
  1102. {{- $mergedJaegerGrpcConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:14250") .Values.traces.jaeger.grpc.receiverConfig }}
  1103. {{- toYaml $mergedJaegerGrpcConfig | nindent 10 }}
  1104. {{- end }}
  1105. {{- end }}
  1106. {{- if .Values.traces.zipkin.enabled }}
  1107. zipkin:
  1108. {{- $mergedZipkinReceiverConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:9411") .Values.traces.zipkin.receiverConfig }}
  1109. {{- toYaml $mergedZipkinReceiverConfig | nindent 6 }}
  1110. {{- end }}
  1111. {{- if or (.Values.traces.otlp.http.enabled) (.Values.traces.otlp.grpc.enabled) }}
  1112. otlp:
  1113. protocols:
  1114. {{- if .Values.traces.otlp.http.enabled }}
  1115. http:
  1116. {{- $mergedOtlpHttpReceiverConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:4318") .Values.traces.otlp.http.receiverConfig }}
  1117. {{- toYaml $mergedOtlpHttpReceiverConfig | nindent 10 }}
  1118. {{- end }}
  1119. {{- if .Values.traces.otlp.grpc.enabled }}
  1120. grpc:
  1121. {{- $mergedOtlpGrpcReceiverConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:4317") .Values.traces.otlp.grpc.receiverConfig }}
  1122. {{- toYaml $mergedOtlpGrpcReceiverConfig | nindent 10 }}
  1123. {{- end }}
  1124. {{- end }}
  1125. {{- if .Values.traces.opencensus.enabled }}
  1126. opencensus:
  1127. {{- $mergedOpencensusReceiverConfig := mustMergeOverwrite (dict "endpoint" "0.0.0.0:55678") .Values.traces.opencensus.receiverConfig }}
  1128. {{- toYaml $mergedOpencensusReceiverConfig | nindent 6 }}
  1129. {{- end }}
  1130. {{- if .Values.traces.kafka }}
  1131. kafka:
  1132. {{- toYaml .Values.traces.kafka | nindent 6 }}
  1133. {{- end }}
  1134. {{- if or .Values.distributor.config.log_received_traces .Values.distributor.config.log_received_spans.enabled }}
  1135. log_received_spans:
  1136. enabled: {{ or .Values.distributor.config.log_received_traces .Values.distributor.config.log_received_spans.enabled }}
  1137. include_all_attributes: {{ .Values.distributor.config.log_received_spans.include_all_attributes }}
  1138. filter_by_status_error: {{ .Values.distributor.config.log_received_spans.filter_by_status_error }}
  1139. {{- end }}
  1140. {{- if .Values.distributor.config.extend_writes }}
  1141. extend_writes: {{ .Values.distributor.config.extend_writes }}
  1142. {{- end }}
  1143. querier:
  1144. frontend_worker:
  1145. frontend_address: {{ include "tempo.resourceName" (dict "ctx" . "component" "query-frontend-discovery") }}:9095
  1146. {{- if .Values.querier.config.frontend_worker.grpc_client_config }}
  1147. grpc_client_config:
  1148. {{- toYaml .Values.querier.config.frontend_worker.grpc_client_config | nindent 6 }}
  1149. {{- end }}
  1150. trace_by_id:
  1151. query_timeout: {{ .Values.querier.config.trace_by_id.query_timeout }}
  1152. search:
  1153. external_endpoints: {{- toYaml .Values.querier.config.search.external_endpoints | nindent 6 }}
  1154. query_timeout: {{ .Values.querier.config.search.query_timeout }}
  1155. prefer_self: {{ .Values.querier.config.search.prefer_self }}
  1156. external_hedge_requests_at: {{ .Values.querier.config.search.external_hedge_requests_at }}
  1157. external_hedge_requests_up_to: {{ .Values.querier.config.search.external_hedge_requests_up_to }}
  1158. external_backend: {{ .Values.querier.config.search.external_backend }}
  1159. {{- if .Values.querier.config.search.google_cloud_run }}
  1160. google_cloud_run:
  1161. {{- toYaml .Values.querier.config.search.google_cloud_run | nindent 6 }}
  1162. {{- end }}
  1163. max_concurrent_queries: {{ .Values.querier.config.max_concurrent_queries }}
  1164. query_frontend:
  1165. max_retries: {{ .Values.queryFrontend.config.max_retries }}
  1166. search:
  1167. target_bytes_per_job: {{ .Values.queryFrontend.config.search.target_bytes_per_job }}
  1168. concurrent_jobs: {{ .Values.queryFrontend.config.search.concurrent_jobs }}
  1169. trace_by_id:
  1170. query_shards: {{ .Values.queryFrontend.config.trace_by_id.query_shards }}
  1171. hedge_requests_at: {{ .Values.queryFrontend.config.trace_by_id.hedge_requests_at }}
  1172. hedge_requests_up_to: {{ .Values.queryFrontend.config.trace_by_id.hedge_requests_up_to }}
  1173. ingester:
  1174. lifecycler:
  1175. ring:
  1176. replication_factor: {{ .Values.ingester.config.replication_factor }}
  1177. kvstore:
  1178. store: memberlist
  1179. tokens_file_path: /var/tempo/tokens.json
  1180. {{- if .Values.ingester.config.trace_idle_period }}
  1181. trace_idle_period: {{ .Values.ingester.config.trace_idle_period }}
  1182. {{- end }}
  1183. {{- if .Values.ingester.config.flush_check_period }}
  1184. flush_check_period: {{ .Values.ingester.config.flush_check_period }}
  1185. {{- end }}
  1186. {{- if .Values.ingester.config.max_block_bytes }}
  1187. max_block_bytes: {{ .Values.ingester.config.max_block_bytes }}
  1188. {{- end }}
  1189. {{- if .Values.ingester.config.max_block_duration }}
  1190. max_block_duration: {{ .Values.ingester.config.max_block_duration }}
  1191. {{- end }}
  1192. {{- if .Values.ingester.config.complete_block_timeout }}
  1193. complete_block_timeout: {{ .Values.ingester.config.complete_block_timeout }}
  1194. {{- end }}
  1195. {{- if .Values.ingester.config.flush_all_on_shutdown }}
  1196. flush_all_on_shutdown: {{ .Values.ingester.config.flush_all_on_shutdown }}
  1197. {{- end }}
  1198. memberlist:
  1199. {{- with .Values.memberlist }}
  1200. {{- toYaml . | nindent 2 }}
  1201. {{- end }}
  1202. join_members:
  1203. - dns+{{ include "tempo.fullname" . }}-gossip-ring:{{ .Values.memberlist.bind_port }}
  1204. overrides:
  1205. {{- toYaml .Values.global_overrides | nindent 2 }}
  1206. {{- if .Values.metricsGenerator.enabled }}
  1207. metrics_generator_processors:
  1208. {{- range .Values.global_overrides.metrics_generator_processors }}
  1209. - {{ . }}
  1210. {{- end }}
  1211. {{- end }}
  1212. server:
  1213. http_listen_port: {{ .Values.server.httpListenPort }}
  1214. log_level: {{ .Values.server.logLevel }}
  1215. log_format: {{ .Values.server.logFormat }}
  1216. grpc_server_max_recv_msg_size: {{ .Values.server.grpc_server_max_recv_msg_size }}
  1217. grpc_server_max_send_msg_size: {{ .Values.server.grpc_server_max_send_msg_size }}
  1218. http_server_read_timeout: {{ .Values.server.http_server_read_timeout }}
  1219. http_server_write_timeout: {{ .Values.server.http_server_write_timeout }}
  1220. storage:
  1221. trace:
  1222. {{- if .Values.storage.trace.block.version }}
  1223. block:
  1224. version: {{.Values.storage.trace.block.version}}
  1225. {{- end }}
  1226. pool:
  1227. max_workers: {{ .Values.storage.trace.pool.max_workers }}
  1228. queue_depth: {{ .Values.storage.trace.pool.queue_depth }}
  1229. backend: {{.Values.storage.trace.backend}}
  1230. {{- if eq .Values.storage.trace.backend "s3"}}
  1231. s3:
  1232. {{- toYaml .Values.storage.trace.s3 | nindent 6}}
  1233. {{- end }}
  1234. {{- if eq .Values.storage.trace.backend "gcs"}}
  1235. gcs:
  1236. {{- toYaml .Values.storage.trace.gcs | nindent 6}}
  1237. {{- end }}
  1238. {{- if eq .Values.storage.trace.backend "azure"}}
  1239. azure:
  1240. {{- toYaml .Values.storage.trace.azure | nindent 6}}
  1241. {{- end }}
  1242. blocklist_poll: 5m
  1243. local:
  1244. path: /var/tempo/traces
  1245. wal:
  1246. path: /var/tempo/wal
  1247. {{- if .Values.memcached.enabled }}
  1248. cache: memcached
  1249. memcached:
  1250. consistent_hash: true
  1251. host: {{ include "tempo.fullname" . }}-memcached
  1252. service: memcached-client
  1253. timeout: 500ms
  1254. {{- end }}
  1255. # Set Tempo server configuration
  1256. # Refers to https://grafana.com/docs/tempo/latest/configuration/#server
  1257. server:
  1258. # -- HTTP server listen host
  1259. httpListenPort: 3100
  1260. # -- Log level. Can be set to trace, debug, info (default), warn, error, fatal, panic
  1261. logLevel: info
  1262. # -- Log format. Can be set to logfmt (default) or json.
  1263. logFormat: logfmt
  1264. # -- Max gRPC message size that can be received
  1265. grpc_server_max_recv_msg_size: 4194304
  1266. # -- Max gRPC message size that can be sent
  1267. grpc_server_max_send_msg_size: 4194304
  1268. # -- Read timeout for HTTP server
  1269. http_server_read_timeout: 30s
  1270. # -- Write timeout for HTTP server
  1271. http_server_write_timeout: 30s
  1272. # To configure a different storage backend instead of local storage:
  1273. # storage:
  1274. # trace:
  1275. # backend: azure
  1276. # azure:
  1277. # container_name:
  1278. # storage_account_name:
  1279. # storage_account_key:
  1280. storage:
  1281. trace:
  1282. # Settings for the block storage backend and buckets.
  1283. block:
  1284. # -- The supported block versions are specified here https://grafana.com/docs/tempo/latest/configuration/parquet/
  1285. version: null
  1286. # -- The supported storage backends are gcs, s3 and azure, as specified in https://grafana.com/docs/tempo/latest/configuration/#storage
  1287. backend: s3
  1288. s3:
  1289. access_key: 'LHy8wIkIDB602aH34nGb'
  1290. secret_key: 'coxPe9FpiYP6QmWDRsTMiNx4S7JBidd9ThwjZm53'
  1291. bucket: 'tempo'
  1292. endpoint: 'minio.base.svc.cluster.local:9000'
  1293. insecure: true
  1294. # The worker pool is used primarily when finding traces by id, but is also used by other.
  1295. pool:
  1296. # -- Total number of workers pulling jobs from the queue
  1297. max_workers: 400
  1298. # -- Length of job queue. imporatant for querier as it queues a job for every block it has to search
  1299. queue_depth: 20000
  1300. # Settings for the Admin client storage backend and buckets. Only valid is enterprise.enabled is true.
  1301. admin:
  1302. # -- The supported storage backends are gcs, s3 and azure, as specified in https://grafana.com/docs/enterprise-traces/latest/config/reference/#admin_client_config
  1303. backend: filesystem
  1304. # Global overrides
  1305. global_overrides:
  1306. per_tenant_override_config: /runtime-config/overrides.yaml
  1307. # -- List of enabled metrics generator processors ([service-graphs, span-metrics])
  1308. metrics_generator_processors: []
  1309. # Per tenants overrides
  1310. overrides: |
  1311. overrides: {}
  1312. # memcached is for all of the Tempo pieces to coordinate with each other.
  1313. # you can use your self memcacherd by set enable: false and host + service
  1314. memcached:
  1315. # -- Specified whether the memcached cachce should be enabled
  1316. enabled: true
  1317. image:
  1318. # -- The Docker registry for the Memcached image. Overrides `global.image.registry`
  1319. registry: null
  1320. # -- Optional list of imagePullSecrets. Overrides `global.image.pullSecrets`
  1321. pullSecrets: []
  1322. # -- Memcached Docker image repository
  1323. repository: memcached
  1324. # -- Memcached Docker image tag
  1325. tag: 1.5.17-alpine
  1326. # -- Memcached Docker image pull policy
  1327. pullPolicy: IfNotPresent
  1328. host: memcached
  1329. # Number of replicas for memchached
  1330. replicas: 1
  1331. # -- Additional CLI args for memcached
  1332. extraArgs: []
  1333. # -- Environment variables to add to memcached pods
  1334. extraEnv: []
  1335. # -- Environment variables from secrets or configmaps to add to memcached pods
  1336. extraEnvFrom: []
  1337. # -- Labels for memcached pods
  1338. podLabels: {}
  1339. # -- Annotations for memcached pods
  1340. podAnnotations: {}
  1341. # -- Resource requests and limits for memcached
  1342. resources: {}
  1343. # -- topologySpread for memcached pods. Passed through `tpl` and, thus, to be configured as string
  1344. # @default -- Defaults to allow skew no more then 1 node per AZ
  1345. topologySpreadConstraints: |
  1346. - maxSkew: 1
  1347. topologyKey: topology.kubernetes.io/zone
  1348. whenUnsatisfiable: ScheduleAnyway
  1349. labelSelector:
  1350. matchLabels:
  1351. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "memcached") | nindent 6 }}
  1352. # -- Affinity for memcached pods. Passed through `tpl` and, thus, to be configured as string
  1353. # @default -- Hard node and soft zone anti-affinity
  1354. affinity: |
  1355. podAntiAffinity:
  1356. requiredDuringSchedulingIgnoredDuringExecution:
  1357. - labelSelector:
  1358. matchLabels:
  1359. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "memcached") | nindent 10 }}
  1360. topologyKey: kubernetes.io/hostname
  1361. preferredDuringSchedulingIgnoredDuringExecution:
  1362. - weight: 100
  1363. podAffinityTerm:
  1364. labelSelector:
  1365. matchLabels:
  1366. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "memcached") | nindent 12 }}
  1367. topologyKey: topology.kubernetes.io/zone
  1368. service:
  1369. # -- Annotations for memcached service
  1370. annotations: {}
  1371. memcachedExporter:
  1372. # -- Specifies whether the Memcached Exporter should be enabled
  1373. enabled: false
  1374. # -- hostAliases to add
  1375. hostAliases: []
  1376. # - ip: 1.2.3.4
  1377. # hostnames:
  1378. # - domain.tld
  1379. image:
  1380. # -- The Docker registry for the Memcached Exporter image. Overrides `global.image.registry`
  1381. registry: null
  1382. # -- Optional list of imagePullSecrets. Overrides `global.image.pullSecrets`
  1383. pullSecrets: []
  1384. # -- Memcached Exporter Docker image repository
  1385. repository: prom/memcached-exporter
  1386. # -- Memcached Exporter Docker image tag
  1387. tag: v0.8.0
  1388. # -- Memcached Exporter Docker image pull policy
  1389. pullPolicy: IfNotPresent
  1390. # -- Memcached Exporter resource requests and limits
  1391. resources: {}
  1392. metaMonitoring:
  1393. # ServiceMonitor configuration
  1394. serviceMonitor:
  1395. # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
  1396. enabled: false
  1397. # -- Alternative namespace for ServiceMonitor resources
  1398. namespace: null
  1399. # -- Namespace selector for ServiceMonitor resources
  1400. namespaceSelector: {}
  1401. # -- ServiceMonitor annotations
  1402. annotations: {}
  1403. # -- Additional ServiceMonitor labels
  1404. labels: {}
  1405. # -- ServiceMonitor scrape interval
  1406. interval: null
  1407. # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
  1408. scrapeTimeout: null
  1409. # -- ServiceMonitor relabel configs to apply to samples before scraping
  1410. # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
  1411. relabelings: []
  1412. # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
  1413. # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
  1414. metricRelabelings: []
  1415. # -- ServiceMonitor will use http by default, but you can pick https as well
  1416. scheme: http
  1417. # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
  1418. tlsConfig: null
  1419. # metaMonitoringAgent configures the built in Grafana Agent that can scrape metrics and logs and send them to a local or remote destination
  1420. grafanaAgent:
  1421. # -- Controls whether to create PodLogs, MetricsInstance, LogsInstance, and GrafanaAgent CRs to scrape the
  1422. # ServiceMonitors of the chart and ship metrics and logs to the remote endpoints below.
  1423. # Note that you need to configure serviceMonitor in order to have some metrics available.
  1424. enabled: false
  1425. # -- Controls whether to install the Grafana Agent Operator and its CRDs.
  1426. # Note that helm will not install CRDs if this flag is enabled during an upgrade.
  1427. # In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds
  1428. installOperator: false
  1429. logs:
  1430. # -- Default destination for logs. The config here is translated to Promtail client
  1431. # configuration to write logs to this Loki-compatible remote. Optional.
  1432. remote:
  1433. # -- Full URL for Loki push endpoint. Usually ends in /loki/api/v1/push
  1434. url: ''
  1435. auth:
  1436. # -- Used to set X-Scope-OrgID header on requests. Usually not used in combination with username and password.
  1437. tenantId: ''
  1438. # -- Basic authentication username. Optional.
  1439. username: ''
  1440. # -- The value under key passwordSecretKey in this secret will be used as the basic authentication password. Required only if passwordSecretKey is set.
  1441. passwordSecretName: ''
  1442. # -- The value under this key in passwordSecretName will be used as the basic authentication password. Required only if passwordSecretName is set.
  1443. passwordSecretKey: ''
  1444. # -- Client configurations for the LogsInstance that will scrape Mimir pods. Follows the format of .remote.
  1445. additionalClientConfigs: []
  1446. metrics:
  1447. # -- Default destination for metrics. The config here is translated to remote_write
  1448. # configuration to push metrics to this Prometheus-compatible remote. Optional.
  1449. # Note that you need to configure serviceMonitor in order to have some metrics available.
  1450. remote:
  1451. # -- Full URL for Prometheus remote-write. Usually ends in /push
  1452. url: ''
  1453. # -- Used to add HTTP headers to remote-write requests.
  1454. headers: {}
  1455. auth:
  1456. # -- Basic authentication username. Optional.
  1457. username: ''
  1458. # -- The value under key passwordSecretKey in this secret will be used as the basic authentication password. Required only if passwordSecretKey is set.
  1459. passwordSecretName: ''
  1460. # -- The value under this key in passwordSecretName will be used as the basic authentication password. Required only if passwordSecretName is set.
  1461. passwordSecretKey: ''
  1462. # -- Additional remote-write for the MetricsInstance that will scrape Mimir pods. Follows the format of .remote.
  1463. additionalRemoteWriteConfigs: []
  1464. scrapeK8s:
  1465. # -- When grafanaAgent.enabled and serviceMonitor.enabled, controls whether to create ServiceMonitors CRs
  1466. # for cadvisor, kubelet, and kube-state-metrics. The scraped metrics are reduced to those pertaining to
  1467. # Mimir pods only.
  1468. enabled: true
  1469. # -- Controls service discovery of kube-state-metrics.
  1470. kubeStateMetrics:
  1471. namespace: kube-system
  1472. labelSelectors:
  1473. app.kubernetes.io/name: kube-state-metrics
  1474. # -- Sets the namespace of the resources. Leave empty or unset to use the same namespace as the Helm release.
  1475. namespace: ''
  1476. # -- Labels to add to all monitoring.grafana.com custom resources.
  1477. # Does not affect the ServiceMonitors for kubernetes metrics; use serviceMonitor.labels for that.
  1478. labels: {}
  1479. # -- Annotations to add to all monitoring.grafana.com custom resources.
  1480. # Does not affect the ServiceMonitors for kubernetes metrics; use serviceMonitor.annotations for that.
  1481. annotations: {}
  1482. # Rules for the Prometheus Operator
  1483. prometheusRule:
  1484. # -- If enabled, a PrometheusRule resource for Prometheus Operator is created
  1485. enabled: false
  1486. # -- Alternative namespace for the PrometheusRule resource
  1487. namespace: null
  1488. # -- PrometheusRule annotations
  1489. annotations: {}
  1490. # -- Additional PrometheusRule labels
  1491. labels: {}
  1492. # -- Contents of Prometheus rules file
  1493. groups: []
  1494. # - name: loki-rules
  1495. # rules:
  1496. # - record: job:loki_request_duration_seconds_bucket:sum_rate
  1497. # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job)
  1498. # - record: job_route:loki_request_duration_seconds_bucket:sum_rate
  1499. # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job, route)
  1500. # - record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
  1501. # expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (node, namespace, pod, container)
  1502. minio:
  1503. enabled: false
  1504. mode: standalone
  1505. rootUser: cecf
  1506. rootPassword: cecf@cestong.com
  1507. buckets:
  1508. # Default Tempo storage bucket.
  1509. - name: tempo-traces
  1510. policy: none
  1511. purge: false
  1512. persistence:
  1513. size: 20Gi
  1514. resources:
  1515. requests:
  1516. cpu: 100m
  1517. memory: 128Mi
  1518. # Changed the mc config path to '/tmp' from '/etc' as '/etc' is only writable by root and OpenShift will not permit this.
  1519. configPathmc: '/tmp/minio/mc/'
  1520. # Configuration for the gateway
  1521. gateway:
  1522. # -- Specifies whether the gateway should be enabled
  1523. enabled: false
  1524. # -- Number of replicas for the gateway
  1525. replicas: 1
  1526. # -- hostAliases to add
  1527. hostAliases: []
  1528. # - ip: 1.2.3.4
  1529. # hostnames:
  1530. # - domain.tld
  1531. autoscaling:
  1532. # -- Enable autoscaling for the gateway
  1533. enabled: false
  1534. # -- Minimum autoscaling replicas for the gateway
  1535. minReplicas: 1
  1536. # -- Maximum autoscaling replicas for the gateway
  1537. maxReplicas: 3
  1538. # -- Autoscaling behavior configuration for the gateway
  1539. behavior: {}
  1540. # -- Target CPU utilisation percentage for the gateway
  1541. targetCPUUtilizationPercentage: 60
  1542. # -- Target memory utilisation percentage for the gateway
  1543. targetMemoryUtilizationPercentage:
  1544. # -- Enable logging of 2xx and 3xx HTTP requests
  1545. verboseLogging: true
  1546. image:
  1547. # -- The Docker registry for the gateway image. Overrides `global.image.registry`
  1548. registry: null
  1549. # -- Optional list of imagePullSecrets. Overrides `global.image.pullSecrets`
  1550. pullSecrets: []
  1551. # -- The gateway image repository
  1552. repository: nginxinc/nginx-unprivileged
  1553. # -- The gateway image tag
  1554. tag: 1.19-alpine
  1555. # -- The gateway image pull policy
  1556. pullPolicy: IfNotPresent
  1557. # -- The name of the PriorityClass for gateway pods
  1558. priorityClassName: null
  1559. # -- Labels for gateway pods
  1560. podLabels: {}
  1561. # -- Annotations for gateway pods
  1562. podAnnotations: {}
  1563. # -- Additional CLI args for the gateway
  1564. extraArgs: []
  1565. # -- Environment variables to add to the gateway pods
  1566. extraEnv: []
  1567. # -- Environment variables from secrets or configmaps to add to the gateway pods
  1568. extraEnvFrom: []
  1569. # -- Volumes to add to the gateway pods
  1570. extraVolumes: []
  1571. # -- Volume mounts to add to the gateway pods
  1572. extraVolumeMounts: []
  1573. # -- Resource requests and limits for the gateway
  1574. resources: {}
  1575. # -- Grace period to allow the gateway to shutdown before it is killed
  1576. terminationGracePeriodSeconds: 30
  1577. # -- topologySpread for gateway pods. Passed through `tpl` and, thus, to be configured as string
  1578. # @default -- Defaults to allow skew no more then 1 node per AZ
  1579. topologySpreadConstraints: |
  1580. - maxSkew: 1
  1581. topologyKey: topology.kubernetes.io/zone
  1582. whenUnsatisfiable: ScheduleAnyway
  1583. labelSelector:
  1584. matchLabels:
  1585. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "gateway") | nindent 6 }}
  1586. # -- Affinity for gateway pods. Passed through `tpl` and, thus, to be configured as string
  1587. # @default -- Hard node and soft zone anti-affinity
  1588. affinity: |
  1589. podAntiAffinity:
  1590. requiredDuringSchedulingIgnoredDuringExecution:
  1591. - labelSelector:
  1592. matchLabels:
  1593. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "gateway") | nindent 10 }}
  1594. topologyKey: kubernetes.io/hostname
  1595. preferredDuringSchedulingIgnoredDuringExecution:
  1596. - weight: 100
  1597. podAffinityTerm:
  1598. labelSelector:
  1599. matchLabels:
  1600. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "gateway") | nindent 12 }}
  1601. topologyKey: topology.kubernetes.io/zone
  1602. # -- Node selector for gateway pods
  1603. nodeSelector: {}
  1604. # -- Tolerations for gateway pods
  1605. tolerations: []
  1606. # Gateway service configuration
  1607. service:
  1608. # -- Port of the gateway service
  1609. port: 80
  1610. # -- Type of the gateway service
  1611. type: ClusterIP
  1612. # -- ClusterIP of the gateway service
  1613. clusterIP: null
  1614. # -- Node port if service type is NodePort
  1615. nodePort: null
  1616. # -- Load balancer IPO address if service type is LoadBalancer
  1617. loadBalancerIP: null
  1618. # -- Annotations for the gateway service
  1619. annotations: {}
  1620. # -- Labels for gateway service
  1621. labels: {}
  1622. # -- Additional ports to be opneed on gateway service (e.g. for RPC connections)
  1623. additionalPorts: {}
  1624. # Gateway ingress configuration
  1625. ingress:
  1626. # -- Specifies whether an ingress for the gateway should be created
  1627. enabled: false
  1628. # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
  1629. # ingressClassName: nginx
  1630. # -- Annotations for the gateway ingress
  1631. annotations: {}
  1632. # -- Hosts configuration for the gateway ingress
  1633. hosts:
  1634. - host: gateway.tempo.example.com
  1635. paths:
  1636. - path: /
  1637. # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
  1638. # pathType: Prefix
  1639. # -- TLS configuration for the gateway ingress
  1640. tls:
  1641. - secretName: tempo-gateway-tls
  1642. hosts:
  1643. - gateway.tempo.example.com
  1644. # Basic auth configuration
  1645. basicAuth:
  1646. # -- Enables basic authentication for the gateway
  1647. enabled: false
  1648. # -- The basic auth username for the gateway
  1649. username: null
  1650. # -- The basic auth password for the gateway
  1651. password: null
  1652. # -- Uses the specified username and password to compute a htpasswd using Sprig's `htpasswd` function.
  1653. # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
  1654. # high CPU load.
  1655. htpasswd: >-
  1656. {{ htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password) }}
  1657. # -- Existing basic auth secret to use. Must contain '.htpasswd'
  1658. existingSecret: null
  1659. # Configures the readiness probe for the gateway
  1660. readinessProbe:
  1661. httpGet:
  1662. path: /
  1663. port: http-metrics
  1664. initialDelaySeconds: 15
  1665. timeoutSeconds: 1
  1666. nginxConfig:
  1667. # -- NGINX log format
  1668. logFormat: |-
  1669. main '$remote_addr - $remote_user [$time_local] $status '
  1670. '"$request" $body_bytes_sent "$http_referer" '
  1671. '"$http_user_agent" "$http_x_forwarded_for"';
  1672. # -- Allows appending custom configuration to the server block
  1673. serverSnippet: ''
  1674. # -- Allows appending custom configuration to the http block
  1675. httpSnippet: ''
  1676. # -- Allows overriding the DNS resolver address nginx will use
  1677. resolver: ''
  1678. # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
  1679. # @default -- See values.yaml
  1680. file: |
  1681. worker_processes 5; ## Default: 1
  1682. error_log /dev/stderr;
  1683. pid /tmp/nginx.pid;
  1684. worker_rlimit_nofile 8192;
  1685. events {
  1686. worker_connections 4096; ## Default: 1024
  1687. }
  1688. http {
  1689. client_body_temp_path /tmp/client_temp;
  1690. proxy_temp_path /tmp/proxy_temp_path;
  1691. fastcgi_temp_path /tmp/fastcgi_temp;
  1692. uwsgi_temp_path /tmp/uwsgi_temp;
  1693. scgi_temp_path /tmp/scgi_temp;
  1694. proxy_http_version 1.1;
  1695. default_type application/octet-stream;
  1696. log_format {{ .Values.gateway.nginxConfig.logFormat }}
  1697. {{- if .Values.gateway.verboseLogging }}
  1698. access_log /dev/stderr main;
  1699. {{- else }}
  1700. map $status $loggable {
  1701. ~^[23] 0;
  1702. default 1;
  1703. }
  1704. access_log /dev/stderr main if=$loggable;
  1705. {{- end }}
  1706. sendfile on;
  1707. tcp_nopush on;
  1708. {{- if .Values.gateway.nginxConfig.resolver }}
  1709. resolver {{ .Values.gateway.nginxConfig.resolver }};
  1710. {{- else }}
  1711. resolver {{ .Values.global.dnsService }}.{{ .Values.global.dnsNamespace }}.svc.{{ .Values.global.clusterDomain }};
  1712. {{- end }}
  1713. {{- with .Values.gateway.nginxConfig.httpSnippet }}
  1714. {{ . | nindent 2 }}
  1715. {{- end }}
  1716. server {
  1717. listen 8080;
  1718. {{- if .Values.gateway.basicAuth.enabled }}
  1719. auth_basic "Tempo";
  1720. auth_basic_user_file /etc/nginx/secrets/.htpasswd;
  1721. {{- end }}
  1722. location = / {
  1723. return 200 'OK';
  1724. auth_basic off;
  1725. }
  1726. location = /jaeger/api/traces {
  1727. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "distributor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:14268/api/traces;
  1728. }
  1729. location = /zipkin/spans {
  1730. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "distributor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:9411/spans;
  1731. }
  1732. location = /v1/traces {
  1733. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "distributor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:4318/v1/traces;
  1734. }
  1735. location ^~ /api {
  1736. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "query-frontend") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1737. }
  1738. location = /flush {
  1739. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "ingester") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1740. }
  1741. location = /shutdown {
  1742. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "ingester") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1743. }
  1744. location = /distributor/ring {
  1745. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "distributor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1746. }
  1747. location = /ingester/ring {
  1748. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "distributor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1749. }
  1750. location = /compactor/ring {
  1751. proxy_pass http://{{ include "tempo.resourceName" (dict "ctx" . "component" "compactor") }}.{{ .Release.Namespace }}.svc.{{ .Values.global.clusterDomain }}:3100$request_uri;
  1752. }
  1753. {{- with .Values.gateway.nginxConfig.serverSnippet }}
  1754. {{ . | nindent 4 }}
  1755. {{- end }}
  1756. }
  1757. }
  1758. ##############################################################################
  1759. # The values in and after the `enterprise:` key configure the enterprise features
  1760. enterprise:
  1761. # Enable enterprise features. License must be provided, nginx gateway is not installed, instead
  1762. # the enterprise gateway is used.
  1763. enabled: false
  1764. image:
  1765. # -- Grafana Enterprise Metrics container image repository. Note: for Grafana Tempo use the value 'image.repository'
  1766. repository: grafana/enterprise-traces
  1767. # -- Grafana Enterprise Metrics container image tag. Note: for Grafana Tempo use the value 'image.tag'
  1768. tag: v2.3.1
  1769. # Note: pullPolicy and optional pullSecrets are set in toplevel 'image' section, not here
  1770. # In order to use Grafana Enterprise Traces features, you will need to provide the contents of your Grafana Enterprise Traces
  1771. # license, either by providing the contents of the license.jwt, or the name Kubernetes Secret that contains your license.jwt.
  1772. # To set the license contents, use the flag `--set-file 'license.contents=./license.jwt'`
  1773. # To use your own Kubernetes Secret, `--set license.external=true`.
  1774. license:
  1775. contents: 'NOTAVALIDLICENSE'
  1776. external: false
  1777. secretName: '{{ include "tempo.resourceName" (dict "ctx" . "component" "license") }}'
  1778. # Settings for the initial admin(istrator) token generator job. Can only be enabled if
  1779. # enterprise.enabled is true - requires license.
  1780. tokengenJob:
  1781. enable: true
  1782. # -- hostAliases to add
  1783. hostAliases: []
  1784. # - ip: 1.2.3.4
  1785. # hostnames:
  1786. # - domain.tld
  1787. extraArgs: {}
  1788. env: []
  1789. extraEnvFrom: []
  1790. annotations: {}
  1791. initContainers: []
  1792. # -- The SecurityContext for tokenjobgen containers
  1793. containerSecurityContext:
  1794. readOnlyRootFilesystem: true
  1795. # Settings for the admin_api service providing authentication and authorization service.
  1796. # Can only be enabled if enterprise.enabled is true - requires license.
  1797. adminApi:
  1798. replicas: 1
  1799. # -- hostAliases to add
  1800. hostAliases: []
  1801. # - ip: 1.2.3.4
  1802. # hostnames:
  1803. # - domain.tld
  1804. annotations: {}
  1805. service:
  1806. annotations: {}
  1807. labels: {}
  1808. initContainers: []
  1809. strategy:
  1810. type: RollingUpdate
  1811. rollingUpdate:
  1812. maxSurge: 0
  1813. maxUnavailable: 1
  1814. podLabels: {}
  1815. podAnnotations: {}
  1816. nodeSelector: {}
  1817. # -- topologySpread for admin-api pods. Passed through `tpl` and, thus, to be configured as string
  1818. # @default -- Defaults to allow skew no more then 1 node per AZ
  1819. topologySpreadConstraints: |
  1820. - maxSkew: 1
  1821. topologyKey: topology.kubernetes.io/zone
  1822. whenUnsatisfiable: ScheduleAnyway
  1823. labelSelector:
  1824. matchLabels:
  1825. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "admin-api") | nindent 6 }}
  1826. # -- Affinity for admin-api pods. Passed through `tpl` and, thus, to be configured as string
  1827. # @default -- Soft node and soft zone anti-affinity
  1828. affinity: |
  1829. podAntiAffinity:
  1830. preferredDuringSchedulingIgnoredDuringExecution:
  1831. - weight: 100
  1832. podAffinityTerm:
  1833. labelSelector:
  1834. matchLabels:
  1835. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "admin-api") | nindent 12 }}
  1836. topologyKey: kubernetes.io/hostname
  1837. - weight: 75
  1838. podAffinityTerm:
  1839. labelSelector:
  1840. matchLabels:
  1841. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "admin-api") | nindent 12 }}
  1842. topologyKey: topology.kubernetes.io/zone
  1843. # Pod Disruption Budget
  1844. podDisruptionBudget: {}
  1845. securityContext: {}
  1846. # -- The SecurityContext for admin_api containers
  1847. containerSecurityContext:
  1848. readOnlyRootFilesystem: true
  1849. extraArgs: {}
  1850. persistence:
  1851. subPath:
  1852. readinessProbe:
  1853. httpGet:
  1854. path: /ready
  1855. port: http-metrics
  1856. initialDelaySeconds: 45
  1857. resources:
  1858. requests:
  1859. cpu: 10m
  1860. memory: 32Mi
  1861. terminationGracePeriodSeconds: 60
  1862. tolerations: []
  1863. extraContainers: []
  1864. extraVolumes: []
  1865. extraVolumeMounts: []
  1866. env: []
  1867. extraEnvFrom: []
  1868. # Settings for the gateway service providing authentication and authorization via the admin_api.
  1869. # Can only be enabled if enterprise.enabled is true - requires license.
  1870. enterpriseGateway:
  1871. # -- If you want to use your own proxy URLs, set this to false.
  1872. useDefaultProxyURLs: true
  1873. # -- Proxy URLs defined in this object will be used if useDefaultProxyURLs is set to false.
  1874. proxy: {}
  1875. replicas: 1
  1876. # -- hostAliases to add
  1877. hostAliases: []
  1878. # - ip: 1.2.3.4
  1879. # hostnames:
  1880. # - domain.tld
  1881. annotations: {}
  1882. service:
  1883. annotations: {}
  1884. labels: {}
  1885. # -- If the port is left undefined, the service will listen on the same port as the pod
  1886. port: null
  1887. strategy:
  1888. type: RollingUpdate
  1889. rollingUpdate:
  1890. maxSurge: 0
  1891. maxUnavailable: 1
  1892. podLabels: {}
  1893. podAnnotations: {}
  1894. # Pod Disruption Budget
  1895. podDisruptionBudget: {}
  1896. nodeSelector: {}
  1897. # -- topologySpread for enterprise-gateway pods. Passed through `tpl` and, thus, to be configured as string
  1898. # @default -- Defaults to allow skew no more then 1 node per AZ
  1899. topologySpreadConstraints: |
  1900. - maxSkew: 1
  1901. topologyKey: topology.kubernetes.io/zone
  1902. whenUnsatisfiable: ScheduleAnyway
  1903. labelSelector:
  1904. matchLabels:
  1905. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "enterprise-gateway") | nindent 6 }}
  1906. # -- Affinity for enterprise-gateway pods. Passed through `tpl` and, thus, to be configured as string
  1907. # @default -- Soft node and soft zone anti-affinity
  1908. affinity: |
  1909. podAntiAffinity:
  1910. preferredDuringSchedulingIgnoredDuringExecution:
  1911. - weight: 100
  1912. podAffinityTerm:
  1913. labelSelector:
  1914. matchLabels:
  1915. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "enterprise-gateway") | nindent 12 }}
  1916. topologyKey: kubernetes.io/hostname
  1917. - weight: 75
  1918. podAffinityTerm:
  1919. labelSelector:
  1920. matchLabels:
  1921. {{- include "tempo.selectorLabels" (dict "ctx" . "component" "enterprise-gateway") | nindent 12 }}
  1922. topologyKey: topology.kubernetes.io/zone
  1923. securityContext:
  1924. {}
  1925. # -- The SecurityContext for gateway containers
  1926. containerSecurityContext:
  1927. readOnlyRootFilesystem: true
  1928. initContainers: []
  1929. extraArgs: {}
  1930. persistence:
  1931. subPath:
  1932. readinessProbe:
  1933. httpGet:
  1934. path: /ready
  1935. port: http-metrics
  1936. initialDelaySeconds: 45
  1937. resources:
  1938. requests:
  1939. cpu: 10m
  1940. memory: 32Mi
  1941. terminationGracePeriodSeconds: 60
  1942. tolerations: []
  1943. extraContainers: []
  1944. extraVolumes: []
  1945. extraVolumeMounts: []
  1946. env: []
  1947. extraEnvFrom: []
  1948. # Ingress configuration
  1949. ingress:
  1950. # -- Specifies whether an ingress for the gateway should be created
  1951. enabled: false
  1952. # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
  1953. # ingressClassName: gateway
  1954. # -- Annotations for the gateway ingress
  1955. annotations: {}
  1956. # -- Hosts configuration for the gateway ingress
  1957. hosts:
  1958. - host: gateway.gem.example.com
  1959. paths:
  1960. - path: /
  1961. # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
  1962. # pathType: Prefix
  1963. # -- TLS configuration for the gateway ingress
  1964. tls:
  1965. - secretName: gem-gateway-tls
  1966. hosts:
  1967. - gateway.gem.example.com
  1968. # -- Create extra manifests via values.
  1969. extraObjects: []
  1970. # - apiVersion: "kubernetes-client.io/v1"
  1971. # kind: ExternalSecret
  1972. # metadata:
  1973. # name: tempo-secrets
  1974. # spec:
  1975. # backendType: aws
  1976. # data:
  1977. # - key: secret-access-key
  1978. # name: awssm-secret