blob: 8fcb6e35de5270825d051508b8e038795aa68d27 [file] [log] [blame]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001# Default values for kube-prometheus-stack.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
4
5## Provide a name in place of kube-prometheus-stack for `app:` labels
6##
7nameOverride: ""
8
9## Override the deployment namespace
10##
11namespaceOverride: ""
12
Mohammed Naser91e2fa02024-02-23 01:46:39 -050013## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.26.6
Mohammed Naser9ad0d462023-01-15 20:36:37 -050014##
15kubeTargetVersionOverride: ""
16
17## Allow kubeVersion to be overridden while creating the ingress
18##
19kubeVersionOverride: ""
20
21## Provide a name to substitute for the full names of resources
22##
23fullnameOverride: ""
24
25## Labels to apply to all resources
26##
27commonLabels: {}
28# scmhash: abc123
29# myLabel: aakkmd
30
Mohammed Naser5b49cbb2023-08-30 16:16:37 -040031## Install Prometheus Operator CRDs
32##
33crds:
34 enabled: true
35
Mohammed Naser91e2fa02024-02-23 01:46:39 -050036## custom Rules to override "for" and "severity" in defaultRules
37##
38customRules: {}
39 # AlertmanagerFailedReload:
40 # for: 3m
41 # AlertmanagerMembersInconsistent:
42 # for: 5m
43 # severity: "warning"
44
Mohammed Naser9ad0d462023-01-15 20:36:37 -050045## Create default rules for monitoring the cluster
46##
47defaultRules:
48 create: true
49 rules:
50 alertmanager: true
51 etcd: true
52 configReloaders: true
53 general: true
Mohammed Naser91e2fa02024-02-23 01:46:39 -050054 k8sContainerCpuUsageSecondsTotal: true
55 k8sContainerMemoryCache: true
56 k8sContainerMemoryRss: true
57 k8sContainerMemorySwap: true
58 k8sContainerResource: true
59 k8sContainerMemoryWorkingSetBytes: true
60 k8sPodOwner: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -050061 kubeApiserverAvailability: true
62 kubeApiserverBurnrate: true
63 kubeApiserverHistogram: true
64 kubeApiserverSlos: true
65 kubeControllerManager: true
66 kubelet: true
67 kubeProxy: true
68 kubePrometheusGeneral: true
69 kubePrometheusNodeRecording: true
70 kubernetesApps: true
71 kubernetesResources: true
72 kubernetesStorage: true
73 kubernetesSystem: true
74 kubeSchedulerAlerting: true
75 kubeSchedulerRecording: true
76 kubeStateMetrics: true
77 network: true
78 node: true
79 nodeExporterAlerting: true
80 nodeExporterRecording: true
81 prometheus: true
82 prometheusOperator: true
Mohammed Naser5b49cbb2023-08-30 16:16:37 -040083 windows: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -050084
85 ## Reduce app namespace alert scope
86 appNamespacesTarget: ".*"
87
Mohammed Naser91e2fa02024-02-23 01:46:39 -050088 ## Set keep_firing_for for all alerts
89 keepFiringFor: ""
90
Mohammed Naser9ad0d462023-01-15 20:36:37 -050091 ## Labels for default rules
92 labels: {}
93 ## Annotations for default rules
94 annotations: {}
95
96 ## Additional labels for PrometheusRule alerts
97 additionalRuleLabels: {}
98
99 ## Additional annotations for PrometheusRule alerts
100 additionalRuleAnnotations: {}
101
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400102 ## Additional labels for specific PrometheusRule alert groups
103 additionalRuleGroupLabels:
104 alertmanager: {}
105 etcd: {}
106 configReloaders: {}
107 general: {}
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500108 k8sContainerCpuUsageSecondsTotal: {}
109 k8sContainerMemoryCache: {}
110 k8sContainerMemoryRss: {}
111 k8sContainerMemorySwap: {}
112 k8sContainerResource: {}
113 k8sPodOwner: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400114 kubeApiserverAvailability: {}
115 kubeApiserverBurnrate: {}
116 kubeApiserverHistogram: {}
117 kubeApiserverSlos: {}
118 kubeControllerManager: {}
119 kubelet: {}
120 kubeProxy: {}
121 kubePrometheusGeneral: {}
122 kubePrometheusNodeRecording: {}
123 kubernetesApps: {}
124 kubernetesResources: {}
125 kubernetesStorage: {}
126 kubernetesSystem: {}
127 kubeSchedulerAlerting: {}
128 kubeSchedulerRecording: {}
129 kubeStateMetrics: {}
130 network: {}
131 node: {}
132 nodeExporterAlerting: {}
133 nodeExporterRecording: {}
134 prometheus: {}
135 prometheusOperator: {}
136
137 ## Additional annotations for specific PrometheusRule alerts groups
138 additionalRuleGroupAnnotations:
139 alertmanager: {}
140 etcd: {}
141 configReloaders: {}
142 general: {}
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500143 k8sContainerCpuUsageSecondsTotal: {}
144 k8sContainerMemoryCache: {}
145 k8sContainerMemoryRss: {}
146 k8sContainerMemorySwap: {}
147 k8sContainerResource: {}
148 k8sPodOwner: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400149 kubeApiserverAvailability: {}
150 kubeApiserverBurnrate: {}
151 kubeApiserverHistogram: {}
152 kubeApiserverSlos: {}
153 kubeControllerManager: {}
154 kubelet: {}
155 kubeProxy: {}
156 kubePrometheusGeneral: {}
157 kubePrometheusNodeRecording: {}
158 kubernetesApps: {}
159 kubernetesResources: {}
160 kubernetesStorage: {}
161 kubernetesSystem: {}
162 kubeSchedulerAlerting: {}
163 kubeSchedulerRecording: {}
164 kubeStateMetrics: {}
165 network: {}
166 node: {}
167 nodeExporterAlerting: {}
168 nodeExporterRecording: {}
169 prometheus: {}
170 prometheusOperator: {}
171
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500172 additionalAggregationLabels: []
173
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500174 ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
175 runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
176
177 ## Disabled PrometheusRule alerts
178 disabled: {}
179 # KubeAPIDown: true
180 # NodeRAIDDegraded: true
181
182## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
183##
184# additionalPrometheusRules: []
185# - name: my-rule-file
186# groups:
187# - name: my_group
188# rules:
189# - record: my_record
190# expr: 100 * my_record
191
192## Provide custom recording or alerting rules to be deployed into the cluster.
193##
194additionalPrometheusRulesMap: {}
195# rule-name:
196# groups:
197# - name: my_group
198# rules:
199# - record: my_record
200# expr: 100 * my_record
201
202##
203global:
204 rbac:
205 create: true
206
207 ## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
208 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
209 createAggregateClusterRoles: false
210 pspEnabled: false
211 pspAnnotations: {}
212 ## Specify pod annotations
213 ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor
214 ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp
215 ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl
216 ##
217 # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
218 # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
219 # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
220
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400221 ## Global image registry to use if it needs to be overriden for some specific use cases (e.g local registries, custom images, ...)
222 ##
223 imageRegistry: ""
224
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500225 ## Reference to one or more secrets to be used when pulling images
226 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
227 ##
228 imagePullSecrets: []
229 # - name: "image-pull-secret"
230 # or
231 # - "image-pull-secret"
232
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400233windowsMonitoring:
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500234 ## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400235 enabled: false
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500236
237## Configuration for prometheus-windows-exporter
238## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
239##
240prometheus-windows-exporter:
241 ## Enable ServiceMonitor and set Kubernetes label to use as a job label
242 ##
243 prometheus:
244 monitor:
245 enabled: true
246 jobLabel: jobLabel
247
248 releaseLabel: true
249
250 ## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
251 ##
252 podLabels:
253 jobLabel: windows-exporter
254
255 ## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
256 ##
257 config: |-
258 collectors:
259 enabled: '[defaults],memory,container'
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400260
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500261## Configuration for alertmanager
262## ref: https://prometheus.io/docs/alerting/alertmanager/
263##
264alertmanager:
265
266 ## Deploy alertmanager
267 ##
268 enabled: true
269
270 ## Annotations for Alertmanager
271 ##
272 annotations: {}
273
274 ## Api that prometheus will use to communicate with alertmanager. Possible values are v1, v2
275 ##
276 apiVersion: v2
277
278 ## Service account for Alertmanager to use.
279 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
280 ##
281 serviceAccount:
282 create: true
283 name: ""
284 annotations: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400285 automountServiceAccountToken: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500286
287 ## Configure pod disruption budgets for Alertmanager
288 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500289 ##
290 podDisruptionBudget:
291 enabled: false
292 minAvailable: 1
293 maxUnavailable: ""
294
295 ## Alertmanager configuration directives
296 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
297 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
298 ##
299 config:
300 global:
301 resolve_timeout: 5m
302 inhibit_rules:
303 - source_matchers:
304 - 'severity = critical'
305 target_matchers:
306 - 'severity =~ warning|info'
307 equal:
308 - 'namespace'
309 - 'alertname'
310 - source_matchers:
311 - 'severity = warning'
312 target_matchers:
313 - 'severity = info'
314 equal:
315 - 'namespace'
316 - 'alertname'
317 - source_matchers:
318 - 'alertname = InfoInhibitor'
319 target_matchers:
320 - 'severity = info'
321 equal:
322 - 'namespace'
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500323 - target_matchers:
324 - 'alertname = InfoInhibitor'
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500325 route:
326 group_by: ['namespace']
327 group_wait: 30s
328 group_interval: 5m
329 repeat_interval: 12h
330 receiver: 'null'
331 routes:
332 - receiver: 'null'
333 matchers:
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500334 - alertname = "Watchdog"
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500335 receivers:
336 - name: 'null'
337 templates:
338 - '/etc/alertmanager/config/*.tmpl'
339
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400340 ## Alertmanager configuration directives (as string type, preferred over the config hash map)
341 ## stringConfig will be used only, if tplConfig is true
342 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
343 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
344 ##
345 stringConfig: ""
346
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500347 ## Pass the Alertmanager configuration directives through Helm's templating
348 ## engine. If the Alertmanager configuration contains Alertmanager templates,
349 ## they'll need to be properly escaped so that they are not interpreted by
350 ## Helm
351 ## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
352 ## https://prometheus.io/docs/alerting/configuration/#tmpl_string
353 ## https://prometheus.io/docs/alerting/notifications/
354 ## https://prometheus.io/docs/alerting/notification_examples/
355 tplConfig: false
356
357 ## Alertmanager template files to format alerts
358 ## By default, templateFiles are placed in /etc/alertmanager/config/ and if
359 ## they have a .tmpl file suffix will be loaded. See config.templates above
360 ## to change, add other suffixes. If adding other suffixes, be sure to update
361 ## config.templates above to include those suffixes.
362 ## ref: https://prometheus.io/docs/alerting/notifications/
363 ## https://prometheus.io/docs/alerting/notification_examples/
364 ##
365 templateFiles: {}
366 #
367 ## An example template:
368 # template_1.tmpl: |-
369 # {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
370 #
371 # {{ define "slack.myorg.text" }}
372 # {{- $root := . -}}
373 # {{ range .Alerts }}
374 # *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
375 # *Cluster:* {{ template "cluster" $root }}
376 # *Description:* {{ .Annotations.description }}
377 # *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
378 # *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
379 # *Details:*
380 # {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
381 # {{ end }}
382 # {{ end }}
383 # {{ end }}
384
385 ingress:
386 enabled: false
387
388 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
389 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
390 # ingressClassName: nginx
391
392 annotations: {}
393
394 labels: {}
395
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400396 ## Override ingress to a different defined port on the service
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500397 # servicePort: 8081
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400398 ## Override ingress to a different service then the default, this is useful if you need to
399 ## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
400 # serviceName: kube-prometheus-stack-alertmanager-0
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500401
402 ## Hosts must be provided if Ingress is enabled.
403 ##
404 hosts: []
405 # - alertmanager.domain.com
406
407 ## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
408 ##
409 paths: []
410 # - /
411
412 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
413 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
414 # pathType: ImplementationSpecific
415
416 ## TLS configuration for Alertmanager Ingress
417 ## Secret must be manually created in the namespace
418 ##
419 tls: []
420 # - secretName: alertmanager-general-tls
421 # hosts:
422 # - alertmanager.example.com
423
424 ## Configuration for Alertmanager secret
425 ##
426 secret:
427 annotations: {}
428
429 ## Configuration for creating an Ingress that will map to each Alertmanager replica service
430 ## alertmanager.servicePerReplica must be enabled
431 ##
432 ingressPerReplica:
433 enabled: false
434
435 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
436 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
437 # ingressClassName: nginx
438
439 annotations: {}
440 labels: {}
441
442 ## Final form of the hostname for each per replica ingress is
443 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
444 ##
445 ## Prefix for the per replica ingress that will have `-$replicaNumber`
446 ## appended to the end
447 hostPrefix: ""
448 ## Domain that will be used for the per replica ingress
449 hostDomain: ""
450
451 ## Paths to use for ingress rules
452 ##
453 paths: []
454 # - /
455
456 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
457 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
458 # pathType: ImplementationSpecific
459
460 ## Secret name containing the TLS certificate for alertmanager per replica ingress
461 ## Secret must be manually created in the namespace
462 tlsSecretName: ""
463
464 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
465 ##
466 tlsSecretPerReplica:
467 enabled: false
468 ## Final form of the secret for each per replica ingress is
469 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
470 ##
471 prefix: "alertmanager"
472
473 ## Configuration for Alertmanager service
474 ##
475 service:
476 annotations: {}
477 labels: {}
478 clusterIP: ""
479
480 ## Port for Alertmanager Service to listen on
481 ##
482 port: 9093
483 ## To be used with a proxy extraContainer port
484 ##
485 targetPort: 9093
486 ## Port to expose on each node
487 ## Only used if service.type is 'NodePort'
488 ##
489 nodePort: 30903
490 ## List of IP addresses at which the Prometheus server service is available
491 ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
492 ##
493
494 ## Additional ports to open for Alertmanager service
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500495 ##
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500496 additionalPorts: []
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500497 # - name: oauth-proxy
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500498 # port: 8081
499 # targetPort: 8081
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500500 # - name: oauth-metrics
501 # port: 8082
502 # targetPort: 8082
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500503
504 externalIPs: []
505 loadBalancerIP: ""
506 loadBalancerSourceRanges: []
507
508 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
509 ##
510 externalTrafficPolicy: Cluster
511
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400512 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500513 ## Accepts 'ClientIP' or 'None'
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400514 ##
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500515 sessionAffinity: None
516
517 ## If you want to modify the ClientIP sessionAffinity timeout
518 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
519 ##
520 sessionAffinityConfig:
521 clientIP:
522 timeoutSeconds: 10800
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400523
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500524 ## Service type
525 ##
526 type: ClusterIP
527
528 ## Configuration for creating a separate Service for each statefulset Alertmanager replica
529 ##
530 servicePerReplica:
531 enabled: false
532 annotations: {}
533
534 ## Port for Alertmanager Service per replica to listen on
535 ##
536 port: 9093
537
538 ## To be used with a proxy extraContainer port
539 targetPort: 9093
540
541 ## Port to expose on each node
542 ## Only used if servicePerReplica.type is 'NodePort'
543 ##
544 nodePort: 30904
545
546 ## Loadbalancer source IP ranges
547 ## Only used if servicePerReplica.type is "LoadBalancer"
548 loadBalancerSourceRanges: []
549
550 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
551 ##
552 externalTrafficPolicy: Cluster
553
554 ## Service type
555 ##
556 type: ClusterIP
557
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300558 ## Configuration for creating a ServiceMonitor for AlertManager
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500559 ##
560 serviceMonitor:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300561 ## If true, a ServiceMonitor will be created for the AlertManager service.
562 ##
563 selfMonitor: true
564
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500565 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
566 ##
567 interval: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500568
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400569 ## Additional labels
570 ##
571 additionalLabels: {}
572
573 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
574 ##
575 sampleLimit: 0
576
577 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
578 ##
579 targetLimit: 0
580
581 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
582 ##
583 labelLimit: 0
584
585 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
586 ##
587 labelNameLengthLimit: 0
588
589 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
590 ##
591 labelValueLengthLimit: 0
592
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500593 ## proxyUrl: URL of a proxy that should be used for scraping.
594 ##
595 proxyUrl: ""
596
597 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
598 scheme: ""
599
600 ## enableHttp2: Whether to enable HTTP2.
601 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
602 enableHttp2: true
603
604 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
605 ## Of type: https://github.com/coreos/prometheus-operator/blob/main/Documentation/api.md#tlsconfig
606 tlsConfig: {}
607
608 bearerTokenFile:
609
610 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
611 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
612 ##
613 metricRelabelings: []
614 # - action: keep
615 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
616 # sourceLabels: [__name__]
617
618 ## RelabelConfigs to apply to samples before scraping
619 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
620 ##
621 relabelings: []
622 # - sourceLabels: [__meta_kubernetes_pod_node_name]
623 # separator: ;
624 # regex: ^(.*)$
625 # targetLabel: nodename
626 # replacement: $1
627 # action: replace
628
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500629 ## Additional Endpoints
630 ##
631 additionalEndpoints: []
632 # - port: oauth-metrics
633 # path: /metrics
634
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500635 ## Settings affecting alertmanagerSpec
636 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#alertmanagerspec
637 ##
638 alertmanagerSpec:
639 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
640 ## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
641 ##
642 podMetadata: {}
643
644 ## Image of Alertmanager
645 ##
646 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400647 registry: quay.io
648 repository: prometheus/alertmanager
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300649 tag: v0.27.0
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500650 sha: ""
651
652 ## If true then the user will be responsible to provide a secret with alertmanager configuration
653 ## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
654 ##
655 useExistingSecret: false
656
657 ## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
658 ## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
659 ##
660 secrets: []
661
Giovanni Tirloni52306ad2024-04-12 15:35:05 -0300662 ## If false then the user will opt out of automounting API credentials.
663 ##
664 automountServiceAccountToken: true
665
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500666 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
667 ## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
668 ##
669 configMaps: []
670
671 ## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
672 ## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
673 ##
674 # configSecret:
675
676 ## WebTLSConfig defines the TLS parameters for HTTPS
677 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#alertmanagerwebspec
678 web: {}
679
680 ## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
681 ##
682 alertmanagerConfigSelector: {}
683 ## Example which selects all alertmanagerConfig resources
684 ## with label "alertconfig" with values any of "example-config" or "example-config-2"
685 # alertmanagerConfigSelector:
686 # matchExpressions:
687 # - key: alertconfig
688 # operator: In
689 # values:
690 # - example-config
691 # - example-config-2
692 #
693 ## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
694 # alertmanagerConfigSelector:
695 # matchLabels:
696 # role: example-config
697
698 ## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
699 ##
700 alertmanagerConfigNamespaceSelector: {}
701 ## Example which selects all namespaces
702 ## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
703 # alertmanagerConfigNamespaceSelector:
704 # matchExpressions:
705 # - key: alertmanagerconfig
706 # operator: In
707 # values:
708 # - example-namespace
709 # - example-namespace-2
710
711 ## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
712 # alertmanagerConfigNamespaceSelector:
713 # matchLabels:
714 # alertmanagerconfig: enabled
715
716 ## AlermanagerConfig to be used as top level configuration
717 ##
718 alertmanagerConfiguration: {}
719 ## Example with select a global alertmanagerconfig
720 # alertmanagerConfiguration:
721 # name: global-alertmanager-Configuration
722
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400723 ## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
724 ##
725 alertmanagerConfigMatcherStrategy: {}
726 ## Example with use OnNamespace strategy
727 # alertmanagerConfigMatcherStrategy:
728 # type: OnNamespace
729
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500730 ## Define Log Format
731 # Use logfmt (default) or json logging
732 logFormat: logfmt
733
734 ## Log level for Alertmanager to be configured with.
735 ##
736 logLevel: info
737
738 ## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
739 ## running cluster equal to the expected size.
740 replicas: 1
741
742 ## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
743 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
744 ##
745 retention: 120h
746
747 ## Storage is the definition of how storage will be used by the Alertmanager instances.
748 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/storage.md
749 ##
750 storage: {}
751 # volumeClaimTemplate:
752 # spec:
753 # storageClassName: gluster
754 # accessModes: ["ReadWriteOnce"]
755 # resources:
756 # requests:
757 # storage: 50Gi
758 # selector: {}
759
760
761 ## The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false
762 ##
763 externalUrl:
764
765 ## The route prefix Alertmanager registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true,
766 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
767 ##
768 routePrefix: /
769
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400770 ## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
771 scheme: ""
772
773 ## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
774 ## Of type: https://github.com/coreos/prometheus-operator/blob/main/Documentation/api.md#tlsconfig
775 tlsConfig: {}
776
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500777 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
778 ##
779 paused: false
780
781 ## Define which Nodes the Pods are scheduled on.
782 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
783 ##
784 nodeSelector: {}
785
786 ## Define resources requests and limits for single Pods.
787 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
788 ##
789 resources: {}
790 # requests:
791 # memory: 400Mi
792
793 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
794 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
795 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
796 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
797 ##
798 podAntiAffinity: ""
799
800 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
801 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
802 ##
803 podAntiAffinityTopologyKey: kubernetes.io/hostname
804
805 ## Assign custom affinity rules to the alertmanager instance
806 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
807 ##
808 affinity: {}
809 # nodeAffinity:
810 # requiredDuringSchedulingIgnoredDuringExecution:
811 # nodeSelectorTerms:
812 # - matchExpressions:
813 # - key: kubernetes.io/e2e-az-name
814 # operator: In
815 # values:
816 # - e2e-az1
817 # - e2e-az2
818
819 ## If specified, the pod's tolerations.
820 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
821 ##
822 tolerations: []
823 # - key: "key"
824 # operator: "Equal"
825 # value: "value"
826 # effect: "NoSchedule"
827
828 ## If specified, the pod's topology spread constraints.
829 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
830 ##
831 topologySpreadConstraints: []
832 # - maxSkew: 1
833 # topologyKey: topology.kubernetes.io/zone
834 # whenUnsatisfiable: DoNotSchedule
835 # labelSelector:
836 # matchLabels:
837 # app: alertmanager
838
839 ## SecurityContext holds pod-level security attributes and common container settings.
840 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
841 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
842 ##
843 securityContext:
844 runAsGroup: 2000
845 runAsNonRoot: true
846 runAsUser: 1000
847 fsGroup: 2000
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400848 seccompProfile:
849 type: RuntimeDefault
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500850
851 ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
852 ## Note this is only for the Alertmanager UI, not the gossip communication.
853 ##
854 listenLocal: false
855
856 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
857 ##
858 containers: []
859 # containers:
860 # - name: oauth-proxy
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500861 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.5.1
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500862 # args:
863 # - --upstream=http://127.0.0.1:9093
864 # - --http-address=0.0.0.0:8081
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500865 # - --metrics-address=0.0.0.0:8082
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500866 # - ...
867 # ports:
868 # - containerPort: 8081
869 # name: oauth-proxy
870 # protocol: TCP
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500871 # - containerPort: 8082
872 # name: oauth-metrics
873 # protocol: TCP
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500874 # resources: {}
875
876 # Additional volumes on the output StatefulSet definition.
877 volumes: []
878
879 # Additional VolumeMounts on the output StatefulSet definition.
880 volumeMounts: []
881
882 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
883 ## (permissions, dir tree) on mounted volumes before starting prometheus
884 initContainers: []
885
886 ## Priority class assigned to the Pods
887 ##
888 priorityClassName: ""
889
890 ## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
891 ##
892 additionalPeers: []
893
894 ## PortName to use for Alert Manager.
895 ##
896 portName: "http-web"
897
898 ## ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918
899 ##
900 clusterAdvertiseAddress: false
901
Mohammed Naser5b49cbb2023-08-30 16:16:37 -0400902 ## clusterGossipInterval determines interval between gossip attempts.
903 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go’s time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
904 clusterGossipInterval: ""
905
906 ## clusterPeerTimeout determines timeout for cluster peering.
907 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go’s time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
908 clusterPeerTimeout: ""
909
910 ## clusterPushpullInterval determines interval between pushpull attempts.
911 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go’s time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
912 clusterPushpullInterval: ""
913
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500914 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
915 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
916 forceEnableClusterMode: false
917
918 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
919 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
920 minReadySeconds: 0
921
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500922 ## Additional configuration which is not covered by the properties above. (passed through tpl)
923 additionalConfig: {}
924
925 ## Additional configuration which is not covered by the properties above.
926 ## Useful, if you need advanced templating inside alertmanagerSpec.
927 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
928 additionalConfigString: ""
929
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500930 ## ExtraSecret can be used to store various data in an extra secret
931 ## (use it for example to store hashed basic auth credentials)
932 extraSecret:
933 ## if not set, name will be auto generated
934 # name: ""
935 annotations: {}
936 data: {}
937 # auth: |
938 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
939 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
940
941## Using default values from https://github.com/grafana/helm-charts/blob/main/charts/grafana/values.yaml
942##
943grafana:
944 enabled: true
945 namespaceOverride: ""
946
947 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
948 ##
949 forceDeployDatasources: false
950
951 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
952 ##
953 forceDeployDashboards: false
954
955 ## Deploy default dashboards
956 ##
957 defaultDashboardsEnabled: true
958
959 ## Timezone for the default dashboards
960 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
961 ##
962 defaultDashboardsTimezone: utc
963
Mohammed Naser91e2fa02024-02-23 01:46:39 -0500964 ## Editable flag for the default dashboards
965 ##
966 defaultDashboardsEditable: true
967
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500968 adminPassword: prom-operator
969
970 rbac:
971 ## If true, Grafana PSPs will be created
972 ##
973 pspEnabled: false
974
975 ingress:
976 ## If true, Grafana Ingress will be created
977 ##
978 enabled: false
979
980 ## IngressClassName for Grafana Ingress.
981 ## Should be provided if Ingress is enable.
982 ##
983 # ingressClassName: nginx
984
985 ## Annotations for Grafana Ingress
986 ##
987 annotations: {}
988 # kubernetes.io/ingress.class: nginx
989 # kubernetes.io/tls-acme: "true"
990
991 ## Labels to be added to the Ingress
992 ##
993 labels: {}
994
995 ## Hostnames.
996 ## Must be provided if Ingress is enable.
997 ##
998 # hosts:
999 # - grafana.domain.com
1000 hosts: []
1001
1002 ## Path for grafana ingress
1003 path: /
1004
1005 ## TLS configuration for grafana Ingress
1006 ## Secret must be manually created in the namespace
1007 ##
1008 tls: []
1009 # - secretName: grafana-general-tls
1010 # hosts:
1011 # - grafana.example.com
1012
Mohammed Naser91e2fa02024-02-23 01:46:39 -05001013 # # To make Grafana persistent (Using Statefulset)
1014 # #
1015 # persistence:
1016 # enabled: true
1017 # type: sts
1018 # storageClassName: "storageClassName"
1019 # accessModes:
1020 # - ReadWriteOnce
1021 # size: 20Gi
1022 # finalizers:
1023 # - kubernetes.io/pvc-protection
1024
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001025 serviceAccount:
1026 create: true
1027 autoMount: true
1028
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001029 sidecar:
1030 dashboards:
1031 enabled: true
1032 label: grafana_dashboard
1033 labelValue: "1"
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001034 # Allow discovery in all namespaces for dashboards
1035 searchNamespace: ALL
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001036
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001037 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1038 enableNewTablePanelSyntax: false
1039
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001040 ## Annotations for Grafana dashboard configmaps
1041 ##
1042 annotations: {}
1043 multicluster:
1044 global:
1045 enabled: false
1046 etcd:
1047 enabled: false
1048 provider:
1049 allowUiUpdates: false
1050 datasources:
1051 enabled: true
1052 defaultDatasourceEnabled: true
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001053 isDefaultDatasource: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001054
1055 uid: prometheus
1056
1057 ## URL of prometheus datasource
1058 ##
1059 # url: http://prometheus-stack-prometheus:9090/
1060
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001061 ## Prometheus request timeout in seconds
1062 # timeout: 30
1063
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001064 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1065 # defaultDatasourceScrapeInterval: 15s
1066
1067 ## Annotations for Grafana datasource configmaps
1068 ##
1069 annotations: {}
1070
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001071 ## Set method for HTTP to send query to datasource
1072 httpMethod: POST
1073
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001074 ## Create datasource for each Pod of Prometheus StatefulSet;
1075 ## this uses headless service `prometheus-operated` which is
1076 ## created by Prometheus Operator
1077 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1078 createPrometheusReplicasDatasources: false
1079 label: grafana_datasource
1080 labelValue: "1"
1081
1082 ## Field with internal link pointing to existing data source in Grafana.
1083 ## Can be provisioned via additionalDataSources
1084 exemplarTraceIdDestinations: {}
1085 # datasourceUid: Jaeger
1086 # traceIdLabelName: trace_id
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001087 alertmanager:
1088 enabled: true
1089 uid: alertmanager
1090 handleGrafanaManagedAlerts: false
1091 implementation: prometheus
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001092
1093 extraConfigmapMounts: []
1094 # - name: certs-configmap
1095 # mountPath: /etc/grafana/ssl/
1096 # configMap: certs-configmap
1097 # readOnly: true
1098
1099 deleteDatasources: []
1100 # - name: example-datasource
1101 # orgId: 1
1102
1103 ## Configure additional grafana datasources (passed through tpl)
1104 ## ref: http://docs.grafana.org/administration/provisioning/#datasources
1105 additionalDataSources: []
1106 # - name: prometheus-sample
1107 # access: proxy
1108 # basicAuth: true
1109 # basicAuthPassword: pass
1110 # basicAuthUser: daco
1111 # editable: false
1112 # jsonData:
1113 # tlsSkipVerify: true
1114 # orgId: 1
1115 # type: prometheus
1116 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1117 # version: 1
1118
1119 ## Passed to grafana subchart and used by servicemonitor below
1120 ##
1121 service:
1122 portName: http-web
1123
1124 serviceMonitor:
1125 # If true, a ServiceMonitor CRD is created for a prometheus operator
1126 # https://github.com/coreos/prometheus-operator
1127 #
1128 enabled: true
1129
1130 # Path to use for scraping metrics. Might be different if server.root_url is set
1131 # in grafana.ini
1132 path: "/metrics"
1133
1134 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1135
1136 # labels for the ServiceMonitor
1137 labels: {}
1138
1139 # Scrape interval. If not set, the Prometheus default scrape interval is used.
1140 #
1141 interval: ""
1142 scheme: http
1143 tlsConfig: {}
1144 scrapeTimeout: 30s
1145
1146 ## RelabelConfigs to apply to samples before scraping
1147 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1148 ##
1149 relabelings: []
1150 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1151 # separator: ;
1152 # regex: ^(.*)$
1153 # targetLabel: nodename
1154 # replacement: $1
1155 # action: replace
1156
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001157## Flag to disable all the kubernetes component scrapers
1158##
1159kubernetesServiceMonitors:
1160 enabled: true
1161
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001162## Component scraping the kube api server
1163##
1164kubeApiServer:
1165 enabled: true
1166 tlsConfig:
1167 serverName: kubernetes
1168 insecureSkipVerify: false
1169 serviceMonitor:
1170 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1171 ##
1172 interval: ""
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001173
1174 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1175 ##
1176 sampleLimit: 0
1177
1178 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1179 ##
1180 targetLimit: 0
1181
1182 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1183 ##
1184 labelLimit: 0
1185
1186 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1187 ##
1188 labelNameLengthLimit: 0
1189
1190 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1191 ##
1192 labelValueLengthLimit: 0
1193
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001194 ## proxyUrl: URL of a proxy that should be used for scraping.
1195 ##
1196 proxyUrl: ""
1197
1198 jobLabel: component
1199 selector:
1200 matchLabels:
1201 component: apiserver
1202 provider: kubernetes
1203
1204 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1205 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1206 ##
1207 metricRelabelings:
1208 # Drop excessively noisy apiserver buckets.
1209 - action: drop
1210 regex: apiserver_request_duration_seconds_bucket;(0.15|0.2|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2|3|3.5|4|4.5|6|7|8|9|15|25|40|50)
1211 sourceLabels:
1212 - __name__
1213 - le
1214 # - action: keep
1215 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1216 # sourceLabels: [__name__]
1217
1218 ## RelabelConfigs to apply to samples before scraping
1219 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1220 ##
1221 relabelings: []
1222 # - sourceLabels:
1223 # - __meta_kubernetes_namespace
1224 # - __meta_kubernetes_service_name
1225 # - __meta_kubernetes_endpoint_port_name
1226 # action: keep
1227 # regex: default;kubernetes;https
1228 # - targetLabel: __address__
1229 # replacement: kubernetes.default.svc:443
1230
1231 ## Additional labels
1232 ##
1233 additionalLabels: {}
1234 # foo: bar
1235
1236## Component scraping the kubelet and kubelet-hosted cAdvisor
1237##
1238kubelet:
1239 enabled: true
1240 namespace: kube-system
1241
1242 serviceMonitor:
Mohammed Naser91e2fa02024-02-23 01:46:39 -05001243 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1244 ##
1245 attachMetadata:
1246 node: false
1247
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001248 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1249 ##
1250 interval: ""
1251
Mohammed Naser91e2fa02024-02-23 01:46:39 -05001252 ## If true, Prometheus use (respect) labels provided by exporter.
1253 ##
1254 honorLabels: true
1255
1256 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1257 ##
1258 honorTimestamps: true
1259
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001260 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1261 ##
1262 sampleLimit: 0
1263
1264 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1265 ##
1266 targetLimit: 0
1267
1268 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1269 ##
1270 labelLimit: 0
1271
1272 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1273 ##
1274 labelNameLengthLimit: 0
1275
1276 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1277 ##
1278 labelValueLengthLimit: 0
1279
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001280 ## proxyUrl: URL of a proxy that should be used for scraping.
1281 ##
1282 proxyUrl: ""
1283
1284 ## Enable scraping the kubelet over https. For requirements to enable this see
1285 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1286 ##
1287 https: true
1288
1289 ## Enable scraping /metrics/cadvisor from kubelet's service
1290 ##
1291 cAdvisor: true
1292
1293 ## Enable scraping /metrics/probes from kubelet's service
1294 ##
1295 probes: true
1296
1297 ## Enable scraping /metrics/resource from kubelet's service
1298 ## This is disabled by default because container metrics are already exposed by cAdvisor
1299 ##
1300 resource: false
1301 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1302 resourcePath: "/metrics/resource/v1alpha1"
1303
1304 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1305 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1306 ##
1307 cAdvisorMetricRelabelings:
1308 # Drop less useful container CPU metrics.
1309 - sourceLabels: [__name__]
1310 action: drop
1311 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1312 # Drop less useful container / always zero filesystem metrics.
1313 - sourceLabels: [__name__]
1314 action: drop
1315 regex: 'container_fs_(io_current|io_time_seconds_total|io_time_weighted_seconds_total|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)'
1316 # Drop less useful / always zero container memory metrics.
1317 - sourceLabels: [__name__]
1318 action: drop
1319 regex: 'container_memory_(mapped_file|swap)'
1320 # Drop less useful container process metrics.
1321 - sourceLabels: [__name__]
1322 action: drop
1323 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1324 # Drop container spec metrics that overlap with kube-state-metrics.
1325 - sourceLabels: [__name__]
1326 action: drop
1327 regex: 'container_spec.*'
1328 # Drop cgroup metrics with no pod.
1329 - sourceLabels: [id, pod]
1330 action: drop
1331 regex: '.+;'
1332 # - sourceLabels: [__name__, image]
1333 # separator: ;
1334 # regex: container_([a-z_]+);
1335 # replacement: $1
1336 # action: drop
1337 # - sourceLabels: [__name__]
1338 # separator: ;
1339 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1340 # replacement: $1
1341 # action: drop
1342
1343 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1344 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1345 ##
1346 probesMetricRelabelings: []
1347 # - sourceLabels: [__name__, image]
1348 # separator: ;
1349 # regex: container_([a-z_]+);
1350 # replacement: $1
1351 # action: drop
1352 # - sourceLabels: [__name__]
1353 # separator: ;
1354 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1355 # replacement: $1
1356 # action: drop
1357
1358 ## RelabelConfigs to apply to samples before scraping
1359 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1360 ##
1361 ## metrics_path is required to match upstream rules and charts
1362 cAdvisorRelabelings:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001363 - action: replace
1364 sourceLabels: [__metrics_path__]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001365 targetLabel: metrics_path
1366 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1367 # separator: ;
1368 # regex: ^(.*)$
1369 # targetLabel: nodename
1370 # replacement: $1
1371 # action: replace
1372
1373 ## RelabelConfigs to apply to samples before scraping
1374 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1375 ##
1376 probesRelabelings:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001377 - action: replace
1378 sourceLabels: [__metrics_path__]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001379 targetLabel: metrics_path
1380 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1381 # separator: ;
1382 # regex: ^(.*)$
1383 # targetLabel: nodename
1384 # replacement: $1
1385 # action: replace
1386
1387 ## RelabelConfigs to apply to samples before scraping
1388 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1389 ##
1390 resourceRelabelings:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001391 - action: replace
1392 sourceLabels: [__metrics_path__]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001393 targetLabel: metrics_path
1394 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1395 # separator: ;
1396 # regex: ^(.*)$
1397 # targetLabel: nodename
1398 # replacement: $1
1399 # action: replace
1400
1401 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1402 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1403 ##
1404 metricRelabelings: []
1405 # - sourceLabels: [__name__, image]
1406 # separator: ;
1407 # regex: container_([a-z_]+);
1408 # replacement: $1
1409 # action: drop
1410 # - sourceLabels: [__name__]
1411 # separator: ;
1412 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1413 # replacement: $1
1414 # action: drop
1415
1416 ## RelabelConfigs to apply to samples before scraping
1417 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1418 ##
1419 ## metrics_path is required to match upstream rules and charts
1420 relabelings:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001421 - action: replace
1422 sourceLabels: [__metrics_path__]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001423 targetLabel: metrics_path
1424 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1425 # separator: ;
1426 # regex: ^(.*)$
1427 # targetLabel: nodename
1428 # replacement: $1
1429 # action: replace
1430
1431 ## Additional labels
1432 ##
1433 additionalLabels: {}
1434 # foo: bar
1435
1436## Component scraping the kube controller manager
1437##
1438kubeControllerManager:
1439 enabled: true
1440
1441 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1442 ##
1443 endpoints: []
1444 # - 10.141.4.22
1445 # - 10.141.4.23
1446 # - 10.141.4.24
1447
1448 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1449 ##
1450 service:
1451 enabled: true
1452 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1453 ## of default port in Kubernetes 1.22.
1454 ##
1455 port: null
1456 targetPort: null
1457 # selector:
1458 # component: kube-controller-manager
1459
1460 serviceMonitor:
1461 enabled: true
1462 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1463 ##
1464 interval: ""
1465
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001466 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1467 ##
1468 sampleLimit: 0
1469
1470 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1471 ##
1472 targetLimit: 0
1473
1474 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1475 ##
1476 labelLimit: 0
1477
1478 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1479 ##
1480 labelNameLengthLimit: 0
1481
1482 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1483 ##
1484 labelValueLengthLimit: 0
1485
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001486 ## proxyUrl: URL of a proxy that should be used for scraping.
1487 ##
1488 proxyUrl: ""
1489
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001490 ## port: Name of the port the metrics will be scraped from
1491 ##
1492 port: http-metrics
1493
1494 jobLabel: jobLabel
1495 selector: {}
1496 # matchLabels:
1497 # component: kube-controller-manager
1498
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001499 ## Enable scraping kube-controller-manager over https.
1500 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1501 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1502 ##
1503 https: null
1504
1505 # Skip TLS certificate validation when scraping
1506 insecureSkipVerify: null
1507
1508 # Name of the server to use when validating TLS certificate
1509 serverName: null
1510
1511 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1512 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1513 ##
1514 metricRelabelings: []
1515 # - action: keep
1516 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1517 # sourceLabels: [__name__]
1518
1519 ## RelabelConfigs to apply to samples before scraping
1520 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1521 ##
1522 relabelings: []
1523 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1524 # separator: ;
1525 # regex: ^(.*)$
1526 # targetLabel: nodename
1527 # replacement: $1
1528 # action: replace
1529
1530 ## Additional labels
1531 ##
1532 additionalLabels: {}
1533 # foo: bar
1534
1535## Component scraping coreDns. Use either this or kubeDns
1536##
1537coreDns:
1538 enabled: true
1539 service:
Mohammed Naser91e2fa02024-02-23 01:46:39 -05001540 enabled: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001541 port: 9153
1542 targetPort: 9153
1543 # selector:
1544 # k8s-app: kube-dns
1545 serviceMonitor:
Mohammed Naser91e2fa02024-02-23 01:46:39 -05001546 enabled: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001547 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1548 ##
1549 interval: ""
1550
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001551 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1552 ##
1553 sampleLimit: 0
1554
1555 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1556 ##
1557 targetLimit: 0
1558
1559 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1560 ##
1561 labelLimit: 0
1562
1563 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1564 ##
1565 labelNameLengthLimit: 0
1566
1567 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1568 ##
1569 labelValueLengthLimit: 0
1570
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001571 ## proxyUrl: URL of a proxy that should be used for scraping.
1572 ##
1573 proxyUrl: ""
1574
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001575 ## port: Name of the port the metrics will be scraped from
1576 ##
1577 port: http-metrics
1578
1579 jobLabel: jobLabel
1580 selector: {}
1581 # matchLabels:
1582 # k8s-app: kube-dns
1583
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001584 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1585 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1586 ##
1587 metricRelabelings: []
1588 # - action: keep
1589 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1590 # sourceLabels: [__name__]
1591
1592 ## RelabelConfigs to apply to samples before scraping
1593 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1594 ##
1595 relabelings: []
1596 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1597 # separator: ;
1598 # regex: ^(.*)$
1599 # targetLabel: nodename
1600 # replacement: $1
1601 # action: replace
1602
1603 ## Additional labels
1604 ##
1605 additionalLabels: {}
1606 # foo: bar
1607
1608## Component scraping kubeDns. Use either this or coreDns
1609##
1610kubeDns:
1611 enabled: false
1612 service:
1613 dnsmasq:
1614 port: 10054
1615 targetPort: 10054
1616 skydns:
1617 port: 10055
1618 targetPort: 10055
1619 # selector:
1620 # k8s-app: kube-dns
1621 serviceMonitor:
1622 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1623 ##
1624 interval: ""
1625
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001626 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1627 ##
1628 sampleLimit: 0
1629
1630 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1631 ##
1632 targetLimit: 0
1633
1634 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1635 ##
1636 labelLimit: 0
1637
1638 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1639 ##
1640 labelNameLengthLimit: 0
1641
1642 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1643 ##
1644 labelValueLengthLimit: 0
1645
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001646 ## proxyUrl: URL of a proxy that should be used for scraping.
1647 ##
1648 proxyUrl: ""
1649
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001650 jobLabel: jobLabel
1651 selector: {}
1652 # matchLabels:
1653 # k8s-app: kube-dns
1654
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001655 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1656 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1657 ##
1658 metricRelabelings: []
1659 # - action: keep
1660 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1661 # sourceLabels: [__name__]
1662
1663 ## RelabelConfigs to apply to samples before scraping
1664 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1665 ##
1666 relabelings: []
1667 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1668 # separator: ;
1669 # regex: ^(.*)$
1670 # targetLabel: nodename
1671 # replacement: $1
1672 # action: replace
1673
1674 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1675 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1676 ##
1677 dnsmasqMetricRelabelings: []
1678 # - action: keep
1679 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1680 # sourceLabels: [__name__]
1681
1682 ## RelabelConfigs to apply to samples before scraping
1683 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1684 ##
1685 dnsmasqRelabelings: []
1686 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1687 # separator: ;
1688 # regex: ^(.*)$
1689 # targetLabel: nodename
1690 # replacement: $1
1691 # action: replace
1692
1693 ## Additional labels
1694 ##
1695 additionalLabels: {}
1696 # foo: bar
1697
1698## Component scraping etcd
1699##
1700kubeEtcd:
1701 enabled: true
1702
1703 ## If your etcd is not deployed as a pod, specify IPs it can be found on
1704 ##
1705 endpoints: []
1706 # - 10.141.4.22
1707 # - 10.141.4.23
1708 # - 10.141.4.24
1709
1710 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
1711 ##
1712 service:
1713 enabled: true
1714 port: 2381
1715 targetPort: 2381
1716 # selector:
1717 # component: etcd
1718
1719 ## Configure secure access to the etcd cluster by loading a secret into prometheus and
1720 ## specifying security configuration below. For example, with a secret named etcd-client-cert
1721 ##
1722 ## serviceMonitor:
1723 ## scheme: https
1724 ## insecureSkipVerify: false
1725 ## serverName: localhost
1726 ## caFile: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
1727 ## certFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client
1728 ## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
1729 ##
1730 serviceMonitor:
1731 enabled: true
1732 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1733 ##
1734 interval: ""
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001735
1736 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1737 ##
1738 sampleLimit: 0
1739
1740 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1741 ##
1742 targetLimit: 0
1743
1744 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1745 ##
1746 labelLimit: 0
1747
1748 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1749 ##
1750 labelNameLengthLimit: 0
1751
1752 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1753 ##
1754 labelValueLengthLimit: 0
1755
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001756 ## proxyUrl: URL of a proxy that should be used for scraping.
1757 ##
1758 proxyUrl: ""
1759 scheme: http
1760 insecureSkipVerify: false
1761 serverName: ""
1762 caFile: ""
1763 certFile: ""
1764 keyFile: ""
1765
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001766 ## port: Name of the port the metrics will be scraped from
1767 ##
1768 port: http-metrics
1769
1770 jobLabel: jobLabel
1771 selector: {}
1772 # matchLabels:
1773 # component: etcd
1774
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001775 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1776 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1777 ##
1778 metricRelabelings: []
1779 # - action: keep
1780 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1781 # sourceLabels: [__name__]
1782
1783 ## RelabelConfigs to apply to samples before scraping
1784 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1785 ##
1786 relabelings: []
1787 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1788 # separator: ;
1789 # regex: ^(.*)$
1790 # targetLabel: nodename
1791 # replacement: $1
1792 # action: replace
1793
1794 ## Additional labels
1795 ##
1796 additionalLabels: {}
1797 # foo: bar
1798
1799## Component scraping kube scheduler
1800##
1801kubeScheduler:
1802 enabled: true
1803
1804 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
1805 ##
1806 endpoints: []
1807 # - 10.141.4.22
1808 # - 10.141.4.23
1809 # - 10.141.4.24
1810
1811 ## If using kubeScheduler.endpoints only the port and targetPort are used
1812 ##
1813 service:
1814 enabled: true
1815 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1816 ## of default port in Kubernetes 1.23.
1817 ##
1818 port: null
1819 targetPort: null
1820 # selector:
1821 # component: kube-scheduler
1822
1823 serviceMonitor:
1824 enabled: true
1825 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1826 ##
1827 interval: ""
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001828
1829 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1830 ##
1831 sampleLimit: 0
1832
1833 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1834 ##
1835 targetLimit: 0
1836
1837 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1838 ##
1839 labelLimit: 0
1840
1841 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1842 ##
1843 labelNameLengthLimit: 0
1844
1845 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1846 ##
1847 labelValueLengthLimit: 0
1848
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001849 ## proxyUrl: URL of a proxy that should be used for scraping.
1850 ##
1851 proxyUrl: ""
1852 ## Enable scraping kube-scheduler over https.
1853 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1854 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1855 ##
1856 https: null
1857
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001858 ## port: Name of the port the metrics will be scraped from
1859 ##
1860 port: http-metrics
1861
1862 jobLabel: jobLabel
1863 selector: {}
1864 # matchLabels:
1865 # component: kube-scheduler
1866
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001867 ## Skip TLS certificate validation when scraping
1868 insecureSkipVerify: null
1869
1870 ## Name of the server to use when validating TLS certificate
1871 serverName: null
1872
1873 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1874 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1875 ##
1876 metricRelabelings: []
1877 # - action: keep
1878 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1879 # sourceLabels: [__name__]
1880
1881 ## RelabelConfigs to apply to samples before scraping
1882 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1883 ##
1884 relabelings: []
1885 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1886 # separator: ;
1887 # regex: ^(.*)$
1888 # targetLabel: nodename
1889 # replacement: $1
1890 # action: replace
1891
1892 ## Additional labels
1893 ##
1894 additionalLabels: {}
1895 # foo: bar
1896
1897## Component scraping kube proxy
1898##
1899kubeProxy:
1900 enabled: true
1901
1902 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
1903 ##
1904 endpoints: []
1905 # - 10.141.4.22
1906 # - 10.141.4.23
1907 # - 10.141.4.24
1908
1909 service:
1910 enabled: true
1911 port: 10249
1912 targetPort: 10249
1913 # selector:
1914 # k8s-app: kube-proxy
1915
1916 serviceMonitor:
1917 enabled: true
1918 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1919 ##
1920 interval: ""
1921
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04001922 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1923 ##
1924 sampleLimit: 0
1925
1926 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1927 ##
1928 targetLimit: 0
1929
1930 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1931 ##
1932 labelLimit: 0
1933
1934 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1935 ##
1936 labelNameLengthLimit: 0
1937
1938 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1939 ##
1940 labelValueLengthLimit: 0
1941
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001942 ## proxyUrl: URL of a proxy that should be used for scraping.
1943 ##
1944 proxyUrl: ""
1945
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03001946 ## port: Name of the port the metrics will be scraped from
1947 ##
1948 port: http-metrics
1949
1950 jobLabel: jobLabel
1951 selector: {}
1952 # matchLabels:
1953 # k8s-app: kube-proxy
1954
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001955 ## Enable scraping kube-proxy over https.
1956 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
1957 ##
1958 https: false
1959
1960 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1961 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1962 ##
1963 metricRelabelings: []
1964 # - action: keep
1965 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1966 # sourceLabels: [__name__]
1967
1968 ## RelabelConfigs to apply to samples before scraping
1969 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
1970 ##
1971 relabelings: []
1972 # - action: keep
1973 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1974 # sourceLabels: [__name__]
1975
1976 ## Additional labels
1977 ##
1978 additionalLabels: {}
1979 # foo: bar
1980
1981## Component scraping kube state metrics
1982##
1983kubeStateMetrics:
1984 enabled: true
1985
1986## Configuration for kube-state-metrics subchart
1987##
1988kube-state-metrics:
1989 namespaceOverride: ""
1990 rbac:
1991 create: true
1992 releaseLabel: true
1993 prometheus:
1994 monitor:
1995 enabled: true
1996
1997 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1998 ##
1999 interval: ""
2000
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002001 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2002 ##
2003 sampleLimit: 0
2004
2005 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2006 ##
2007 targetLimit: 0
2008
2009 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2010 ##
2011 labelLimit: 0
2012
2013 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2014 ##
2015 labelNameLengthLimit: 0
2016
2017 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2018 ##
2019 labelValueLengthLimit: 0
2020
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002021 ## Scrape Timeout. If not set, the Prometheus default scrape timeout is used.
2022 ##
2023 scrapeTimeout: ""
2024
2025 ## proxyUrl: URL of a proxy that should be used for scraping.
2026 ##
2027 proxyUrl: ""
2028
2029 # Keep labels from scraped data, overriding server-side labels
2030 ##
2031 honorLabels: true
2032
2033 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2034 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2035 ##
2036 metricRelabelings: []
2037 # - action: keep
2038 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2039 # sourceLabels: [__name__]
2040
2041 ## RelabelConfigs to apply to samples before scraping
2042 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2043 ##
2044 relabelings: []
2045 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2046 # separator: ;
2047 # regex: ^(.*)$
2048 # targetLabel: nodename
2049 # replacement: $1
2050 # action: replace
2051
2052 selfMonitor:
2053 enabled: false
2054
2055## Deploy node exporter as a daemonset to all nodes
2056##
2057nodeExporter:
2058 enabled: true
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002059 operatingSystems:
2060 linux:
2061 enabled: true
2062 darwin:
2063 enabled: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002064
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002065 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2066 ##
2067 forceDeployDashboards: false
2068
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002069## Configuration for prometheus-node-exporter subchart
2070##
2071prometheus-node-exporter:
2072 namespaceOverride: ""
2073 podLabels:
2074 ## Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards
2075 ##
2076 jobLabel: node-exporter
2077 releaseLabel: true
2078 extraArgs:
2079 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2080 - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
2081 service:
2082 portName: http-metrics
2083 prometheus:
2084 monitor:
2085 enabled: true
2086
2087 jobLabel: jobLabel
2088
2089 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2090 ##
2091 interval: ""
2092
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002093 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2094 ##
2095 sampleLimit: 0
2096
2097 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2098 ##
2099 targetLimit: 0
2100
2101 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2102 ##
2103 labelLimit: 0
2104
2105 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2106 ##
2107 labelNameLengthLimit: 0
2108
2109 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2110 ##
2111 labelValueLengthLimit: 0
2112
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002113 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2114 ##
2115 scrapeTimeout: ""
2116
2117 ## proxyUrl: URL of a proxy that should be used for scraping.
2118 ##
2119 proxyUrl: ""
2120
2121 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2122 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2123 ##
2124 metricRelabelings: []
2125 # - sourceLabels: [__name__]
2126 # separator: ;
2127 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2128 # replacement: $1
2129 # action: drop
2130
2131 ## RelabelConfigs to apply to samples before scraping
2132 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
2133 ##
2134 relabelings: []
2135 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2136 # separator: ;
2137 # regex: ^(.*)$
2138 # targetLabel: nodename
2139 # replacement: $1
2140 # action: replace
2141 rbac:
2142 ## If true, create PSPs for node-exporter
2143 ##
2144 pspEnabled: false
2145
2146## Manages Prometheus and Alertmanager components
2147##
2148prometheusOperator:
2149 enabled: true
2150
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002151 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2152 fullnameOverride: ""
2153
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002154 ## Number of old replicasets to retain ##
2155 ## The default value is 10, 0 will garbage-collect old replicasets ##
2156 revisionHistoryLimit: 10
2157
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002158 ## Strategy of the deployment
2159 ##
2160 strategy: {}
2161
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002162 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2163 ##
2164 tls:
2165 enabled: true
2166 # Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants
2167 tlsMinVersion: VersionTLS13
2168 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2169 internalPort: 10250
2170
2171 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2172 ## rules from making their way into prometheus and potentially preventing the container from starting
2173 admissionWebhooks:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002174 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2175 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2176 failurePolicy: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002177 ## The default timeoutSeconds is 10 and the maximum value is 30.
2178 timeoutSeconds: 10
2179 enabled: true
2180 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2181 ## If unspecified, system trust roots on the apiserver are used.
2182 caBundle: ""
2183 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2184 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2185 ## certs ahead of time if you wish.
2186 ##
2187 annotations: {}
2188 # argocd.argoproj.io/hook: PreSync
2189 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002190
2191 namespaceSelector: {}
2192
2193 deployment:
2194 enabled: false
2195
2196 ## Number of replicas
2197 ##
2198 replicas: 1
2199
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002200 ## Strategy of the deployment
2201 ##
2202 strategy: {}
2203
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002204 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2205 podDisruptionBudget: {}
2206 # maxUnavailable: 1
2207 # minAvailable: 1
2208
2209 ## Number of old replicasets to retain ##
2210 ## The default value is 10, 0 will garbage-collect old replicasets ##
2211 revisionHistoryLimit: 10
2212
2213 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2214 ##
2215 tls:
2216 enabled: true
2217 # Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants
2218 tlsMinVersion: VersionTLS13
2219 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2220 internalPort: 10250
2221
2222 ## Service account for Prometheus Operator Webhook to use.
2223 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2224 ##
2225 serviceAccount:
2226 automountServiceAccountToken: false
2227 create: true
2228 name: ""
2229
2230 ## Configuration for Prometheus operator Webhook service
2231 ##
2232 service:
2233 annotations: {}
2234 labels: {}
2235 clusterIP: ""
2236
2237 ## Port to expose on each node
2238 ## Only used if service.type is 'NodePort'
2239 ##
2240 nodePort: 31080
2241
2242 nodePortTls: 31443
2243
2244 ## Additional ports to open for Prometheus operator Webhook service
2245 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2246 ##
2247 additionalPorts: []
2248
2249 ## Loadbalancer IP
2250 ## Only use if service.type is "LoadBalancer"
2251 ##
2252 loadBalancerIP: ""
2253 loadBalancerSourceRanges: []
2254
2255 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2256 ##
2257 externalTrafficPolicy: Cluster
2258
2259 ## Service type
2260 ## NodePort, ClusterIP, LoadBalancer
2261 ##
2262 type: ClusterIP
2263
2264 ## List of IP addresses at which the Prometheus server service is available
2265 ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
2266 ##
2267 externalIPs: []
2268
2269 # ## Labels to add to the operator webhook deployment
2270 # ##
2271 labels: {}
2272
2273 ## Annotations to add to the operator webhook deployment
2274 ##
2275 annotations: {}
2276
2277 ## Labels to add to the operator webhook pod
2278 ##
2279 podLabels: {}
2280
2281 ## Annotations to add to the operator webhook pod
2282 ##
2283 podAnnotations: {}
2284
2285 ## Assign a PriorityClassName to pods if set
2286 # priorityClassName: ""
2287
2288 ## Define Log Format
2289 # Use logfmt (default) or json logging
2290 # logFormat: logfmt
2291
2292 ## Decrease log verbosity to errors only
2293 # logLevel: error
2294
2295 ## Prometheus-operator webhook image
2296 ##
2297 image:
2298 registry: quay.io
2299 repository: prometheus-operator/admission-webhook
2300 # if not set appVersion field from Chart.yaml is used
2301 tag: ""
2302 sha: ""
2303 pullPolicy: IfNotPresent
2304
2305 ## Define Log Format
2306 # Use logfmt (default) or json logging
2307 # logFormat: logfmt
2308
2309 ## Decrease log verbosity to errors only
2310 # logLevel: error
2311
2312
2313 ## Liveness probe
2314 ##
2315 livenessProbe:
2316 enabled: true
2317 failureThreshold: 3
2318 initialDelaySeconds: 30
2319 periodSeconds: 10
2320 successThreshold: 1
2321 timeoutSeconds: 1
2322
2323 ## Readiness probe
2324 ##
2325 readinessProbe:
2326 enabled: true
2327 failureThreshold: 3
2328 initialDelaySeconds: 5
2329 periodSeconds: 10
2330 successThreshold: 1
2331 timeoutSeconds: 1
2332
2333 ## Resource limits & requests
2334 ##
2335 resources: {}
2336 # limits:
2337 # cpu: 200m
2338 # memory: 200Mi
2339 # requests:
2340 # cpu: 100m
2341 # memory: 100Mi
2342
2343 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2344 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2345 ##
2346 hostNetwork: false
2347
2348 ## Define which Nodes the Pods are scheduled on.
2349 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
2350 ##
2351 nodeSelector: {}
2352
2353 ## Tolerations for use with node taints
2354 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2355 ##
2356 tolerations: []
2357 # - key: "key"
2358 # operator: "Equal"
2359 # value: "value"
2360 # effect: "NoSchedule"
2361
2362 ## Assign custom affinity rules to the prometheus operator
2363 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2364 ##
2365 affinity: {}
2366 # nodeAffinity:
2367 # requiredDuringSchedulingIgnoredDuringExecution:
2368 # nodeSelectorTerms:
2369 # - matchExpressions:
2370 # - key: kubernetes.io/e2e-az-name
2371 # operator: In
2372 # values:
2373 # - e2e-az1
2374 # - e2e-az2
2375 dnsConfig: {}
2376 # nameservers:
2377 # - 1.2.3.4
2378 # searches:
2379 # - ns1.svc.cluster-domain.example
2380 # - my.dns.search.suffix
2381 # options:
2382 # - name: ndots
2383 # value: "2"
2384 # - name: edns0
2385 securityContext:
2386 fsGroup: 65534
2387 runAsGroup: 65534
2388 runAsNonRoot: true
2389 runAsUser: 65534
2390 seccompProfile:
2391 type: RuntimeDefault
2392
2393 ## Container-specific security context configuration
2394 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2395 ##
2396 containerSecurityContext:
2397 allowPrivilegeEscalation: false
2398 readOnlyRootFilesystem: true
2399 capabilities:
2400 drop:
2401 - ALL
2402
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002403 ## If false then the user will opt out of automounting API credentials.
2404 ##
2405 automountServiceAccountToken: true
2406
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002407 patch:
2408 enabled: true
2409 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002410 registry: registry.k8s.io
2411 repository: ingress-nginx/kube-webhook-certgen
2412 tag: v20221220-controller-v1.5.1-58-g787ea74b6
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002413 sha: ""
2414 pullPolicy: IfNotPresent
2415 resources: {}
2416 ## Provide a priority class name to the webhook patching job
2417 ##
2418 priorityClassName: ""
2419 annotations: {}
2420 # argocd.argoproj.io/hook: PreSync
2421 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2422 podAnnotations: {}
2423 nodeSelector: {}
2424 affinity: {}
2425 tolerations: []
2426
2427 ## SecurityContext holds pod-level security attributes and common container settings.
2428 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2429 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2430 ##
2431 securityContext:
2432 runAsGroup: 2000
2433 runAsNonRoot: true
2434 runAsUser: 2000
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002435 seccompProfile:
2436 type: RuntimeDefault
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002437
2438 # Security context for create job container
2439 createSecretJob:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002440 securityContext:
2441 allowPrivilegeEscalation: false
2442 readOnlyRootFilesystem: true
2443 capabilities:
2444 drop:
2445 - ALL
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002446
2447 # Security context for patch job container
2448 patchWebhookJob:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002449 securityContext:
2450 allowPrivilegeEscalation: false
2451 readOnlyRootFilesystem: true
2452 capabilities:
2453 drop:
2454 - ALL
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002455
2456 # Use certmanager to generate webhook certs
2457 certManager:
2458 enabled: false
2459 # self-signed root certificate
2460 rootCert:
2461 duration: "" # default to be 5y
2462 admissionCert:
2463 duration: "" # default to be 1y
2464 # issuerRef:
2465 # name: "issuer"
2466 # kind: "ClusterIssuer"
2467
2468 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2469 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
2470 ##
2471 namespaces: {}
2472 # releaseNamespace: true
2473 # additional:
2474 # - kube-system
2475
2476 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
2477 ##
2478 denyNamespaces: []
2479
2480 ## Filter namespaces to look for prometheus-operator custom resources
2481 ##
2482 alertmanagerInstanceNamespaces: []
2483 alertmanagerConfigNamespaces: []
2484 prometheusInstanceNamespaces: []
2485 thanosRulerInstanceNamespaces: []
2486
2487 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
2488 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
2489 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
2490 ##
2491 # clusterDomain: "cluster.local"
2492
2493 networkPolicy:
2494 ## Enable creation of NetworkPolicy resources.
2495 ##
2496 enabled: false
2497
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002498 ## Flavor of the network policy to use.
2499 # Can be:
2500 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
2501 # * cilium for cilium.io/v2/CiliumNetworkPolicy
2502 flavor: kubernetes
2503
2504 # cilium:
2505 # egress:
2506
2507 ## match labels used in selector
2508 # matchLabels: {}
2509
2510 ## Service account for Prometheus Operator to use.
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002511 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2512 ##
2513 serviceAccount:
2514 create: true
2515 name: ""
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002516 automountServiceAccountToken: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002517
2518 ## Configuration for Prometheus operator service
2519 ##
2520 service:
2521 annotations: {}
2522 labels: {}
2523 clusterIP: ""
2524
2525 ## Port to expose on each node
2526 ## Only used if service.type is 'NodePort'
2527 ##
2528 nodePort: 30080
2529
2530 nodePortTls: 30443
2531
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002532 ## Additional ports to open for Prometheus operator service
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002533 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2534 ##
2535 additionalPorts: []
2536
2537 ## Loadbalancer IP
2538 ## Only use if service.type is "LoadBalancer"
2539 ##
2540 loadBalancerIP: ""
2541 loadBalancerSourceRanges: []
2542
2543 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2544 ##
2545 externalTrafficPolicy: Cluster
2546
2547 ## Service type
2548 ## NodePort, ClusterIP, LoadBalancer
2549 ##
2550 type: ClusterIP
2551
2552 ## List of IP addresses at which the Prometheus server service is available
2553 ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
2554 ##
2555 externalIPs: []
2556
2557 # ## Labels to add to the operator deployment
2558 # ##
2559 labels: {}
2560
2561 ## Annotations to add to the operator deployment
2562 ##
2563 annotations: {}
2564
2565 ## Labels to add to the operator pod
2566 ##
2567 podLabels: {}
2568
2569 ## Annotations to add to the operator pod
2570 ##
2571 podAnnotations: {}
2572
2573 ## Assign a PriorityClassName to pods if set
2574 # priorityClassName: ""
2575
2576 ## Define Log Format
2577 # Use logfmt (default) or json logging
2578 # logFormat: logfmt
2579
2580 ## Decrease log verbosity to errors only
2581 # logLevel: error
2582
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002583 kubeletService:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002584 ## If true, the operator will create and maintain a service for scraping kubelets
2585 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
2586 ##
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002587 enabled: true
2588 namespace: kube-system
2589 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
2590 name: ""
2591
2592 ## Create a servicemonitor for the operator
2593 ##
2594 serviceMonitor:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002595 ## If true, create a serviceMonitor for prometheus operator
2596 ##
2597 selfMonitor: true
2598
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002599 ## Labels for ServiceMonitor
2600 additionalLabels: {}
2601
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002602 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2603 ##
2604 interval: ""
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002605
2606 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2607 ##
2608 sampleLimit: 0
2609
2610 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2611 ##
2612 targetLimit: 0
2613
2614 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2615 ##
2616 labelLimit: 0
2617
2618 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2619 ##
2620 labelNameLengthLimit: 0
2621
2622 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2623 ##
2624 labelValueLengthLimit: 0
2625
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002626 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
2627 scrapeTimeout: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002628
2629 ## Metric relabel configs to apply to samples before ingestion.
2630 ##
2631 metricRelabelings: []
2632 # - action: keep
2633 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2634 # sourceLabels: [__name__]
2635
2636 # relabel configs to apply to samples before ingestion.
2637 ##
2638 relabelings: []
2639 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2640 # separator: ;
2641 # regex: ^(.*)$
2642 # targetLabel: nodename
2643 # replacement: $1
2644 # action: replace
2645
2646 ## Resource limits & requests
2647 ##
2648 resources: {}
2649 # limits:
2650 # cpu: 200m
2651 # memory: 200Mi
2652 # requests:
2653 # cpu: 100m
2654 # memory: 100Mi
2655
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002656 ## Operator Environment
2657 ## env:
2658 ## VARIABLE: value
2659 env:
2660 GOGC: "30"
2661
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002662 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2663 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2664 ##
2665 hostNetwork: false
2666
2667 ## Define which Nodes the Pods are scheduled on.
2668 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
2669 ##
2670 nodeSelector: {}
2671
2672 ## Tolerations for use with node taints
2673 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2674 ##
2675 tolerations: []
2676 # - key: "key"
2677 # operator: "Equal"
2678 # value: "value"
2679 # effect: "NoSchedule"
2680
2681 ## Assign custom affinity rules to the prometheus operator
2682 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2683 ##
2684 affinity: {}
2685 # nodeAffinity:
2686 # requiredDuringSchedulingIgnoredDuringExecution:
2687 # nodeSelectorTerms:
2688 # - matchExpressions:
2689 # - key: kubernetes.io/e2e-az-name
2690 # operator: In
2691 # values:
2692 # - e2e-az1
2693 # - e2e-az2
2694 dnsConfig: {}
2695 # nameservers:
2696 # - 1.2.3.4
2697 # searches:
2698 # - ns1.svc.cluster-domain.example
2699 # - my.dns.search.suffix
2700 # options:
2701 # - name: ndots
2702 # value: "2"
2703 # - name: edns0
2704 securityContext:
2705 fsGroup: 65534
2706 runAsGroup: 65534
2707 runAsNonRoot: true
2708 runAsUser: 65534
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002709 seccompProfile:
2710 type: RuntimeDefault
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002711
2712 ## Container-specific security context configuration
2713 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2714 ##
2715 containerSecurityContext:
2716 allowPrivilegeEscalation: false
2717 readOnlyRootFilesystem: true
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002718 capabilities:
2719 drop:
2720 - ALL
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002721
2722 # Enable vertical pod autoscaler support for prometheus-operator
2723 verticalPodAutoscaler:
2724 enabled: false
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002725
2726 # Recommender responsible for generating recommendation for the object.
2727 # List should be empty (then the default recommender will generate the recommendation)
2728 # or contain exactly one recommender.
2729 # recommenders:
2730 # - name: custom-recommender-performance
2731
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002732 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
2733 controlledResources: []
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002734 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
2735 # controlledValues: RequestsAndLimits
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002736
2737 # Define the max allowed resources for the pod
2738 maxAllowed: {}
2739 # cpu: 200m
2740 # memory: 100Mi
2741 # Define the min allowed resources for the pod
2742 minAllowed: {}
2743 # cpu: 200m
2744 # memory: 100Mi
2745
2746 updatePolicy:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002747 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
2748 # minReplicas: 1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002749 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
2750 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
2751 updateMode: Auto
2752
2753 ## Prometheus-operator image
2754 ##
2755 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002756 registry: quay.io
2757 repository: prometheus-operator/prometheus-operator
2758 # if not set appVersion field from Chart.yaml is used
2759 tag: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002760 sha: ""
2761 pullPolicy: IfNotPresent
2762
2763 ## Prometheus image to use for prometheuses managed by the operator
2764 ##
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002765 # prometheusDefaultBaseImage: prometheus/prometheus
2766
2767 ## Prometheus image registry to use for prometheuses managed by the operator
2768 ##
2769 # prometheusDefaultBaseImageRegistry: quay.io
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002770
2771 ## Alertmanager image to use for alertmanagers managed by the operator
2772 ##
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002773 # alertmanagerDefaultBaseImage: prometheus/alertmanager
2774
2775 ## Alertmanager image registry to use for alertmanagers managed by the operator
2776 ##
2777 # alertmanagerDefaultBaseImageRegistry: quay.io
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002778
2779 ## Prometheus-config-reloader
2780 ##
2781 prometheusConfigReloader:
2782 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002783 registry: quay.io
2784 repository: prometheus-operator/prometheus-config-reloader
2785 # if not set appVersion field from Chart.yaml is used
2786 tag: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002787 sha: ""
2788
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002789 # add prometheus config reloader liveness and readiness probe. Default: false
2790 enableProbe: false
2791
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002792 # resource config for prometheusConfigReloader
Mohammed Naser91e2fa02024-02-23 01:46:39 -05002793 resources: {}
2794 # requests:
2795 # cpu: 200m
2796 # memory: 50Mi
2797 # limits:
2798 # cpu: 200m
2799 # memory: 50Mi
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002800
2801 ## Thanos side-car image when configured
2802 ##
2803 thanosImage:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002804 registry: quay.io
2805 repository: thanos/thanos
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002806 tag: v0.34.1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002807 sha: ""
2808
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002809 ## Set a Label Selector to filter watched prometheus and prometheusAgent
2810 ##
2811 prometheusInstanceSelector: ""
2812
2813 ## Set a Label Selector to filter watched alertmanager
2814 ##
2815 alertmanagerInstanceSelector: ""
2816
2817 ## Set a Label Selector to filter watched thanosRuler
2818 thanosRulerInstanceSelector: ""
2819
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002820 ## Set a Field Selector to filter watched secrets
2821 ##
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002822 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=kubernetes.io/service-account-token,type!=helm.sh/release.v1"
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002823
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002824 ## If false then the user will opt out of automounting API credentials.
2825 ##
2826 automountServiceAccountToken: true
2827
2828 ## Additional volumes
2829 ##
2830 extraVolumes: []
2831
2832 ## Additional volume mounts
2833 ##
2834 extraVolumeMounts: []
2835
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002836## Deploy a Prometheus instance
2837##
2838prometheus:
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002839 enabled: true
2840
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002841 ## Toggle prometheus into agent mode
2842 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
2843 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/designs/prometheus-agent.md
2844 ##
2845 agentMode: false
2846
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002847 ## Annotations for Prometheus
2848 ##
2849 annotations: {}
2850
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002851 ## Configure network policy for the prometheus
2852 networkPolicy:
2853 enabled: false
2854
2855 ## Flavor of the network policy to use.
2856 # Can be:
2857 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
2858 # * cilium for cilium.io/v2/CiliumNetworkPolicy
2859 flavor: kubernetes
2860
2861 # cilium:
2862 # endpointSelector:
2863 # egress:
2864 # ingress:
2865
2866 # egress:
2867 # - {}
2868 # ingress:
2869 # - {}
2870 # podSelector:
2871 # matchLabels:
2872 # app: prometheus
2873
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002874 ## Service account for Prometheuses to use.
2875 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2876 ##
2877 serviceAccount:
2878 create: true
2879 name: ""
2880 annotations: {}
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002881 automountServiceAccountToken: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002882
2883 # Service for thanos service discovery on sidecar
2884 # Enable this can make Thanos Query can use
2885 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
2886 # Thanos sidecar on prometheus nodes
2887 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
2888 thanosService:
2889 enabled: false
2890 annotations: {}
2891 labels: {}
2892
2893 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2894 ##
2895 externalTrafficPolicy: Cluster
2896
2897 ## Service type
2898 ##
2899 type: ClusterIP
2900
2901 ## gRPC port config
2902 portName: grpc
2903 port: 10901
2904 targetPort: "grpc"
2905
2906 ## HTTP port config (for metrics)
2907 httpPortName: http
2908 httpPort: 10902
2909 targetHttpPort: "http"
2910
2911 ## ClusterIP to assign
2912 # Default is to make this a headless service ("None")
2913 clusterIP: "None"
2914
2915 ## Port to expose on each node, if service type is NodePort
2916 ##
2917 nodePort: 30901
2918 httpNodePort: 30902
2919
2920 # ServiceMonitor to scrape Sidecar metrics
2921 # Needs thanosService to be enabled as well
2922 thanosServiceMonitor:
2923 enabled: false
2924 interval: ""
2925
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04002926 ## Additional labels
2927 ##
2928 additionalLabels: {}
2929
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002930 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
2931 scheme: ""
2932
2933 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
2934 ## Of type: https://github.com/coreos/prometheus-operator/blob/main/Documentation/api.md#tlsconfig
2935 tlsConfig: {}
2936
2937 bearerTokenFile:
2938
2939 ## Metric relabel configs to apply to samples before ingestion.
2940 metricRelabelings: []
2941
2942 ## relabel configs to apply to samples before ingestion.
2943 relabelings: []
2944
2945 # Service for external access to sidecar
2946 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
2947 thanosServiceExternal:
2948 enabled: false
2949 annotations: {}
2950 labels: {}
2951 loadBalancerIP: ""
2952 loadBalancerSourceRanges: []
2953
2954 ## gRPC port config
2955 portName: grpc
2956 port: 10901
2957 targetPort: "grpc"
2958
2959 ## HTTP port config (for metrics)
2960 httpPortName: http
2961 httpPort: 10902
2962 targetHttpPort: "http"
2963
2964 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2965 ##
2966 externalTrafficPolicy: Cluster
2967
2968 ## Service type
2969 ##
2970 type: LoadBalancer
2971
2972 ## Port to expose on each node
2973 ##
2974 nodePort: 30901
2975 httpNodePort: 30902
2976
2977 ## Configuration for Prometheus service
2978 ##
2979 service:
2980 annotations: {}
2981 labels: {}
2982 clusterIP: ""
2983
2984 ## Port for Prometheus Service to listen on
2985 ##
2986 port: 9090
2987
2988 ## To be used with a proxy extraContainer port
2989 targetPort: 9090
2990
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03002991 ## Port for Prometheus Reloader to listen on
2992 ##
2993 reloaderWebPort: 8080
2994
Mohammed Naser9ad0d462023-01-15 20:36:37 -05002995 ## List of IP addresses at which the Prometheus server service is available
2996 ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
2997 ##
2998 externalIPs: []
2999
3000 ## Port to expose on each node
3001 ## Only used if service.type is 'NodePort'
3002 ##
3003 nodePort: 30090
3004
3005 ## Loadbalancer IP
3006 ## Only use if service.type is "LoadBalancer"
3007 loadBalancerIP: ""
3008 loadBalancerSourceRanges: []
3009
3010 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3011 ##
3012 externalTrafficPolicy: Cluster
3013
3014 ## Service type
3015 ##
3016 type: ClusterIP
3017
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003018 ## Additional ports to open for Prometheus service
3019 ##
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003020 additionalPorts: []
3021 # additionalPorts:
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003022 # - name: oauth-proxy
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003023 # port: 8081
3024 # targetPort: 8081
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003025 # - name: oauth-metrics
3026 # port: 8082
3027 # targetPort: 8082
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003028
3029 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3030 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3031 publishNotReadyAddresses: false
3032
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003033 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3034 ## Accepts 'ClientIP' or 'None'
3035 ##
3036 sessionAffinity: None
3037
3038 ## If you want to modify the ClientIP sessionAffinity timeout
3039 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3040 ##
3041 sessionAffinityConfig:
3042 clientIP:
3043 timeoutSeconds: 10800
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003044
3045 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3046 ##
3047 servicePerReplica:
3048 enabled: false
3049 annotations: {}
3050
3051 ## Port for Prometheus Service per replica to listen on
3052 ##
3053 port: 9090
3054
3055 ## To be used with a proxy extraContainer port
3056 targetPort: 9090
3057
3058 ## Port to expose on each node
3059 ## Only used if servicePerReplica.type is 'NodePort'
3060 ##
3061 nodePort: 30091
3062
3063 ## Loadbalancer source IP ranges
3064 ## Only used if servicePerReplica.type is "LoadBalancer"
3065 loadBalancerSourceRanges: []
3066
3067 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3068 ##
3069 externalTrafficPolicy: Cluster
3070
3071 ## Service type
3072 ##
3073 type: ClusterIP
3074
3075 ## Configure pod disruption budgets for Prometheus
3076 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003077 ##
3078 podDisruptionBudget:
3079 enabled: false
3080 minAvailable: 1
3081 maxUnavailable: ""
3082
3083 # Ingress exposes thanos sidecar outside the cluster
3084 thanosIngress:
3085 enabled: false
3086
3087 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
3088 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
3089 # ingressClassName: nginx
3090
3091 annotations: {}
3092 labels: {}
3093 servicePort: 10901
3094
3095 ## Port to expose on each node
3096 ## Only used if service.type is 'NodePort'
3097 ##
3098 nodePort: 30901
3099
3100 ## Hosts must be provided if Ingress is enabled.
3101 ##
3102 hosts: []
3103 # - thanos-gateway.domain.com
3104
3105 ## Paths to use for ingress rules
3106 ##
3107 paths: []
3108 # - /
3109
3110 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3111 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3112 # pathType: ImplementationSpecific
3113
3114 ## TLS configuration for Thanos Ingress
3115 ## Secret must be manually created in the namespace
3116 ##
3117 tls: []
3118 # - secretName: thanos-gateway-tls
3119 # hosts:
3120 # - thanos-gateway.domain.com
3121 #
3122
3123 ## ExtraSecret can be used to store various data in an extra secret
3124 ## (use it for example to store hashed basic auth credentials)
3125 extraSecret:
3126 ## if not set, name will be auto generated
3127 # name: ""
3128 annotations: {}
3129 data: {}
3130 # auth: |
3131 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3132 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3133
3134 ingress:
3135 enabled: false
3136
3137 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
3138 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
3139 # ingressClassName: nginx
3140
3141 annotations: {}
3142 labels: {}
3143
3144 ## Redirect ingress to an additional defined port on the service
3145 # servicePort: 8081
3146
3147 ## Hostnames.
3148 ## Must be provided if Ingress is enabled.
3149 ##
3150 # hosts:
3151 # - prometheus.domain.com
3152 hosts: []
3153
3154 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3155 ##
3156 paths: []
3157 # - /
3158
3159 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3160 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3161 # pathType: ImplementationSpecific
3162
3163 ## TLS configuration for Prometheus Ingress
3164 ## Secret must be manually created in the namespace
3165 ##
3166 tls: []
3167 # - secretName: prometheus-general-tls
3168 # hosts:
3169 # - prometheus.example.com
3170
3171 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3172 ## prometheus.servicePerReplica must be enabled
3173 ##
3174 ingressPerReplica:
3175 enabled: false
3176
3177 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
3178 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
3179 # ingressClassName: nginx
3180
3181 annotations: {}
3182 labels: {}
3183
3184 ## Final form of the hostname for each per replica ingress is
3185 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3186 ##
3187 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3188 ## appended to the end
3189 hostPrefix: ""
3190 ## Domain that will be used for the per replica ingress
3191 hostDomain: ""
3192
3193 ## Paths to use for ingress rules
3194 ##
3195 paths: []
3196 # - /
3197
3198 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3199 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3200 # pathType: ImplementationSpecific
3201
3202 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3203 ## Secret must be manually created in the namespace
3204 tlsSecretName: ""
3205
3206 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3207 ##
3208 tlsSecretPerReplica:
3209 enabled: false
3210 ## Final form of the secret for each per replica ingress is
3211 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3212 ##
3213 prefix: "prometheus"
3214
3215 ## Configure additional options for default pod security policy for Prometheus
3216 ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
3217 podSecurityPolicy:
3218 allowedCapabilities: []
3219 allowedHostPaths: []
3220 volumes: []
3221
3222 serviceMonitor:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03003223 ## If true, create a serviceMonitor for prometheus
3224 ##
3225 selfMonitor: true
3226
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003227 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3228 ##
3229 interval: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003230
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003231 ## Additional labels
3232 ##
3233 additionalLabels: {}
3234
3235 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3236 ##
3237 sampleLimit: 0
3238
3239 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3240 ##
3241 targetLimit: 0
3242
3243 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3244 ##
3245 labelLimit: 0
3246
3247 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3248 ##
3249 labelNameLengthLimit: 0
3250
3251 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3252 ##
3253 labelValueLengthLimit: 0
3254
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003255 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3256 scheme: ""
3257
3258 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3259 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#tlsconfig
3260 tlsConfig: {}
3261
3262 bearerTokenFile:
3263
3264 ## Metric relabel configs to apply to samples before ingestion.
3265 ##
3266 metricRelabelings: []
3267 # - action: keep
3268 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3269 # sourceLabels: [__name__]
3270
3271 # relabel configs to apply to samples before ingestion.
3272 ##
3273 relabelings: []
3274 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3275 # separator: ;
3276 # regex: ^(.*)$
3277 # targetLabel: nodename
3278 # replacement: $1
3279 # action: replace
3280
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003281 ## Additional Endpoints
3282 ##
3283 additionalEndpoints: []
3284 # - port: oauth-metrics
3285 # path: /metrics
3286
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003287 ## Settings affecting prometheusSpec
3288 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheusspec
3289 ##
3290 prometheusSpec:
3291 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3292 ##
3293 disableCompaction: false
3294 ## APIServerConfig
3295 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#apiserverconfig
3296 ##
3297 apiserverConfig: {}
3298
3299 ## Allows setting additional arguments for the Prometheus container
3300 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.Prometheus
3301 additionalArgs: []
3302
3303 ## Interval between consecutive scrapes.
3304 ## Defaults to 30s.
3305 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3306 ##
3307 scrapeInterval: ""
3308
3309 ## Number of seconds to wait for target to respond before erroring
3310 ##
3311 scrapeTimeout: ""
3312
3313 ## Interval between consecutive evaluations.
3314 ##
3315 evaluationInterval: ""
3316
3317 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3318 ##
3319 listenLocal: false
3320
3321 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3322 ## This is disabled by default.
3323 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3324 ##
3325 enableAdminAPI: false
3326
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003327 ## Sets version of Prometheus overriding the Prometheus version as derived
3328 ## from the image tag. Useful in cases where the tag does not follow semver v2.
3329 version: ""
3330
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003331 ## WebTLSConfig defines the TLS parameters for HTTPS
3332 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#webtlsconfig
3333 web: {}
3334
3335 ## Exemplars related settings that are runtime reloadable.
3336 ## It requires to enable the exemplar storage feature to be effective.
3337 exemplars: ""
3338 ## Maximum number of exemplars stored in memory for all series.
3339 ## If not set, Prometheus uses its default value.
3340 ## A value of zero or less than zero disables the storage.
3341 # maxSize: 100000
3342
3343 # EnableFeatures API enables access to Prometheus disabled features.
3344 # ref: https://prometheus.io/docs/prometheus/latest/disabled_features/
3345 enableFeatures: []
3346 # - exemplar-storage
3347
3348 ## Image of Prometheus.
3349 ##
3350 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003351 registry: quay.io
3352 repository: prometheus/prometheus
vexxhost-botfb50c1c2024-04-24 13:05:27 -04003353 tag: v2.51.2
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003354 sha: ""
3355
3356 ## Tolerations for use with node taints
3357 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3358 ##
3359 tolerations: []
3360 # - key: "key"
3361 # operator: "Equal"
3362 # value: "value"
3363 # effect: "NoSchedule"
3364
3365 ## If specified, the pod's topology spread constraints.
3366 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
3367 ##
3368 topologySpreadConstraints: []
3369 # - maxSkew: 1
3370 # topologyKey: topology.kubernetes.io/zone
3371 # whenUnsatisfiable: DoNotSchedule
3372 # labelSelector:
3373 # matchLabels:
3374 # app: prometheus
3375
3376 ## Alertmanagers to which alerts will be sent
3377 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#alertmanagerendpoints
3378 ##
3379 ## Default configuration will connect to the alertmanager deployed as part of this release
3380 ##
3381 alertingEndpoints: []
3382 # - name: ""
3383 # namespace: ""
3384 # port: http
3385 # scheme: http
3386 # pathPrefix: ""
3387 # tlsConfig: {}
3388 # bearerTokenFile: ""
3389 # apiVersion: v2
3390
3391 ## External labels to add to any time series or alerts when communicating with external systems
3392 ##
3393 externalLabels: {}
3394
3395 ## enable --web.enable-remote-write-receiver flag on prometheus-server
3396 ##
3397 enableRemoteWriteReceiver: false
3398
3399 ## Name of the external label used to denote replica name
3400 ##
3401 replicaExternalLabelName: ""
3402
3403 ## If true, the Operator won't add the external label used to denote replica name
3404 ##
3405 replicaExternalLabelNameClear: false
3406
3407 ## Name of the external label used to denote Prometheus instance name
3408 ##
3409 prometheusExternalLabelName: ""
3410
3411 ## If true, the Operator won't add the external label used to denote Prometheus instance name
3412 ##
3413 prometheusExternalLabelNameClear: false
3414
3415 ## External URL at which Prometheus will be reachable.
3416 ##
3417 externalUrl: ""
3418
3419 ## Define which Nodes the Pods are scheduled on.
3420 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
3421 ##
3422 nodeSelector: {}
3423
3424 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3425 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
3426 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
3427 ## with the new list of secrets.
3428 ##
3429 secrets: []
3430
3431 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3432 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
3433 ##
3434 configMaps: []
3435
3436 ## QuerySpec defines the query command line flags when starting Prometheus.
3437 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#queryspec
3438 ##
3439 query: {}
3440
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003441 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003442 ruleNamespaceSelector: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003443 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
3444 # ruleNamespaceSelector:
3445 # matchLabels:
3446 # prometheus: somelabel
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003447
3448 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
3449 ## prometheus resource to be created with selectors based on values in the helm deployment,
3450 ## which will also match the PrometheusRule resources created
3451 ##
3452 ruleSelectorNilUsesHelmValues: true
3453
3454 ## PrometheusRules to be selected for target discovery.
3455 ## If {}, select all PrometheusRules
3456 ##
3457 ruleSelector: {}
3458 ## Example which select all PrometheusRules resources
3459 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
3460 # ruleSelector:
3461 # matchExpressions:
3462 # - key: prometheus
3463 # operator: In
3464 # values:
3465 # - example-rules
3466 # - example-rules-2
3467 #
3468 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
3469 # ruleSelector:
3470 # matchLabels:
3471 # role: example-rules
3472
3473 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
3474 ## prometheus resource to be created with selectors based on values in the helm deployment,
3475 ## which will also match the servicemonitors created
3476 ##
3477 serviceMonitorSelectorNilUsesHelmValues: true
3478
3479 ## ServiceMonitors to be selected for target discovery.
3480 ## If {}, select all ServiceMonitors
3481 ##
3482 serviceMonitorSelector: {}
3483 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
3484 # serviceMonitorSelector:
3485 # matchLabels:
3486 # prometheus: somelabel
3487
3488 ## Namespaces to be selected for ServiceMonitor discovery.
3489 ##
3490 serviceMonitorNamespaceSelector: {}
3491 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
3492 # serviceMonitorNamespaceSelector:
3493 # matchLabels:
3494 # prometheus: somelabel
3495
3496 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
3497 ## prometheus resource to be created with selectors based on values in the helm deployment,
3498 ## which will also match the podmonitors created
3499 ##
3500 podMonitorSelectorNilUsesHelmValues: true
3501
3502 ## PodMonitors to be selected for target discovery.
3503 ## If {}, select all PodMonitors
3504 ##
3505 podMonitorSelector: {}
3506 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
3507 # podMonitorSelector:
3508 # matchLabels:
3509 # prometheus: somelabel
3510
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003511 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003512 podMonitorNamespaceSelector: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003513 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
3514 # podMonitorNamespaceSelector:
3515 # matchLabels:
3516 # prometheus: somelabel
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003517
3518 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
3519 ## prometheus resource to be created with selectors based on values in the helm deployment,
3520 ## which will also match the probes created
3521 ##
3522 probeSelectorNilUsesHelmValues: true
3523
3524 ## Probes to be selected for target discovery.
3525 ## If {}, select all Probes
3526 ##
3527 probeSelector: {}
3528 ## Example which selects Probes with label "prometheus" set to "somelabel"
3529 # probeSelector:
3530 # matchLabels:
3531 # prometheus: somelabel
3532
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003533 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003534 probeNamespaceSelector: {}
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003535 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
3536 # probeNamespaceSelector:
3537 # matchLabels:
3538 # prometheus: somelabel
3539
3540 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
3541 ## prometheus resource to be created with selectors based on values in the helm deployment,
3542 ## which will also match the scrapeConfigs created
3543 ##
3544 scrapeConfigSelectorNilUsesHelmValues: true
3545
3546 ## scrapeConfigs to be selected for target discovery.
3547 ## If {}, select all scrapeConfigs
3548 ##
3549 scrapeConfigSelector: {}
3550 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003551 # scrapeConfigSelector:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003552 # matchLabels:
3553 # prometheus: somelabel
3554
3555 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
3556 scrapeConfigNamespaceSelector: {}
3557 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
3558 # scrapeConfigNamespaceSelector:
3559 # matchLabels:
3560 # prometheus: somelabel
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003561
3562 ## How long to retain metrics
3563 ##
3564 retention: 10d
3565
3566 ## Maximum size of metrics
3567 ##
3568 retentionSize: ""
3569
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003570 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
3571 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
3572 tsdb:
3573 outOfOrderTimeWindow: 0s
3574
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003575 ## Enable compression of the write-ahead log using Snappy.
3576 ##
3577 walCompression: true
3578
3579 ## If true, the Operator won't process any Prometheus configuration changes
3580 ##
3581 paused: false
3582
3583 ## Number of replicas of each shard to deploy for a Prometheus deployment.
3584 ## Number of replicas multiplied by shards is the total number of Pods created.
3585 ##
3586 replicas: 1
3587
3588 ## EXPERIMENTAL: Number of shards to distribute targets onto.
3589 ## Number of replicas multiplied by shards is the total number of Pods created.
3590 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
3591 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
3592 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
3593 ## Sharding is done on the content of the `__address__` target meta-label.
3594 ##
3595 shards: 1
3596
3597 ## Log level for Prometheus be configured in
3598 ##
3599 logLevel: info
3600
3601 ## Log format for Prometheus be configured in
3602 ##
3603 logFormat: logfmt
3604
3605 ## Prefix used to register routes, overriding externalUrl route.
3606 ## Useful for proxies that rewrite URLs.
3607 ##
3608 routePrefix: /
3609
3610 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
3611 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
3612 ##
3613 podMetadata: {}
3614 # labels:
3615 # app: prometheus
3616 # k8s-app: prometheus
3617
3618 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
3619 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
3620 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
3621 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
3622 podAntiAffinity: ""
3623
3624 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
3625 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
3626 ##
3627 podAntiAffinityTopologyKey: kubernetes.io/hostname
3628
3629 ## Assign custom affinity rules to the prometheus instance
3630 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
3631 ##
3632 affinity: {}
3633 # nodeAffinity:
3634 # requiredDuringSchedulingIgnoredDuringExecution:
3635 # nodeSelectorTerms:
3636 # - matchExpressions:
3637 # - key: kubernetes.io/e2e-az-name
3638 # operator: In
3639 # values:
3640 # - e2e-az1
3641 # - e2e-az2
3642
3643 ## The remote_read spec configuration for Prometheus.
3644 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#remotereadspec
3645 remoteRead: []
3646 # - url: http://remote1/read
3647 ## additionalRemoteRead is appended to remoteRead
3648 additionalRemoteRead: []
3649
3650 ## The remote_write spec configuration for Prometheus.
3651 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#remotewritespec
3652 remoteWrite: []
3653 # - url: http://remote1/push
3654 ## additionalRemoteWrite is appended to remoteWrite
3655 additionalRemoteWrite: []
3656
3657 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
3658 remoteWriteDashboards: false
3659
3660 ## Resource limits & requests
3661 ##
3662 resources: {}
3663 # requests:
3664 # memory: 400Mi
3665
3666 ## Prometheus StorageSpec for persistent data
3667 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/storage.md
3668 ##
3669 storageSpec: {}
3670 ## Using PersistentVolumeClaim
3671 ##
3672 # volumeClaimTemplate:
3673 # spec:
3674 # storageClassName: gluster
3675 # accessModes: ["ReadWriteOnce"]
3676 # resources:
3677 # requests:
3678 # storage: 50Gi
3679 # selector: {}
3680
3681 ## Using tmpfs volume
3682 ##
3683 # emptyDir:
3684 # medium: Memory
3685
3686 # Additional volumes on the output StatefulSet definition.
3687 volumes: []
3688
3689 # Additional VolumeMounts on the output StatefulSet definition.
3690 volumeMounts: []
3691
3692 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
3693 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
3694 ## as specified in the official Prometheus documentation:
3695 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
3696 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
3697 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
3698 ## scrape configs are going to break Prometheus after the upgrade.
3699 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
3700 ##
3701 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
3702 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
3703 ##
3704 additionalScrapeConfigs: []
3705 # - job_name: kube-etcd
3706 # kubernetes_sd_configs:
3707 # - role: node
3708 # scheme: https
3709 # tls_config:
3710 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
3711 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
3712 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
3713 # relabel_configs:
3714 # - action: labelmap
3715 # regex: __meta_kubernetes_node_label_(.+)
3716 # - source_labels: [__address__]
3717 # action: replace
3718 # targetLabel: __address__
3719 # regex: ([^:;]+):(\d+)
3720 # replacement: ${1}:2379
3721 # - source_labels: [__meta_kubernetes_node_name]
3722 # action: keep
3723 # regex: .*mst.*
3724 # - source_labels: [__meta_kubernetes_node_name]
3725 # action: replace
3726 # targetLabel: node
3727 # regex: (.*)
3728 # replacement: ${1}
3729 # metric_relabel_configs:
3730 # - regex: (kubernetes_io_hostname|failure_domain_beta_kubernetes_io_region|beta_kubernetes_io_os|beta_kubernetes_io_arch|beta_kubernetes_io_instance_type|failure_domain_beta_kubernetes_io_zone)
3731 # action: labeldrop
3732 #
3733 ## If scrape config contains a repetitive section, you may want to use a template.
3734 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
3735 # additionalScrapeConfigs: |
3736 # - job_name: "node-exporter"
3737 # gce_sd_configs:
3738 # {{range $zone := .Values.gcp_zones}}
3739 # - project: "project1"
3740 # zone: "{{$zone}}"
3741 # port: 9100
3742 # {{end}}
3743 # relabel_configs:
3744 # ...
3745
3746
3747 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
3748 ## Expected values are the secret name and key
3749 ## Cannot be used with additionalScrapeConfigs
3750 additionalScrapeConfigsSecret: {}
3751 # enabled: false
3752 # name:
3753 # key:
3754
3755 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
3756 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
3757 additionalPrometheusSecretsAnnotations: {}
3758
3759 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
3760 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#<alertmanager_config>.
3761 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
3762 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
3763 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
3764 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
3765 ##
3766 additionalAlertManagerConfigs: []
3767 # - consul_sd_configs:
3768 # - server: consul.dev.test:8500
3769 # scheme: http
3770 # datacenter: dev
3771 # tag_separator: ','
3772 # services:
3773 # - metrics-prometheus-alertmanager
3774
3775 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
3776 ## them separately from the helm deployment, you can use this section.
3777 ## Expected values are the secret name and key
3778 ## Cannot be used with additionalAlertManagerConfigs
3779 additionalAlertManagerConfigsSecret: {}
3780 # name:
3781 # key:
3782 # optional: false
3783
3784 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
3785 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
3786 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
3787 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
3788 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
3789 ## configs are going to break Prometheus after the upgrade.
3790 ##
3791 additionalAlertRelabelConfigs: []
3792 # - separator: ;
3793 # regex: prometheus_replica
3794 # replacement: $1
3795 # action: labeldrop
3796
3797 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
3798 ## them separately from the helm deployment, you can use this section.
3799 ## Expected values are the secret name and key
3800 ## Cannot be used with additionalAlertRelabelConfigs
3801 additionalAlertRelabelConfigsSecret: {}
3802 # name:
3803 # key:
3804
3805 ## SecurityContext holds pod-level security attributes and common container settings.
3806 ## This defaults to non root user with uid 1000 and gid 2000.
3807 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md
3808 ##
3809 securityContext:
3810 runAsGroup: 2000
3811 runAsNonRoot: true
3812 runAsUser: 1000
3813 fsGroup: 2000
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003814 seccompProfile:
3815 type: RuntimeDefault
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003816
3817 ## Priority class assigned to the Pods
3818 ##
3819 priorityClassName: ""
3820
3821 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
3822 ## This section is experimental, it may change significantly without deprecation notice in any release.
3823 ## This is experimental and may change significantly without backward compatibility in any release.
3824 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosspec
3825 ##
3826 thanos: {}
3827 # secretProviderClass:
3828 # provider: gcp
3829 # parameters:
3830 # secrets: |
3831 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
3832 # fileName: "objstore.yaml"
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003833 ## ObjectStorageConfig configures object storage in Thanos.
3834 # objectStorageConfig:
3835 # # use existing secret, if configured, objectStorageConfig.secret will not be used
3836 # existingSecret: {}
3837 # # name: ""
3838 # # key: ""
3839 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
3840 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
3841 # # https://thanos.io/tip/thanos/storage.md/#s3
3842 # secret: {}
3843 # # type: S3
3844 # # config:
3845 # # bucket: ""
3846 # # endpoint: ""
3847 # # region: ""
3848 # # access_key: ""
3849 # # secret_key: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003850
3851 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
3852 ## if using proxy extraContainer update targetPort with proxy container port
3853 containers: []
3854 # containers:
3855 # - name: oauth-proxy
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003856 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.5.1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003857 # args:
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003858 # - --upstream=http://127.0.0.1:9090
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003859 # - --http-address=0.0.0.0:8081
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003860 # - --metrics-address=0.0.0.0:8082
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003861 # - ...
3862 # ports:
3863 # - containerPort: 8081
3864 # name: oauth-proxy
3865 # protocol: TCP
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003866 # - containerPort: 8082
3867 # name: oauth-metrics
3868 # protocol: TCP
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003869 # resources: {}
3870
3871 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
3872 ## (permissions, dir tree) on mounted volumes before starting prometheus
3873 initContainers: []
3874
3875 ## PortName to use for Prometheus.
3876 ##
3877 portName: "http-web"
3878
3879 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
3880 ## on the file system of the Prometheus container e.g. bearer token files.
3881 arbitraryFSAccessThroughSMs: false
3882
3883 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
3884 ## or PodMonitor to true, this overrides honor_labels to false.
3885 overrideHonorLabels: false
3886
3887 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
3888 overrideHonorTimestamps: false
3889
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003890 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
3891 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
3892 ## and servicemonitors will be installed in the default service namespace.
3893 ## Defaults to false.
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003894 ignoreNamespaceSelectors: false
3895
3896 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
3897 ## The label value will always be the namespace of the object that is being created.
3898 ## Disabled by default
3899 enforcedNamespaceLabel: ""
3900
3901 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
3902 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
3903 ## Deprecated, use `excludedFromEnforcement` instead
3904 prometheusRulesExcludedFromEnforce: []
3905
3906 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
3907 ## to be excluded from enforcing a namespace label of origin.
3908 ## Works only if enforcedNamespaceLabel set to true.
3909 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#objectreference
3910 excludedFromEnforcement: []
3911
3912 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
3913 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
3914 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
3915 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
3916 queryLogFile: false
3917
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003918 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
3919 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
3920 sampleLimit: false
3921
3922 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
3923 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
3924 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
3925 enforcedKeepDroppedTargets: 0
3926
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003927 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
3928 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
3929 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
3930 enforcedSampleLimit: false
3931
3932 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
3933 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
3934 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
3935 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
3936 enforcedTargetLimit: false
3937
3938
3939 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
3940 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
3941 ## 2.27.0 and newer.
3942 enforcedLabelLimit: false
3943
3944 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
3945 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
3946 ## 2.27.0 and newer.
3947 enforcedLabelNameLengthLimit: false
3948
3949 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
3950 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
3951 ## versions 2.27.0 and newer.
3952 enforcedLabelValueLengthLimit: false
3953
3954 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
3955 ## in Prometheus so it may change in any upcoming release.
3956 allowOverlappingBlocks: false
3957
3958 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
3959 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
3960 minReadySeconds: 0
3961
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04003962 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3963 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3964 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
3965 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
3966 hostNetwork: false
3967
3968 # HostAlias holds the mapping between IP and hostnames that will be injected
3969 # as an entry in the pod’s hosts file.
3970 hostAliases: []
3971 # - ip: 10.10.0.100
3972 # hostnames:
3973 # - a1.app.local
3974 # - b1.app.local
3975
3976 ## TracingConfig configures tracing in Prometheus.
3977 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheustracingconfig
3978 tracingConfig: {}
3979
Mohammed Naser91e2fa02024-02-23 01:46:39 -05003980 ## Additional configuration which is not covered by the properties above. (passed through tpl)
3981 additionalConfig: {}
3982
3983 ## Additional configuration which is not covered by the properties above.
3984 ## Useful, if you need advanced templating inside alertmanagerSpec.
3985 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
3986 additionalConfigString: ""
3987
3988 ## Defines the maximum time that the `prometheus` container's startup probe
3989 ## will wait before being considered failed. The startup probe will return
3990 ## success after the WAL replay is complete. If set, the value should be
3991 ## greater than 60 (seconds). Otherwise it will be equal to 600 seconds (15
3992 ## minutes).
3993 maximumStartupDurationSeconds: 0
3994
Mohammed Naser9ad0d462023-01-15 20:36:37 -05003995 additionalRulesForClusterRole: []
3996 # - apiGroups: [ "" ]
3997 # resources:
3998 # - nodes/proxy
3999 # verbs: [ "get", "list", "watch" ]
4000
4001 additionalServiceMonitors: []
4002 ## Name of the ServiceMonitor to create
4003 ##
4004 # - name: ""
4005
4006 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4007 ## the chart
4008 ##
4009 # additionalLabels: {}
4010
4011 ## Service label for use in assembling a job name of the form <label value>-<port>
4012 ## If no label is specified, the service name is used.
4013 ##
4014 # jobLabel: ""
4015
4016 ## labels to transfer from the kubernetes service to the target
4017 ##
4018 # targetLabels: []
4019
4020 ## labels to transfer from the kubernetes pods to the target
4021 ##
4022 # podTargetLabels: []
4023
4024 ## Label selector for services to which this ServiceMonitor applies
4025 ##
4026 # selector: {}
4027
4028 ## Namespaces from which services are selected
4029 ##
4030 # namespaceSelector:
4031 ## Match any namespace
4032 ##
4033 # any: false
4034
4035 ## Explicit list of namespace names to select
4036 ##
4037 # matchNames: []
4038
4039 ## Endpoints of the selected service to be monitored
4040 ##
4041 # endpoints: []
4042 ## Name of the endpoint's service port
4043 ## Mutually exclusive with targetPort
4044 # - port: ""
4045
4046 ## Name or number of the endpoint's target port
4047 ## Mutually exclusive with port
4048 # - targetPort: ""
4049
4050 ## File containing bearer token to be used when scraping targets
4051 ##
4052 # bearerTokenFile: ""
4053
4054 ## Interval at which metrics should be scraped
4055 ##
4056 # interval: 30s
4057
4058 ## HTTP path to scrape for metrics
4059 ##
4060 # path: /metrics
4061
4062 ## HTTP scheme to use for scraping
4063 ##
4064 # scheme: http
4065
4066 ## TLS configuration to use when scraping the endpoint
4067 ##
4068 # tlsConfig:
4069
4070 ## Path to the CA file
4071 ##
4072 # caFile: ""
4073
4074 ## Path to client certificate file
4075 ##
4076 # certFile: ""
4077
4078 ## Skip certificate verification
4079 ##
4080 # insecureSkipVerify: false
4081
4082 ## Path to client key file
4083 ##
4084 # keyFile: ""
4085
4086 ## Server name used to verify host name
4087 ##
4088 # serverName: ""
4089
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004090 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4091 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
4092 ##
4093 # metricRelabelings: []
4094 # - action: keep
4095 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4096 # sourceLabels: [__name__]
4097
4098 ## RelabelConfigs to apply to samples before scraping
4099 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
4100 ##
4101 # relabelings: []
4102 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4103 # separator: ;
4104 # regex: ^(.*)$
4105 # targetLabel: nodename
4106 # replacement: $1
4107 # action: replace
4108
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004109 additionalPodMonitors: []
4110 ## Name of the PodMonitor to create
4111 ##
4112 # - name: ""
4113
4114 ## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4115 ## the chart
4116 ##
4117 # additionalLabels: {}
4118
4119 ## Pod label for use in assembling a job name of the form <label value>-<port>
4120 ## If no label is specified, the pod endpoint name is used.
4121 ##
4122 # jobLabel: ""
4123
4124 ## Label selector for pods to which this PodMonitor applies
4125 ##
4126 # selector: {}
4127
4128 ## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4129 ##
4130 # podTargetLabels: {}
4131
4132 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4133 ##
4134 # sampleLimit: 0
4135
4136 ## Namespaces from which pods are selected
4137 ##
4138 # namespaceSelector:
4139 ## Match any namespace
4140 ##
4141 # any: false
4142
4143 ## Explicit list of namespace names to select
4144 ##
4145 # matchNames: []
4146
4147 ## Endpoints of the selected pods to be monitored
4148 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#podmetricsendpoint
4149 ##
4150 # podMetricsEndpoints: []
4151
4152## Configuration for thanosRuler
4153## ref: https://thanos.io/tip/components/rule.md/
4154##
4155thanosRuler:
4156
4157 ## Deploy thanosRuler
4158 ##
4159 enabled: false
4160
4161 ## Annotations for ThanosRuler
4162 ##
4163 annotations: {}
4164
4165 ## Service account for ThanosRuler to use.
4166 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4167 ##
4168 serviceAccount:
4169 create: true
4170 name: ""
4171 annotations: {}
4172
4173 ## Configure pod disruption budgets for ThanosRuler
4174 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004175 ##
4176 podDisruptionBudget:
4177 enabled: false
4178 minAvailable: 1
4179 maxUnavailable: ""
4180
4181 ingress:
4182 enabled: false
4183
4184 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
4185 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
4186 # ingressClassName: nginx
4187
4188 annotations: {}
4189
4190 labels: {}
4191
4192 ## Hosts must be provided if Ingress is enabled.
4193 ##
4194 hosts: []
4195 # - thanosruler.domain.com
4196
4197 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4198 ##
4199 paths: []
4200 # - /
4201
4202 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4203 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4204 # pathType: ImplementationSpecific
4205
4206 ## TLS configuration for ThanosRuler Ingress
4207 ## Secret must be manually created in the namespace
4208 ##
4209 tls: []
4210 # - secretName: thanosruler-general-tls
4211 # hosts:
4212 # - thanosruler.example.com
4213
4214 ## Configuration for ThanosRuler service
4215 ##
4216 service:
4217 annotations: {}
4218 labels: {}
4219 clusterIP: ""
4220
4221 ## Port for ThanosRuler Service to listen on
4222 ##
4223 port: 10902
4224 ## To be used with a proxy extraContainer port
4225 ##
4226 targetPort: 10902
4227 ## Port to expose on each node
4228 ## Only used if service.type is 'NodePort'
4229 ##
4230 nodePort: 30905
4231 ## List of IP addresses at which the Prometheus server service is available
4232 ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
4233 ##
4234
4235 ## Additional ports to open for ThanosRuler service
4236 additionalPorts: []
4237
4238 externalIPs: []
4239 loadBalancerIP: ""
4240 loadBalancerSourceRanges: []
4241
4242 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
4243 ##
4244 externalTrafficPolicy: Cluster
4245
4246 ## Service type
4247 ##
4248 type: ClusterIP
4249
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03004250 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004251 ##
4252 serviceMonitor:
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03004253 ## If true, create a serviceMonitor for thanosRuler
4254 ##
4255 selfMonitor: true
4256
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004257 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
4258 ##
4259 interval: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004260
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04004261 ## Additional labels
4262 ##
4263 additionalLabels: {}
4264
4265 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4266 ##
4267 sampleLimit: 0
4268
4269 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
4270 ##
4271 targetLimit: 0
4272
4273 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4274 ##
4275 labelLimit: 0
4276
4277 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4278 ##
4279 labelNameLengthLimit: 0
4280
4281 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4282 ##
4283 labelValueLengthLimit: 0
4284
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004285 ## proxyUrl: URL of a proxy that should be used for scraping.
4286 ##
4287 proxyUrl: ""
4288
4289 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
4290 scheme: ""
4291
4292 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
4293 ## Of type: https://github.com/coreos/prometheus-operator/blob/main/Documentation/api.md#tlsconfig
4294 tlsConfig: {}
4295
4296 bearerTokenFile:
4297
4298 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4299 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
4300 ##
4301 metricRelabelings: []
4302 # - action: keep
4303 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4304 # sourceLabels: [__name__]
4305
4306 ## RelabelConfigs to apply to samples before scraping
4307 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
4308 ##
4309 relabelings: []
4310 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4311 # separator: ;
4312 # regex: ^(.*)$
4313 # targetLabel: nodename
4314 # replacement: $1
4315 # action: replace
4316
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004317 ## Additional Endpoints
4318 ##
4319 additionalEndpoints: []
4320 # - port: oauth-metrics
4321 # path: /metrics
4322
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004323 ## Settings affecting thanosRulerpec
4324 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosrulerspec
4325 ##
4326 thanosRulerSpec:
4327 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4328 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
4329 ##
4330 podMetadata: {}
4331
4332 ## Image of ThanosRuler
4333 ##
4334 image:
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04004335 registry: quay.io
4336 repository: thanos/thanos
Giovanni Tirloni52306ad2024-04-12 15:35:05 -03004337 tag: v0.34.1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004338 sha: ""
4339
4340 ## Namespaces to be selected for PrometheusRules discovery.
4341 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
4342 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#namespaceselector for usage
4343 ##
4344 ruleNamespaceSelector: {}
4345
4346 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
4347 ## prometheus resource to be created with selectors based on values in the helm deployment,
4348 ## which will also match the PrometheusRule resources created
4349 ##
4350 ruleSelectorNilUsesHelmValues: true
4351
4352 ## PrometheusRules to be selected for target discovery.
4353 ## If {}, select all PrometheusRules
4354 ##
4355 ruleSelector: {}
4356 ## Example which select all PrometheusRules resources
4357 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4358 # ruleSelector:
4359 # matchExpressions:
4360 # - key: prometheus
4361 # operator: In
4362 # values:
4363 # - example-rules
4364 # - example-rules-2
4365 #
4366 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4367 # ruleSelector:
4368 # matchLabels:
4369 # role: example-rules
4370
4371 ## Define Log Format
4372 # Use logfmt (default) or json logging
4373 logFormat: logfmt
4374
4375 ## Log level for ThanosRuler to be configured with.
4376 ##
4377 logLevel: info
4378
4379 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
4380 ## running cluster equal to the expected size.
4381 replicas: 1
4382
4383 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
4384 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
4385 ##
4386 retention: 24h
4387
4388 ## Interval between consecutive evaluations.
4389 ##
4390 evaluationInterval: ""
4391
4392 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
4393 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/storage.md
4394 ##
4395 storage: {}
4396 # volumeClaimTemplate:
4397 # spec:
4398 # storageClassName: gluster
4399 # accessModes: ["ReadWriteOnce"]
4400 # resources:
4401 # requests:
4402 # storage: 50Gi
4403 # selector: {}
4404
4405 ## AlertmanagerConfig define configuration for connecting to alertmanager.
4406 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004407 alertmanagersConfig:
4408 # use existing secret, if configured, alertmanagersConfig.secret will not be used
4409 existingSecret: {}
4410 # name: ""
4411 # key: ""
4412 # will render render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
4413 # https://thanos.io/tip/components/rule.md/#alertmanager
4414 secret: {}
4415 # alertmanagers:
4416 # - api_version: v2
4417 # http_config:
4418 # basic_auth:
4419 # username: some_user
4420 # password: some_pass
4421 # static_configs:
4422 # - alertmanager.thanos.io
4423 # scheme: http
4424 # timeout: 10s
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004425
4426 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
4427 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
4428 # alertmanagersUrl:
4429
4430 ## The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name. string false
4431 ##
4432 externalPrefix:
4433
vexxhost-botfb50c1c2024-04-24 13:05:27 -04004434 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
4435 ## will be used as value for externalPrefix
4436 externalPrefixNilUsesHelmValues: true
4437
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004438 ## The route prefix ThanosRuler registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true,
4439 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
4440 ##
4441 routePrefix: /
4442
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004443 ## ObjectStorageConfig configures object storage in Thanos
4444 objectStorageConfig:
4445 # use existing secret, if configured, objectStorageConfig.secret will not be used
4446 existingSecret: {}
4447 # name: ""
4448 # key: ""
4449 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
4450 # https://thanos.io/tip/thanos/storage.md/#s3
4451 secret: {}
4452 # type: S3
4453 # config:
4454 # bucket: ""
4455 # endpoint: ""
4456 # region: ""
4457 # access_key: ""
4458 # secret_key: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004459
vexxhost-botfb50c1c2024-04-24 13:05:27 -04004460 ## Labels by name to drop before sending to alertmanager
4461 ## Maps to the --alert.label-drop flag of thanos ruler.
4462 alertDropLabels: []
4463
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004464 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
4465 ## Maps to the --query flag of thanos ruler.
4466 queryEndpoints: []
4467
4468 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
4469 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004470 queryConfig:
4471 # use existing secret, if configured, queryConfig.secret will not be used
4472 existingSecret: {}
4473 # name: ""
4474 # key: ""
4475 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
4476 # https://thanos.io/tip/components/rule.md/#query-api
4477 secret: {}
4478 # - http_config:
4479 # basic_auth:
4480 # username: some_user
4481 # password: some_pass
4482 # static_configs:
4483 # - URL
4484 # scheme: http
4485 # timeout: 10s
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004486
4487 ## Labels configure the external label pairs to ThanosRuler. A default replica
4488 ## label `thanos_ruler_replica` will be always added as a label with the value
4489 ## of the pod's name and it will be dropped in the alerts.
4490 labels: {}
4491
4492 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
4493 ##
4494 paused: false
4495
Mohammed Naser91e2fa02024-02-23 01:46:39 -05004496 ## Allows setting additional arguments for the ThanosRuler container
4497 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosruler
4498 ##
4499 additionalArgs: []
4500 # - name: remote-write.config
4501 # value: |-
4502 # "remote_write":
4503 # - "name": "receiver-0"
4504 # "remote_timeout": "30s"
4505 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
4506
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004507 ## Define which Nodes the Pods are scheduled on.
4508 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
4509 ##
4510 nodeSelector: {}
4511
4512 ## Define resources requests and limits for single Pods.
4513 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
4514 ##
4515 resources: {}
4516 # requests:
4517 # memory: 400Mi
4518
4519 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4520 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
4521 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4522 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4523 ##
4524 podAntiAffinity: ""
4525
4526 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4527 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4528 ##
4529 podAntiAffinityTopologyKey: kubernetes.io/hostname
4530
4531 ## Assign custom affinity rules to the thanosRuler instance
4532 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
4533 ##
4534 affinity: {}
4535 # nodeAffinity:
4536 # requiredDuringSchedulingIgnoredDuringExecution:
4537 # nodeSelectorTerms:
4538 # - matchExpressions:
4539 # - key: kubernetes.io/e2e-az-name
4540 # operator: In
4541 # values:
4542 # - e2e-az1
4543 # - e2e-az2
4544
4545 ## If specified, the pod's tolerations.
4546 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
4547 ##
4548 tolerations: []
4549 # - key: "key"
4550 # operator: "Equal"
4551 # value: "value"
4552 # effect: "NoSchedule"
4553
4554 ## If specified, the pod's topology spread constraints.
4555 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
4556 ##
4557 topologySpreadConstraints: []
4558 # - maxSkew: 1
4559 # topologyKey: topology.kubernetes.io/zone
4560 # whenUnsatisfiable: DoNotSchedule
4561 # labelSelector:
4562 # matchLabels:
4563 # app: thanos-ruler
4564
4565 ## SecurityContext holds pod-level security attributes and common container settings.
4566 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
4567 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
4568 ##
4569 securityContext:
4570 runAsGroup: 2000
4571 runAsNonRoot: true
4572 runAsUser: 1000
4573 fsGroup: 2000
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04004574 seccompProfile:
4575 type: RuntimeDefault
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004576
4577 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
4578 ## Note this is only for the ThanosRuler UI, not the gossip communication.
4579 ##
4580 listenLocal: false
4581
4582 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
4583 ##
4584 containers: []
4585
4586 # Additional volumes on the output StatefulSet definition.
4587 volumes: []
4588
4589 # Additional VolumeMounts on the output StatefulSet definition.
4590 volumeMounts: []
4591
4592 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4593 ## (permissions, dir tree) on mounted volumes before starting prometheus
4594 initContainers: []
4595
4596 ## Priority class assigned to the Pods
4597 ##
4598 priorityClassName: ""
4599
4600 ## PortName to use for ThanosRuler.
4601 ##
4602 portName: "web"
4603
vexxhost-botfb50c1c2024-04-24 13:05:27 -04004604 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4605 additionalConfig: {}
4606
4607 ## Additional configuration which is not covered by the properties above.
4608 ## Useful, if you need advanced templating
4609 additionalConfigString: ""
4610
Mohammed Naser9ad0d462023-01-15 20:36:37 -05004611 ## ExtraSecret can be used to store various data in an extra secret
4612 ## (use it for example to store hashed basic auth credentials)
4613 extraSecret:
4614 ## if not set, name will be auto generated
4615 # name: ""
4616 annotations: {}
4617 data: {}
4618 # auth: |
4619 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
4620 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
4621
4622## Setting to true produces cleaner resource names, but requires a data migration because the name of the persistent volume changes. Therefore this should only be set once on initial installation.
4623##
4624cleanPrometheusOperatorObjectNames: false
Mohammed Naser5b49cbb2023-08-30 16:16:37 -04004625
4626## Extra manifests to deploy as an array
4627extraManifests: []
4628 # - apiVersion: v1
4629 # kind: ConfigMap
4630 # metadata:
4631 # labels:
4632 # name: prometheus-extra
4633 # data:
4634 # extra-data: "value"