DirectorySecurity AdvisoriesPricing
Sign in
Directory
kube-prometheus-stack logoHELM

kube-prometheus-stack

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# 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
##
7
nameOverride: ""
8
## Override the deployment namespace
9
##
10
namespaceOverride: ""
11
## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.26.6
12
##
13
kubeTargetVersionOverride: ""
14
## Allow kubeVersion to be overridden while creating the ingress
15
##
16
kubeVersionOverride: ""
17
## Provide a name to substitute for the full names of resources
18
##
19
fullnameOverride: ""
20
## Labels to apply to all resources
21
##
22
commonLabels: {}
23
# scmhash: abc123
24
# myLabel: aakkmd
25
26
## Install Prometheus Operator CRDs
27
##
28
crds:
29
enabled: true
30
## The CRD upgrade job mitigates the limitation of helm not being able to upgrade CRDs.
31
## The job will apply the CRDs to the cluster before the operator is deployed, using helm hooks.
32
## It deploys a corresponding clusterrole, clusterrolebinding and serviceaccount to apply the CRDs.
33
## This feature is in preview, off by default and may change in the future.
34
upgradeJob:
35
enabled: false
36
## Force apply the CRDs, taking ownership from the manager that installed them (e.g. helm).
37
## Required for the job to actually upgrade CRDs whose schema/version changed.
38
forceConflicts: true
39
image:
40
busybox:
41
registry: cgr.dev
42
repository: chainguard-private/busybox
43
tag: glibc-1.38.0-r3@sha256:67425453f68e574e3efe8ea489f0df0eea09df0e12e7867dd88f1b6458324fac
44
sha: ""
45
pullPolicy: IfNotPresent
46
kubectl:
47
registry: cgr.dev
48
repository: chainguard-private/kubectl
49
tag: 1.37.1-r3
50
sha: sha256:c55695bc149aac79ba709a3bd1367d7a9ddb639bc748a6afbbeba0105da90cc6
51
pullPolicy: IfNotPresent
52
env: {}
53
## Define resources requests and limits for single Pods.
54
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
55
##
56
resources: {}
57
## Additional volumes
58
##
59
extraVolumes: []
60
## Additional volume mounts
61
##
62
extraVolumeMounts: []
63
## Define which Nodes the Pods are scheduled on.
64
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
65
##
66
nodeSelector:
67
kubernetes.io/os: linux
68
## Assign custom affinity rules to the upgrade-crd job
69
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
70
##
71
affinity: {}
72
# nodeAffinity:
73
# requiredDuringSchedulingIgnoredDuringExecution:
74
# nodeSelectorTerms:
75
# - matchExpressions:
76
# - key: kubernetes.io/e2e-az-name
77
# operator: In
78
# values:
79
# - e2e-az1
80
# - e2e-az2
81
82
## If specified, the pod's tolerations.
83
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
84
##
85
tolerations: []
86
# - key: "key"
87
# operator: "Equal"
88
# value: "value"
89
# effect: "NoSchedule"
90
91
## If specified, the pod's topology spread constraints.
92
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
93
##
94
topologySpreadConstraints: []
95
# - maxSkew: 1
96
# topologyKey: topology.kubernetes.io/zone
97
# whenUnsatisfiable: DoNotSchedule
98
# labelSelector:
99
# matchLabels:
100
# app: alertmanager
101
102
# ## Labels to add to the upgrade-crd job
103
# ##
104
labels: {}
105
## Annotations to add to the upgrade-crd job
106
##
107
annotations: {}
108
## Labels to add to the upgrade-crd pod
109
##
110
podLabels: {}
111
## Annotations to add to the upgrade-crd pod
112
##
113
podAnnotations: {}
114
## Service account for upgrade crd job to use.
115
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
116
##
117
serviceAccount:
118
create: true
119
name: ""
120
annotations: {}
121
labels: {}
122
automountServiceAccountToken: true
123
## Automounting API credentials for upgrade crd job pod.
124
##
125
automountServiceAccountToken: true
126
## Container-specific security context configuration
127
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
128
##
129
containerSecurityContext:
130
allowPrivilegeEscalation: false
131
readOnlyRootFilesystem: true
132
capabilities:
133
drop:
134
- ALL
135
## SecurityContext holds pod-level security attributes and common container settings.
136
## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
137
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
138
##
139
podSecurityContext:
140
fsGroup: 65534
141
runAsGroup: 65534
142
runAsNonRoot: true
143
runAsUser: 65534
144
seccompProfile:
145
type: RuntimeDefault
146
## Custom rules to override "for" and "severity" in defaultRules
147
##
148
customRules: {}
149
# AlertmanagerFailedReload:
150
# for: 3m
151
# AlertmanagerMembersInconsistent:
152
# for: 5m
153
# severity: "warning"
154
155
## Create default rules for monitoring the cluster
156
##
157
defaultRules:
158
create: true
159
rules:
160
alertmanager: true
161
etcd: true
162
configReloaders: true
163
general: true
164
k8sContainerCpuUsageSecondsTotal: true
165
k8sContainerMemoryCache: true
166
k8sContainerMemoryRss: true
167
k8sContainerMemorySwap: true
168
k8sContainerResource: true
169
k8sContainerMemoryWorkingSetBytes: true
170
k8sPodOwner: true
171
kubeApiserverAvailability: true
172
kubeApiserverBurnrate: true
173
kubeApiserverHistogram: true
174
kubeApiserverSlos: true
175
kubeControllerManager: true
176
kubelet: true
177
kubeProxy: true
178
kubePrometheusGeneral: true
179
kubePrometheusNodeRecording: true
180
kubernetesApps: true
181
kubernetesResources: true
182
kubernetesStorage: true
183
kubernetesSystem: true
184
kubeSchedulerAlerting: true
185
kubeSchedulerRecording: true
186
kubeStateMetrics: true
187
network: true
188
node: true
189
nodeExporterAlerting: true
190
nodeExporterRecording: true
191
prometheus: true
192
prometheusOperator: true
193
windows: true
194
# Defines the operator for namespace selection in rules
195
# Use "=~" to include namespaces matching the pattern (default)
196
# Use "!~" to exclude namespaces matching the pattern
197
appNamespacesOperator: "=~"
198
## Reduce app namespace alert scope
199
appNamespacesTarget: ".*"
200
## Set keep_firing_for for all alerts
201
keepFiringFor: ""
202
## Labels for default rules
203
labels: {}
204
## Annotations for default rules
205
annotations: {}
206
## Additional labels for PrometheusRule alerts
207
additionalRuleLabels: {}
208
## Additional annotations for specific PrometheusRule alerts by alert name
209
additionalRuleAnnotations: {}
210
## Additional labels for specific PrometheusRule alert groups
211
additionalRuleGroupLabels:
212
alertmanager: {}
213
etcd: {}
214
configReloaders: {}
215
general: {}
216
k8sContainerCpuUsageSecondsTotal: {}
217
k8sContainerMemoryCache: {}
218
k8sContainerMemoryRss: {}
219
k8sContainerMemorySwap: {}
220
k8sContainerResource: {}
221
k8sPodOwner: {}
222
kubeApiserverAvailability: {}
223
kubeApiserverBurnrate: {}
224
kubeApiserverHistogram: {}
225
kubeApiserverSlos: {}
226
kubeControllerManager: {}
227
kubelet: {}
228
kubeProxy: {}
229
kubePrometheusGeneral: {}
230
kubePrometheusNodeRecording: {}
231
kubernetesApps: {}
232
kubernetesResources: {}
233
kubernetesStorage: {}
234
kubernetesSystem: {}
235
kubeSchedulerAlerting: {}
236
kubeSchedulerRecording: {}
237
kubeStateMetrics: {}
238
network: {}
239
node: {}
240
nodeExporterAlerting: {}
241
nodeExporterRecording: {}
242
prometheus: {}
243
prometheusOperator: {}
244
## Additional annotations for specific PrometheusRule alert groups
245
additionalRuleGroupAnnotations:
246
alertmanager: {}
247
etcd: {}
248
configReloaders: {}
249
general: {}
250
k8sContainerCpuUsageSecondsTotal: {}
251
k8sContainerMemoryCache: {}
252
k8sContainerMemoryRss: {}
253
k8sContainerMemorySwap: {}
254
k8sContainerResource: {}
255
k8sPodOwner: {}
256
kubeApiserverAvailability: {}
257
kubeApiserverBurnrate: {}
258
kubeApiserverHistogram: {}
259
kubeApiserverSlos: {}
260
kubeControllerManager: {}
261
kubelet: {}
262
kubeProxy: {}
263
kubePrometheusGeneral: {}
264
kubePrometheusNodeRecording: {}
265
kubernetesApps: {}
266
kubernetesResources: {}
267
kubernetesStorage: {}
268
kubernetesSystem: {}
269
kubeSchedulerAlerting: {}
270
kubeSchedulerRecording: {}
271
kubeStateMetrics: {}
272
network: {}
273
node: {}
274
nodeExporterAlerting: {}
275
nodeExporterRecording: {}
276
prometheus: {}
277
prometheusOperator: {}
278
additionalAggregationLabels: []
279
## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
280
runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
281
## Thresholds for kubelet certificate expiration alerts (in seconds)
282
kubeletServerCertificateExpiration:
283
warning: 604800 # 7 days
284
critical: 86400 # 1 day
285
kubeletClientCertificateExpiration:
286
warning: 604800 # 7 days
287
critical: 86400 # 1 day
288
node:
289
fsSelector: 'fstype!=""'
290
# fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
291
## Disabled PrometheusRule alerts
292
disabled: {}
293
# KubeAPIDown: true
294
# NodeRAIDDegraded: true
295
## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
296
##
297
# additionalPrometheusRules: []
298
# - name: my-rule-file
299
# groups:
300
# - name: my_group
301
# rules:
302
# - record: my_record
303
# expr: 100 * my_record
304
305
## Provide custom recording or alerting rules to be deployed into the cluster.
306
##
307
additionalPrometheusRulesMap: {}
308
# rule-name:
309
# groups:
310
# - name: my_group
311
# rules:
312
# - record: my_record
313
# expr: 100 * my_record
314
315
##
316
global:
317
rbac:
318
create: true
319
## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
320
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
321
createAggregateClusterRoles: false
322
## Global image registry to use if it needs to be overridden for some specific use cases (e.g. local registries, custom images, ...)
323
##
324
imageRegistry: ""
325
## Reference to one or more secrets to be used when pulling images
326
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
327
##
328
imagePullSecrets: []
329
# - name: "image-pull-secret"
330
# or
331
# - "image-pull-secret"
332
windowsMonitoring:
333
## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
334
enabled: false
335
## Configuration for prometheus-windows-exporter
336
## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
337
##
338
prometheus-windows-exporter:
339
## Enable ServiceMonitor and set Kubernetes label to use as a job label
340
##
341
prometheus:
342
monitor:
343
enabled: true
344
jobLabel: jobLabel
345
releaseLabel: true
346
## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
347
##
348
podLabels:
349
jobLabel: windows-exporter
350
## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
351
##
352
config: |-
353
collectors:
354
enabled: '[defaults],memory,container'
355
## Configuration for alertmanager
356
## ref: https://prometheus.io/docs/alerting/alertmanager/
357
##
358
alertmanager:
359
## Deploy alertmanager
360
##
361
enabled: true
362
# Optional: Override the namespace where Alertmanager will be deployed.
363
namespaceOverride: ""
364
## Annotations for Alertmanager
365
##
366
annotations: {}
367
## Additional labels for Alertmanager
368
##
369
additionalLabels: {}
370
## API that Prometheus will use to communicate with alertmanager. Possible values are v1, v2
371
##
372
apiVersion: v2
373
## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
374
##
375
enableFeatures: []
376
## Create dashboard configmap even if alertmanager deployment has been disabled
377
##
378
forceDeployDashboards: false
379
## Network Policy configuration
380
##
381
networkPolicy:
382
# -- Enable network policy for Alertmanager
383
enabled: false
384
# -- Define policy types. If egress is enabled, both Ingress and Egress will be used
385
# Valid values are ["Ingress"] or ["Ingress", "Egress"]
386
##
387
policyTypes:
388
- Ingress
389
# -- Gateway (formerly ingress controller) configuration
390
##
391
gateway:
392
# -- Gateway namespace
393
##
394
namespace: ""
395
# -- Gateway pod labels
396
##
397
podLabels: {}
398
# app.kubernetes.io/name: ingress-nginx
399
# -- Additional custom ingress rules
400
##
401
additionalIngress: []
402
# - from:
403
# - namespaceSelector:
404
# matchLabels:
405
# name: another-namespace
406
# podSelector:
407
# matchLabels:
408
# app: another-app
409
# - from:
410
# - podSelector:
411
# matchLabels:
412
# app.kubernetes.io/name: loki
413
# ports:
414
# - port: 9093
415
# protocol: TCP
416
417
# -- Configure egress rules
418
##
419
egress:
420
# -- Enable egress rules. When enabled, policyTypes will include Egress
421
##
422
enabled: false
423
# -- Custom egress rules
424
##
425
rules: []
426
# - to:
427
# - namespaceSelector: {}
428
# podSelector:
429
# matchLabels:
430
# name: smtp-relay
431
# ports:
432
# - port: 25
433
# protocol: TCP
434
# -- Enable rules for alertmanager cluster traffic
435
##
436
enableClusterRules: true
437
# -- Configure monitoring component rules
438
##
439
monitoringRules:
440
# -- Enable ingress from Prometheus
441
##
442
prometheus: true
443
# -- Enable ingress for config reloader metrics
444
##
445
configReloader: true
446
## Service account for Alertmanager to use.
447
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
448
##
449
serviceAccount:
450
create: true
451
name: ""
452
annotations: {}
453
automountServiceAccountToken: true
454
## Configure pod disruption budgets for Alertmanager
455
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
456
##
457
podDisruptionBudget:
458
enabled: false
459
minAvailable: 1
460
# maxUnavailable: ""
461
unhealthyPodEvictionPolicy: AlwaysAllow
462
## Enable vertical pod autoscaler support for Alertmanager
463
## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
464
##
465
verticalPodAutoscaler:
466
enabled: false
467
# Recommender responsible for generating recommendation for the object.
468
# List should be empty (then the default recommender will generate the recommendation)
469
# or contain exactly one recommender.
470
# recommenders:
471
# - name: custom-recommender-performance
472
473
# List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
474
controlledResources: []
475
# Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
476
# controlledValues: RequestsAndLimits
477
478
# Define the max allowed resources for the pod
479
maxAllowed: {}
480
# cpu: 200m
481
# memory: 100Mi
482
# Define the min allowed resources for the pod
483
minAllowed: {}
484
# cpu: 200m
485
# memory: 100Mi
486
487
updatePolicy:
488
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
489
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
490
updateMode: Recreate
491
## Alertmanager configuration directives
492
## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
493
## https://prometheus.io/webtools/alerting/routing-tree-editor/
494
##
495
config:
496
global:
497
resolve_timeout: 5m
498
inhibit_rules:
499
- source_matchers:
500
- 'severity = critical'
501
target_matchers:
502
- 'severity =~ warning|info'
503
equal:
504
- 'namespace'
505
- 'alertname'
506
- source_matchers:
507
- 'severity = warning'
508
target_matchers:
509
- 'severity = info'
510
equal:
511
- 'namespace'
512
- 'alertname'
513
- source_matchers:
514
- 'alertname = InfoInhibitor'
515
target_matchers:
516
- 'severity = info'
517
equal:
518
- 'namespace'
519
- target_matchers:
520
- 'alertname = InfoInhibitor'
521
route:
522
group_by: ['namespace']
523
group_wait: 30s
524
group_interval: 5m
525
repeat_interval: 12h
526
receiver: 'null'
527
routes:
528
- receiver: 'null'
529
matchers:
530
- alertname = "Watchdog"
531
receivers:
532
- name: 'null'
533
templates:
534
- '/etc/alertmanager/config/*.tmpl'
535
## Alertmanager configuration directives (as string type, preferred over the config hash map)
536
## stringConfig will be used only if tplConfig is true
537
## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
538
## https://prometheus.io/webtools/alerting/routing-tree-editor/
539
##
540
stringConfig: ""
541
## Pass the Alertmanager configuration directives through Helm's templating
542
## engine. If the Alertmanager configuration contains Alertmanager templates,
543
## they'll need to be properly escaped so that they are not interpreted by
544
## Helm
545
## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
546
## https://prometheus.io/docs/alerting/configuration/#tmpl_string
547
## https://prometheus.io/docs/alerting/notifications/
548
## https://prometheus.io/docs/alerting/notification_examples/
549
tplConfig: false
550
## Alertmanager template files to format alerts
551
## By default, templateFiles are placed in /etc/alertmanager/config/ and if
552
## they have a .tmpl file suffix will be loaded. See config.templates above
553
## to change, add other suffixes. If adding other suffixes, be sure to update
554
## config.templates above to include those suffixes.
555
## ref: https://prometheus.io/docs/alerting/notifications/
556
## https://prometheus.io/docs/alerting/notification_examples/
557
##
558
templateFiles: {}
559
#
560
## An example template:
561
# template_1.tmpl: |-
562
# {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
563
#
564
# {{ define "slack.myorg.text" }}
565
# {{- $root := . -}}
566
# {{ range .Alerts }}
567
# *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
568
# *Cluster:* {{ template "cluster" $root }}
569
# *Description:* {{ .Annotations.description }}
570
# *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
571
# *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
572
# *Details:*
573
# {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
574
# {{ end }}
575
# {{ end }}
576
# {{ end }}
577
578
ingress:
579
enabled: false
580
ingressClassName: ""
581
annotations: {}
582
labels: {}
583
## Override ingress to a different defined port on the service
584
# servicePort: 8081
585
## Override ingress to a different service then the default, this is useful if you need to
586
## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
587
# serviceName: kube-prometheus-stack-alertmanager-0
588
589
## Hosts must be provided if Ingress is enabled.
590
##
591
hosts: []
592
# - alertmanager.domain.com
593
594
## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
595
##
596
paths: []
597
# - /
598
599
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
600
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
601
# pathType: ImplementationSpecific
602
603
## TLS configuration for Alertmanager Ingress
604
## Secret must be manually created in the namespace
605
##
606
tls: []
607
# - secretName: alertmanager-general-tls
608
# hosts:
609
# - alertmanager.example.com
610
# -- BETA: Configure the gateway routes for the chart here.
611
# More routes can be added by adding a dictionary key like the 'main' route.
612
# Be aware that this is an early beta of this feature,
613
# kube-prometheus-stack does not guarantee this works and is subject to change.
614
# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
615
# [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
616
route:
617
main:
618
# -- Enables or disables the route
619
enabled: false
620
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
621
apiVersion: gateway.networking.k8s.io/v1
622
# -- Set the route kind
623
# Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
624
kind: HTTPRoute
625
annotations: {}
626
labels: {}
627
hostnames: []
628
# - my-filter.example.com
629
parentRefs: []
630
# - name: acme-gw
631
632
# -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
633
## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
634
## matches, filters and additionalRules will be ignored if this is set to true. Be are
635
httpsRedirect: false
636
matches:
637
- path:
638
type: PathPrefix
639
value: /
640
## Filters define the filters that are applied to requests that match this rule.
641
filters: []
642
## Timeouts for the generated HTTPRoute backend rule.
643
## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
644
timeouts: {}
645
# request: 120s
646
# backendRequest: 60s
647
648
## Session persistence configuration for the route rule.
649
sessionPersistence: {}
650
# sessionName: route
651
# type: Cookie
652
# absoluteTimeout: 12h
653
# cookieConfig:
654
# lifetimeType: Permanent
655
656
## Additional custom rules that can be added to the route
657
additionalRules: []
658
## Configuration for Alertmanager secret
659
##
660
secret:
661
annotations: {}
662
## Configuration for creating an Ingress that will map to each Alertmanager replica service
663
## alertmanager.servicePerReplica must be enabled
664
##
665
ingressPerReplica:
666
enabled: false
667
ingressClassName: ""
668
annotations: {}
669
labels: {}
670
## Final form of the hostname for each per replica ingress is
671
## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
672
##
673
## Prefix for the per replica ingress that will have `-$replicaNumber`
674
## appended to the end
675
hostPrefix: ""
676
## Domain that will be used for the per replica ingress
677
hostDomain: ""
678
## Paths to use for ingress rules
679
##
680
paths: []
681
# - /
682
683
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
684
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
685
# pathType: ImplementationSpecific
686
687
## Secret name containing the TLS certificate for alertmanager per replica ingress
688
## Secret must be manually created in the namespace
689
tlsSecretName: ""
690
## Separated secret for each per replica Ingress. Can be used together with cert-manager
691
##
692
tlsSecretPerReplica:
693
enabled: false
694
## Final form of the secret for each per replica ingress is
695
## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
696
##
697
prefix: "alertmanager"
698
## Configuration for creating a Gateway API route that will map to each Alertmanager replica service
699
## alertmanager.servicePerReplica must be enabled
700
##
701
routePerReplica:
702
main:
703
# -- Enables or disables the routePerReplica
704
enabled: false
705
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
706
apiVersion: gateway.networking.k8s.io/v1
707
# -- Set the route kind
708
# Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
709
kind: HTTPRoute
710
annotations: {}
711
labels: {}
712
## Final form of the hostname for each per replica route is
713
## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
714
##
715
## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
716
hostPrefix: ""
717
## Domain that will be used for the per replica route
718
hostDomain: ""
719
parentRefs: []
720
# - name: acme-gw
721
722
# -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
723
## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
724
## matches, filters and additionalRules will be ignored if this is set to true.
725
httpsRedirect: false
726
## Filters define the filters that are applied to requests that match this rule.
727
filters: []
728
matches:
729
- path:
730
type: PathPrefix
731
value: /
732
## Timeouts for the generated HTTPRoute backend rule.
733
## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
734
timeouts: {}
735
# request: 120s
736
# backendRequest: 60s
737
738
## Session persistence configuration for the route rule.
739
sessionPersistence: {}
740
# sessionName: route
741
# type: Cookie
742
# absoluteTimeout: 12h
743
# cookieConfig:
744
# lifetimeType: Permanent
745
746
## Additional custom rules that can be added to the route
747
additionalRules: []
748
## Configuration for Alertmanager service
749
##
750
service:
751
enabled: true
752
annotations: {}
753
labels: {}
754
clusterIP: ""
755
ipDualStack:
756
enabled: false
757
ipFamilies: ["IPv6", "IPv4"]
758
ipFamilyPolicy: "PreferDualStack"
759
## Port for Alertmanager Service to listen on
760
##
761
port: 9093
762
## Port for Alertmanager cluster communication
763
##
764
# clusterPort: 9094
765
## To be used with a proxy extraContainer port
766
##
767
targetPort: 9093
768
## Port to expose on each node
769
## Only used if service.type is 'NodePort'
770
##
771
nodePort: 30903
772
## List of IP addresses at which the Prometheus server service is available
773
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
774
##
775
776
## Additional ports to open for Alertmanager service
777
##
778
additionalPorts: []
779
# - name: oauth-proxy
780
# port: 8081
781
# targetPort: 8081
782
# - name: oauth-metrics
783
# port: 8082
784
# targetPort: 8082
785
786
externalIPs: []
787
loadBalancerIP: ""
788
loadBalancerSourceRanges: []
789
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
790
##
791
externalTrafficPolicy: Cluster
792
## If you want to make sure that connections from a particular client are passed to the same Pod each time
793
## Accepts 'ClientIP' or 'None'
794
##
795
sessionAffinity: None
796
## If you want to modify the ClientIP sessionAffinity timeout
797
## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
798
##
799
sessionAffinityConfig:
800
clientIP:
801
timeoutSeconds: 10800
802
## Service type
803
##
804
type: ClusterIP
805
## Configuration for creating a separate Service for each statefulset Alertmanager replica
806
##
807
servicePerReplica:
808
enabled: false
809
annotations: {}
810
## Port for Alertmanager Service per replica to listen on
811
##
812
port: 9093
813
## To be used with a proxy extraContainer port
814
targetPort: 9093
815
## Port to expose on each node
816
## Only used if servicePerReplica.type is 'NodePort'
817
##
818
nodePort: 30904
819
## Loadbalancer source IP ranges
820
## Only used if servicePerReplica.type is "LoadBalancer"
821
loadBalancerSourceRanges: []
822
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
823
##
824
externalTrafficPolicy: Cluster
825
## Service type
826
##
827
type: ClusterIP
828
## Configuration for creating a ServiceMonitor for AlertManager
829
##
830
serviceMonitor:
831
## If true, a ServiceMonitor will be created for the AlertManager service.
832
##
833
selfMonitor: true
834
## Scrape interval. If not set, the Prometheus default scrape interval is used.
835
##
836
interval: ""
837
## Additional labels
838
##
839
additionalLabels: {}
840
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
841
##
842
sampleLimit: 0
843
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
844
##
845
targetLimit: 0
846
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
847
##
848
labelLimit: 0
849
## 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.
850
##
851
labelNameLengthLimit: 0
852
## 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.
853
##
854
labelValueLengthLimit: 0
855
## proxyUrl: URL of a proxy that should be used for scraping.
856
##
857
proxyUrl: ""
858
## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
859
scheme: ""
860
## enableHttp2: Whether to enable HTTP2.
861
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
862
enableHttp2: true
863
## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
864
## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
865
tlsConfig: {}
866
bearerTokenFile:
867
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
868
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
869
##
870
metricRelabelings: []
871
# - action: keep
872
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
873
# sourceLabels: [__name__]
874
875
## RelabelConfigs to apply to samples before scraping
876
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
877
##
878
relabelings: []
879
# - sourceLabels: [__meta_kubernetes_pod_node_name]
880
# separator: ;
881
# regex: ^(.*)$
882
# targetLabel: nodename
883
# replacement: $1
884
# action: replace
885
886
## Additional Endpoints
887
##
888
additionalEndpoints: []
889
# - port: oauth-metrics
890
# path: /metrics
891
## Settings affecting alertmanagerSpec
892
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerspec
893
##
894
alertmanagerSpec:
895
## Statefulset's persistent volume claim retention policy
896
## whenDeleted and whenScaled determine whether
897
## statefulset's PVCs are deleted (true) or retained (false)
898
## on scaling down and deleting statefulset, respectively.
899
## Requires Kubernetes version 1.27.0+.
900
## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
901
persistentVolumeClaimRetentionPolicy: {}
902
# whenDeleted: Retain
903
# whenScaled: Retain
904
905
## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
906
## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
907
##
908
podMetadata: {}
909
##
910
serviceName:
911
## Image of Alertmanager
912
##
913
image:
914
registry: cgr.dev
915
repository: chainguard-private/prometheus-alertmanager
916
tag: 0.34.1-r5
917
sha: sha256:391c7945d98cb49094249310e22974776142969ac4b19410ba27ccf4aed01958
918
pullPolicy: IfNotPresent
919
## If true then the user will be responsible to provide a secret with alertmanager configuration
920
## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
921
##
922
useExistingSecret: false
923
## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
924
## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
925
##
926
secrets: []
927
## If false then the user will opt out of automounting API credentials.
928
##
929
automountServiceAccountToken: true
930
## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
931
## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
932
##
933
configMaps: []
934
## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
935
## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
936
##
937
# configSecret:
938
939
## WebTLSConfig defines the TLS parameters for HTTPS
940
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerwebspec
941
web: {}
942
## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
943
##
944
alertmanagerConfigSelector: {}
945
## Example which selects all alertmanagerConfig resources
946
## with label "alertconfig" with values any of "example-config" or "example-config-2"
947
# alertmanagerConfigSelector:
948
# matchExpressions:
949
# - key: alertconfig
950
# operator: In
951
# values:
952
# - example-config
953
# - example-config-2
954
#
955
## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
956
# alertmanagerConfigSelector:
957
# matchLabels:
958
# role: example-config
959
960
## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
961
##
962
alertmanagerConfigNamespaceSelector: {}
963
## Example which selects all namespaces
964
## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
965
# alertmanagerConfigNamespaceSelector:
966
# matchExpressions:
967
# - key: alertmanagerconfig
968
# operator: In
969
# values:
970
# - example-namespace
971
# - example-namespace-2
972
973
## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
974
# alertmanagerConfigNamespaceSelector:
975
# matchLabels:
976
# alertmanagerconfig: enabled
977
978
## AlermanagerConfig to be used as top level configuration
979
##
980
alertmanagerConfiguration: {}
981
## Example with select a global alertmanagerconfig
982
# alertmanagerConfiguration:
983
# name: global-alertmanager-Configuration
984
985
## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
986
##
987
alertmanagerConfigMatcherStrategy: {}
988
## Example with use OnNamespace strategy
989
# alertmanagerConfigMatcherStrategy:
990
# type: OnNamespace
991
992
## Additional command line arguments to pass to Alertmanager (in addition to those generated by the chart)
993
additionalArgs: []
994
## Define Log Format
995
# Use logfmt (default) or json logging
996
logFormat: logfmt
997
## Log level for Alertmanager to be configured with.
998
##
999
logLevel: info
1000
## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
1001
## running cluster equal to the expected size.
1002
replicas: 1
1003
## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
1004
## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
1005
##
1006
retention: 120h
1007
## Storage is the definition of how storage will be used by the Alertmanager instances.
1008
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
1009
##
1010
storage: {}
1011
# volumeClaimTemplate:
1012
# spec:
1013
# storageClassName: gluster
1014
# accessModes: ["ReadWriteOnce"]
1015
# resources:
1016
# requests:
1017
# storage: 50Gi
1018
# selector: {}
1019
1020
## 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
1021
##
1022
externalUrl:
1023
## 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,
1024
## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
1025
##
1026
routePrefix: /
1027
## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
1028
scheme: ""
1029
## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
1030
## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
1031
tlsConfig: {}
1032
## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
1033
##
1034
paused: false
1035
## Define which Nodes the Pods are scheduled on.
1036
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
1037
##
1038
nodeSelector:
1039
kubernetes.io/os: linux
1040
## Define resources requests and limits for single Pods.
1041
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
1042
##
1043
resources: {}
1044
# requests:
1045
# memory: 400Mi
1046
1047
## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
1048
## 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.
1049
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
1050
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
1051
##
1052
podAntiAffinity: "soft"
1053
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
1054
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
1055
##
1056
podAntiAffinityTopologyKey: kubernetes.io/hostname
1057
## Assign custom affinity rules to the alertmanager instance
1058
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1059
##
1060
affinity: {}
1061
# nodeAffinity:
1062
# requiredDuringSchedulingIgnoredDuringExecution:
1063
# nodeSelectorTerms:
1064
# - matchExpressions:
1065
# - key: kubernetes.io/e2e-az-name
1066
# operator: In
1067
# values:
1068
# - e2e-az1
1069
# - e2e-az2
1070
1071
## If specified, the pod's tolerations.
1072
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
1073
##
1074
tolerations: []
1075
# - key: "key"
1076
# operator: "Equal"
1077
# value: "value"
1078
# effect: "NoSchedule"
1079
1080
## If specified, the pod's topology spread constraints.
1081
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1082
##
1083
topologySpreadConstraints: []
1084
# - maxSkew: 1
1085
# topologyKey: topology.kubernetes.io/zone
1086
# whenUnsatisfiable: DoNotSchedule
1087
# labelSelector:
1088
# matchLabels:
1089
# app: alertmanager
1090
1091
## SecurityContext holds pod-level security attributes and common container settings.
1092
## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
1093
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1094
##
1095
securityContext:
1096
runAsGroup: 2000
1097
runAsNonRoot: true
1098
runAsUser: 1000
1099
fsGroup: 2000
1100
seccompProfile:
1101
type: RuntimeDefault
1102
## Use the host's user namespace for Alertmanager pods.
1103
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
1104
hostUsers: ~
1105
## DNS configuration for Alertmanager.
1106
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
1107
dnsConfig: {}
1108
## DNS policy for Alertmanager.
1109
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
1110
dnsPolicy: ""
1111
## Enable hostNetwork for Alertmanager.
1112
hostNetwork: ~
1113
## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
1114
## Note this is only for the Alertmanager UI, not the gossip communication.
1115
##
1116
listenLocal: false
1117
## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
1118
##
1119
containers: []
1120
# containers:
1121
# - name: oauth-proxy
1122
# image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5
1123
# args:
1124
# - --upstream=http://127.0.0.1:9093
1125
# - --http-address=0.0.0.0:8081
1126
# - --metrics-address=0.0.0.0:8082
1127
# - ...
1128
# ports:
1129
# - containerPort: 8081
1130
# name: oauth-proxy
1131
# protocol: TCP
1132
# - containerPort: 8082
1133
# name: oauth-metrics
1134
# protocol: TCP
1135
# resources: {}
1136
1137
# Additional volumes on the output StatefulSet definition.
1138
volumes: []
1139
# Additional VolumeMounts on the output StatefulSet definition.
1140
volumeMounts: []
1141
## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
1142
## (permissions, dir tree) on mounted volumes before starting prometheus
1143
initContainers: []
1144
## Priority class assigned to the Pods
1145
##
1146
priorityClassName: ""
1147
## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
1148
##
1149
additionalPeers: []
1150
## PortName to use for Alert Manager.
1151
##
1152
portName: "http-web"
1153
## 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
1154
##
1155
clusterAdvertiseAddress: false
1156
## clusterGossipInterval determines interval between gossip attempts.
1157
## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1158
clusterGossipInterval: ""
1159
## clusterPeerName defines the name this instance advertises to other cluster peers, defaulting to the pod name.
1160
## Literal values and references to environment variables available in the container (e.g. "$(POD_NAME).$(NAMESPACE)") are both accepted.
1161
## Requires Alertmanager >= v0.30.0.
1162
clusterPeerName: ""
1163
## clusterPeerTimeout determines timeout for cluster peering.
1164
## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1165
clusterPeerTimeout: ""
1166
## clusterPushpullInterval determines interval between pushpull attempts.
1167
## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1168
clusterPushpullInterval: ""
1169
## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1170
clusterLabel: ""
1171
## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1172
## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1173
forceEnableClusterMode: false
1174
## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1175
## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1176
minReadySeconds: 0
1177
## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1178
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1179
podManagementPolicy: ""
1180
## Update strategy for the StatefulSet.
1181
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1182
updateStrategy: {}
1183
# type: RollingUpdate
1184
# rollingUpdate:
1185
# maxUnavailable: 1
1186
1187
## Duration in seconds the pod needs to terminate gracefully.
1188
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1189
terminationGracePeriodSeconds: ~
1190
## EnableServiceLinks indicates whether information about services should be injected into the
1191
## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
1192
enableServiceLinks: ~
1193
## Set the scheduler name to use for the Alertmanager pods.
1194
schedulerName: ""
1195
## Pods' hostAliases configuration
1196
## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1197
hostAliases: []
1198
# - ip: 10.10.0.100
1199
# hostnames:
1200
# - a1.app.local
1201
1202
## Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0.
1203
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec
1204
limits: {}
1205
# maxSilences: 1000
1206
# maxPerSilenceBytes: 1MB
1207
1208
## ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.
1209
## Requires Alertmanager >= v0.24.0.
1210
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig
1211
clusterTLS: {}
1212
## Additional configuration which is not covered by the properties above. (passed through tpl)
1213
additionalConfig: {}
1214
## Additional configuration which is not covered by the properties above.
1215
## Useful, if you need advanced templating inside alertmanagerSpec.
1216
## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1217
additionalConfigString: ""
1218
## ExtraSecret can be used to store various data in an extra secret
1219
## (use it for example to store hashed basic auth credentials)
1220
extraSecret:
1221
## if not set, name will be auto generated
1222
# name: ""
1223
annotations: {}
1224
data: {}
1225
# auth: |
1226
# foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1227
# someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1228
## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1229
##
1230
grafana:
1231
enabled: true
1232
namespaceOverride: ""
1233
## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1234
##
1235
forceDeployDatasources: false
1236
## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1237
##
1238
forceDeployDashboards: false
1239
## Deploy default dashboards
1240
##
1241
defaultDashboardsEnabled: true
1242
## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1243
## These settings control how dashboards are integrated with the Grafana Operator
1244
## Note: With operator.datasourcesEnabled disabled, end users still need to create their own
1245
## kind: GrafanaDatasource for Prometheus
1246
## eg:
1247
## apiVersion: grafana.integreatly.org/v1beta1
1248
## kind: GrafanaDatasource
1249
## metadata:
1250
## name: prometheus
1251
## annotations: {}
1252
## spec:
1253
## allowCrossNamespaceImport: true
1254
## instanceSelector:
1255
## matchLabels:
1256
## app: grafana
1257
## datasource:
1258
## name: prometheus
1259
## type: prometheus
1260
## access: proxy
1261
## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1262
## isDefault: true
1263
## jsonData:
1264
## "tlsSkipVerify": true
1265
## "timeInterval": "5s"
1266
##
1267
operator:
1268
## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1269
## Set to true to allow dashboards to be loaded from ConfigMap references
1270
dashboardsConfigMapRefEnabled: false
1271
## Provision GrafanaDatasource CRs instead of a file-based datasource ConfigMap
1272
## Covers the default Prometheus datasource, the per-replica Prometheus datasources, the
1273
## Alertmanager datasource and every entry of grafana.additionalDataSources
1274
## An entry of grafana.additionalDataSources may carry `valuesFrom` and `plugins`, both are
1275
## moved from the datasource to the CR spec
1276
## grafana.additionalDataSourcesString, grafana.deleteDatasources and grafana.prune have no CR
1277
## equivalent and keep using the ConfigMap
1278
datasourcesEnabled: false
1279
## Annotations for GrafanaDashboard Cr
1280
##
1281
annotations: {}
1282
## Labels that should be matched kind: Grafana instance
1283
## Example: { app: grafana, category: dashboard }
1284
##
1285
matchLabels: {}
1286
## How frequently the operator should resync resources (in duration format)
1287
## Controls how often dashboards are reconciled by the operator
1288
##
1289
resyncPeriod: 10m
1290
## Which folder contains all dashboards in Grafana
1291
## This folder will be created on the Root level
1292
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1293
##
1294
folder: General
1295
## Which UID of the target folder contains all dashboards in Grafana
1296
## This allows you to use subfolder hierarchy
1297
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1298
##
1299
folderUID: null
1300
## Which GrafanaFolder reference contains all dashboards in Grafana
1301
## This allows you to use subfolder hierarchy.
1302
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1303
##
1304
folderRef: null
1305
## Timezone for the default dashboards
1306
## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1307
##
1308
defaultDashboardsTimezone: utc
1309
## Editable flag for the default dashboards
1310
##
1311
defaultDashboardsEditable: true
1312
## Default interval for Grafana dashboards
1313
##
1314
defaultDashboardsInterval: 1m
1315
# Administrator credentials when not using an existing secret (see below)
1316
adminUser: admin
1317
# adminPassword: strongpassword
1318
1319
# Use an existing secret for the admin user.
1320
admin:
1321
## Name of the secret. Can be templated.
1322
existingSecret: ""
1323
userKey: admin-user
1324
passwordKey: admin-password
1325
rbac:
1326
## If true, Grafana PSPs will be created
1327
##
1328
pspEnabled: false
1329
ingress:
1330
## If true, Grafana Ingress will be created
1331
##
1332
enabled: false
1333
## IngressClassName for Grafana Ingress.
1334
## Should be provided if Ingress is enable.
1335
##
1336
# ingressClassName: nginx
1337
1338
## Annotations for Grafana Ingress
1339
##
1340
annotations: {}
1341
# kubernetes.io/ingress.class: nginx
1342
# kubernetes.io/tls-acme: "true"
1343
1344
## Labels to be added to the Ingress
1345
##
1346
labels: {}
1347
## Hostnames.
1348
## Must be provided if Ingress is enable.
1349
##
1350
# hosts:
1351
# - grafana.domain.com
1352
hosts: []
1353
## Path for grafana ingress
1354
path: /
1355
## TLS configuration for grafana Ingress
1356
## Secret must be manually created in the namespace
1357
##
1358
tls: []
1359
# - secretName: grafana-general-tls
1360
# hosts:
1361
# - grafana.example.com
1362
# # To make Grafana persistent (Using Statefulset)
1363
# #
1364
# persistence:
1365
# enabled: true
1366
# type: sts
1367
# storageClassName: "storageClassName"
1368
# accessModes:
1369
# - ReadWriteOnce
1370
# size: 20Gi
1371
# finalizers:
1372
# - kubernetes.io/pvc-protection
1373
serviceAccount:
1374
create: true
1375
autoMount: true
1376
sidecar:
1377
dashboards:
1378
enabled: true
1379
label: grafana_dashboard
1380
labelValue: "1"
1381
# Allow discovery in all namespaces for dashboards
1382
searchNamespace: ALL
1383
# Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1384
enableNewTablePanelSyntax: false
1385
## Annotations for Grafana dashboard configmaps
1386
##
1387
annotations: {}
1388
## Annotation the sidecar reads to decide in which Grafana folder a dashboard
1389
## is stored. Requires `provider.foldersFromFilesStructure` to be enabled.
1390
## ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards
1391
##
1392
# folderAnnotation: grafana_folder
1393
multicluster:
1394
global:
1395
enabled: false
1396
etcd:
1397
enabled: false
1398
provider:
1399
allowUiUpdates: false
1400
## Let Grafana replicate the dashboard folder structure created by the sidecar,
1401
## so dashboards are grouped into folders instead of the default one.
1402
## Required when using `folderAnnotation` above.
1403
##
1404
# foldersFromFilesStructure: true
1405
datasources:
1406
enabled: true
1407
defaultDatasourceEnabled: true
1408
isDefaultDatasource: true
1409
name: Prometheus
1410
uid: prometheus
1411
## Extra jsonData properties to add to the datasource
1412
# extraJsonData:
1413
# prometheusType: Prometheus
1414
1415
## URL of prometheus datasource
1416
##
1417
# url: http://prometheus-stack-prometheus:9090/
1418
1419
## Prometheus request timeout in seconds
1420
# timeout: 30
1421
1422
## Query parameters to add, as a URL-encoded string,
1423
## to query Prometheus
1424
# customQueryParameters: ""
1425
1426
# If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1427
# defaultDatasourceScrapeInterval: 15s
1428
1429
## Annotations for Grafana datasource configmaps
1430
##
1431
annotations: {}
1432
## Set method for HTTP to send query to datasource
1433
httpMethod: POST
1434
## Create datasource for each Pod of Prometheus StatefulSet;
1435
## this uses by default the headless service `prometheus-operated` which is
1436
## created by Prometheus Operator. In case you deployed your own Service for your
1437
## Prometheus instance, you can specify it with the field `prometheusServiceName`
1438
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1439
createPrometheusReplicasDatasources: false
1440
prometheusServiceName: prometheus-operated
1441
label: grafana_datasource
1442
labelValue: "1"
1443
## Field with internal link pointing to existing data source in Grafana.
1444
## Can be provisioned via additionalDataSources
1445
exemplarTraceIdDestinations: {}
1446
# datasourceUid: Jaeger
1447
# traceIdLabelName: trace_id
1448
# urlDisplayLabel: View traces
1449
alertmanager:
1450
enabled: true
1451
name: Alertmanager
1452
uid: alertmanager
1453
handleGrafanaManagedAlerts: false
1454
implementation: prometheus
1455
extraConfigmapMounts: []
1456
# - name: certs-configmap
1457
# mountPath: /etc/grafana/ssl/
1458
# configMap: certs-configmap
1459
# readOnly: true
1460
1461
deleteDatasources: []
1462
# - name: example-datasource
1463
# orgId: 1
1464
1465
## Configure additional grafana datasources (passed through tpl)
1466
## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1467
additionalDataSources: []
1468
# - name: prometheus-sample
1469
# access: proxy
1470
# basicAuth: true
1471
# secureJsonData:
1472
# basicAuthPassword: pass
1473
# basicAuthUser: daco
1474
# editable: false
1475
# jsonData:
1476
# tlsSkipVerify: true
1477
# orgId: 1
1478
# type: prometheus
1479
# url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1480
# version: 1
1481
1482
## Configure additional grafana datasources as a templated string (passed through tpl)
1483
## Useful when you need Helm flow control or templating inside the datasource definition
1484
additionalDataSourcesString: ""
1485
# Flag to mark provisioned data sources for deletion if they are no longer configured.
1486
# It takes no effect if data sources are already listed in the deleteDatasources section.
1487
# ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1488
prune: false
1489
## Passed to grafana subchart and used by servicemonitor below
1490
##
1491
service:
1492
portName: http-web
1493
ipFamilies: []
1494
ipFamilyPolicy: ""
1495
serviceMonitor:
1496
# If true, a ServiceMonitor CRD is created for a prometheus operator
1497
# https://github.com/prometheus-operator/prometheus-operator
1498
#
1499
enabled: true
1500
# Path to use for scraping metrics. Might be different if server.root_url is set
1501
# in grafana.ini
1502
# path: /metrics
1503
1504
# namespace: monitoring (defaults to use the namespace this chart is deployed to)
1505
1506
# labels for the ServiceMonitor
1507
# labels: {}
1508
1509
# Extra scrape settings.
1510
# interval: ""
1511
# scheme: http
1512
# tlsConfig: {}
1513
# scrapeTimeout: 30s
1514
1515
## RelabelConfigs to apply to samples before scraping
1516
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1517
##
1518
# relabelings: []
1519
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1520
# separator: ;
1521
# regex: ^(.*)$
1522
# targetLabel: nodename
1523
# replacement: $1
1524
# action: replace
1525
## Flag to disable all the kubernetes component scrapers
1526
##
1527
kubernetesServiceMonitors:
1528
enabled: true
1529
## Component scraping the kube api server
1530
##
1531
kubeApiServer:
1532
enabled: true
1533
## TLS configuration of the ServiceMonitor endpoint. Rendered as-is, so any field of the
1534
## Prometheus Operator SafeTLSConfig type can be set here.
1535
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1536
##
1537
tlsConfig:
1538
serverName: kubernetes
1539
insecureSkipVerify: false
1540
ca:
1541
configMap:
1542
name: kube-root-ca.crt
1543
key: ca.crt
1544
serviceMonitor:
1545
enabled: true
1546
## Scrape interval. If not set, the Prometheus default scrape interval is used.
1547
##
1548
interval: ""
1549
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1550
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1551
## authentication.
1552
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1553
##
1554
authorization:
1555
type: Bearer
1556
credentials:
1557
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1558
key: token
1559
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1560
##
1561
sampleLimit: 0
1562
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1563
##
1564
targetLimit: 0
1565
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1566
##
1567
labelLimit: 0
1568
## 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.
1569
##
1570
labelNameLengthLimit: 0
1571
## 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.
1572
##
1573
labelValueLengthLimit: 0
1574
## proxyUrl: URL of a proxy that should be used for scraping.
1575
##
1576
proxyUrl: ""
1577
jobLabel: component
1578
selector:
1579
matchLabels:
1580
component: apiserver
1581
provider: kubernetes
1582
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1583
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1584
##
1585
metricRelabelings:
1586
# Drop excessively noisy apiserver buckets.
1587
- action: drop
1588
regex: (etcd_request|apiserver_request_slo|apiserver_request_sli|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|20|40|45|50)(\.0)?
1589
sourceLabels:
1590
- __name__
1591
- le
1592
# - action: keep
1593
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1594
# sourceLabels: [__name__]
1595
1596
## RelabelConfigs to apply to samples before scraping
1597
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1598
##
1599
relabelings: []
1600
# - sourceLabels:
1601
# - __meta_kubernetes_namespace
1602
# - __meta_kubernetes_service_name
1603
# - __meta_kubernetes_endpoint_port_name
1604
# action: keep
1605
# regex: default;kubernetes;https
1606
# - targetLabel: __address__
1607
# replacement: kubernetes.default.svc:443
1608
1609
## Additional labels
1610
##
1611
additionalLabels: {}
1612
# foo: bar
1613
1614
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1615
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1616
targetLabels: []
1617
## Override the job label used for the apiserver.
1618
## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1619
## to align the recording rules and alerts with their actual job label.
1620
jobNameOverride: ""
1621
## Component scraping the kubelet and kubelet-hosted cAdvisor
1622
##
1623
kubelet:
1624
enabled: true
1625
namespace: kube-system
1626
# Overrides the job selector in Grafana dashboards and Prometheus rules
1627
# For k3s clusters, change to k3s-server
1628
jobNameOverride: ""
1629
serviceMonitor:
1630
enabled: true
1631
## Enable scraping /metrics from kubelet's service
1632
kubelet: true
1633
## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1634
##
1635
attachMetadata:
1636
node: false
1637
## Scrape interval. If not set, the Prometheus default scrape interval is used.
1638
##
1639
interval: ""
1640
## If true, Prometheus use (respect) labels provided by exporter.
1641
##
1642
honorLabels: true
1643
## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1644
##
1645
honorTimestamps: true
1646
## If true, defines whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false.
1647
## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1648
## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1649
trackTimestampsStaleness: true
1650
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1651
##
1652
sampleLimit: 0
1653
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1654
##
1655
targetLimit: 0
1656
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1657
##
1658
labelLimit: 0
1659
## 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.
1660
##
1661
labelNameLengthLimit: 0
1662
## 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.
1663
##
1664
labelValueLengthLimit: 0
1665
## proxyUrl: URL of a proxy that should be used for scraping.
1666
##
1667
proxyUrl: ""
1668
## Enable scraping the kubelet over https. For requirements to enable this see
1669
## https://github.com/prometheus-operator/prometheus-operator/issues/926
1670
##
1671
https: true
1672
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1673
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1674
## authentication.
1675
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1676
##
1677
authorization:
1678
type: Bearer
1679
credentials:
1680
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1681
key: token
1682
## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1683
## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1684
## insecureSkipVerify is enabled by default because the kubelet serving certificate deployed by
1685
## kubeadm is self-signed.
1686
## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1687
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1688
##
1689
tlsConfig:
1690
insecureSkipVerify: true
1691
ca:
1692
configMap:
1693
name: kube-root-ca.crt
1694
key: ca.crt
1695
## Enable scraping /metrics/probes from kubelet's service
1696
##
1697
probes: true
1698
## Enable scraping /metrics/resource from kubelet's service
1699
## This is disabled by default because container metrics are already exposed by cAdvisor
1700
##
1701
resource: false
1702
# From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1703
resourcePath: "/metrics/resource/v1alpha1"
1704
## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1705
## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1706
## if kubelet.serviceMonitor.interval is not empty.
1707
resourceInterval: 10s
1708
## Enable scraping /metrics/cadvisor from kubelet's service
1709
##
1710
cAdvisor: true
1711
## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1712
## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1713
## if kubelet.serviceMonitor.interval is not empty.
1714
cAdvisorInterval: 10s
1715
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1716
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1717
##
1718
cAdvisorMetricRelabelings:
1719
# Drop less useful container CPU metrics.
1720
- sourceLabels: [__name__]
1721
action: drop
1722
regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1723
# Drop less useful container / always zero filesystem metrics.
1724
- sourceLabels: [__name__]
1725
action: drop
1726
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)'
1727
# Drop less useful / always zero container memory metrics.
1728
- sourceLabels: [__name__]
1729
action: drop
1730
regex: 'container_memory_(mapped_file|swap)'
1731
# Drop less useful container process metrics.
1732
- sourceLabels: [__name__]
1733
action: drop
1734
regex: 'container_(file_descriptors|tasks_state|threads_max)'
1735
# Drop container_memory_failures_total{scope="hierarchy"} metrics,
1736
# we only need the container scope.
1737
- sourceLabels: [__name__, scope]
1738
action: drop
1739
regex: 'container_memory_failures_total;hierarchy'
1740
# Drop container_network_... metrics that match various interfaces that
1741
# correspond to CNI and similar interfaces. This avoids capturing network
1742
# metrics for host network containers.
1743
- sourceLabels: [__name__, interface]
1744
action: drop
1745
regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1746
# Drop container spec metrics that overlap with kube-state-metrics.
1747
- sourceLabels: [__name__]
1748
action: drop
1749
regex: 'container_spec.*'
1750
# Drop cgroup metrics with no pod.
1751
- sourceLabels: [id, pod]
1752
action: drop
1753
regex: '.+;'
1754
# - sourceLabels: [__name__, image]
1755
# separator: ;
1756
# regex: container_([a-z_]+);
1757
# replacement: $1
1758
# action: drop
1759
# - sourceLabels: [__name__]
1760
# separator: ;
1761
# regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1762
# replacement: $1
1763
# action: drop
1764
1765
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1766
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1767
##
1768
probesMetricRelabelings: []
1769
# - sourceLabels: [__name__, image]
1770
# separator: ;
1771
# regex: container_([a-z_]+);
1772
# replacement: $1
1773
# action: drop
1774
# - sourceLabels: [__name__]
1775
# separator: ;
1776
# regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1777
# replacement: $1
1778
# action: drop
1779
1780
## RelabelConfigs to apply to samples before scraping
1781
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1782
##
1783
## metrics_path is required to match upstream rules and charts
1784
cAdvisorRelabelings:
1785
- action: replace
1786
sourceLabels: [__metrics_path__]
1787
targetLabel: metrics_path
1788
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1789
# separator: ;
1790
# regex: ^(.*)$
1791
# targetLabel: nodename
1792
# replacement: $1
1793
# action: replace
1794
1795
## RelabelConfigs to apply to samples before scraping
1796
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1797
##
1798
probesRelabelings:
1799
- action: replace
1800
sourceLabels: [__metrics_path__]
1801
targetLabel: metrics_path
1802
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1803
# separator: ;
1804
# regex: ^(.*)$
1805
# targetLabel: nodename
1806
# replacement: $1
1807
# action: replace
1808
1809
## RelabelConfigs to apply to samples before scraping
1810
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1811
##
1812
resourceRelabelings:
1813
- action: replace
1814
sourceLabels: [__metrics_path__]
1815
targetLabel: metrics_path
1816
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1817
# separator: ;
1818
# regex: ^(.*)$
1819
# targetLabel: nodename
1820
# replacement: $1
1821
# action: replace
1822
1823
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1824
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1825
##
1826
metricRelabelings:
1827
# Reduce bucket cardinality of kubelet storage operations.
1828
- action: drop
1829
sourceLabels: [__name__, le]
1830
regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1831
# - sourceLabels: [__name__, image]
1832
# separator: ;
1833
# regex: container_([a-z_]+);
1834
# replacement: $1
1835
# action: drop
1836
# - sourceLabels: [__name__]
1837
# separator: ;
1838
# regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1839
# replacement: $1
1840
# action: drop
1841
1842
## RelabelConfigs to apply to samples before scraping
1843
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1844
##
1845
## metrics_path is required to match upstream rules and charts
1846
relabelings:
1847
- action: replace
1848
sourceLabels: [__metrics_path__]
1849
targetLabel: metrics_path
1850
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1851
# separator: ;
1852
# regex: ^(.*)$
1853
# targetLabel: nodename
1854
# replacement: $1
1855
# action: replace
1856
1857
## Additional labels
1858
##
1859
additionalLabels: {}
1860
# foo: bar
1861
1862
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1863
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1864
targetLabels: []
1865
## Component scraping the kube controller manager
1866
##
1867
kubeControllerManager:
1868
enabled: true
1869
# Overrides the job selector in Grafana dashboards and Prometheus rules
1870
# For k3s clusters, change to k3s-server
1871
jobNameOverride: ""
1872
## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1873
##
1874
endpoints: []
1875
# - 10.141.4.22
1876
# - 10.141.4.23
1877
# - 10.141.4.24
1878
1879
## If using kubeControllerManager.endpoints only the port and targetPort are used
1880
##
1881
service:
1882
enabled: true
1883
## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1884
## of default port in Kubernetes 1.22.
1885
##
1886
port: null
1887
targetPort: null
1888
ipDualStack:
1889
enabled: false
1890
ipFamilies: ["IPv6", "IPv4"]
1891
ipFamilyPolicy: "PreferDualStack"
1892
# selector:
1893
# component: kube-controller-manager
1894
serviceMonitor:
1895
enabled: true
1896
## Scrape interval. If not set, the Prometheus default scrape interval is used.
1897
##
1898
interval: ""
1899
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1900
##
1901
sampleLimit: 0
1902
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1903
##
1904
targetLimit: 0
1905
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1906
##
1907
labelLimit: 0
1908
## 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.
1909
##
1910
labelNameLengthLimit: 0
1911
## 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.
1912
##
1913
labelValueLengthLimit: 0
1914
## proxyUrl: URL of a proxy that should be used for scraping.
1915
##
1916
proxyUrl: ""
1917
## port: Name of the port the metrics will be scraped from
1918
##
1919
port: http-metrics
1920
jobLabel: jobLabel
1921
selector: {}
1922
# matchLabels:
1923
# component: kube-controller-manager
1924
1925
## Enable scraping kube-controller-manager over https.
1926
## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1927
## If null or unset, the value is determined dynamically based on target Kubernetes version.
1928
##
1929
https: null
1930
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1931
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1932
## authentication.
1933
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1934
##
1935
authorization:
1936
type: Bearer
1937
credentials:
1938
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1939
key: token
1940
## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1941
## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1942
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1943
##
1944
tlsConfig:
1945
insecureSkipVerify: true
1946
ca:
1947
configMap:
1948
name: kube-root-ca.crt
1949
key: ca.crt
1950
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1951
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1952
##
1953
metricRelabelings: []
1954
# - action: keep
1955
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1956
# sourceLabels: [__name__]
1957
1958
## RelabelConfigs to apply to samples before scraping
1959
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1960
##
1961
relabelings: []
1962
# - sourceLabels: [__meta_kubernetes_pod_node_name]
1963
# separator: ;
1964
# regex: ^(.*)$
1965
# targetLabel: nodename
1966
# replacement: $1
1967
# action: replace
1968
1969
## Additional labels
1970
##
1971
additionalLabels: {}
1972
# foo: bar
1973
1974
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1975
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1976
targetLabels: []
1977
## Component scraping coreDns. Use either this or kubeDns
1978
##
1979
coreDns:
1980
enabled: true
1981
service:
1982
enabled: true
1983
port: 9153
1984
targetPort: 9153
1985
ipDualStack:
1986
enabled: false
1987
ipFamilies: ["IPv6", "IPv4"]
1988
ipFamilyPolicy: "PreferDualStack"
1989
# selector:
1990
# k8s-app: kube-dns
1991
serviceMonitor:
1992
enabled: true
1993
## Scrape interval. If not set, the Prometheus default scrape interval is used.
1994
##
1995
interval: ""
1996
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1997
##
1998
sampleLimit: 0
1999
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2000
##
2001
targetLimit: 0
2002
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2003
##
2004
labelLimit: 0
2005
## 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.
2006
##
2007
labelNameLengthLimit: 0
2008
## 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.
2009
##
2010
labelValueLengthLimit: 0
2011
## proxyUrl: URL of a proxy that should be used for scraping.
2012
##
2013
proxyUrl: ""
2014
## port: Name of the port the metrics will be scraped from
2015
##
2016
port: http-metrics
2017
jobLabel: jobLabel
2018
selector: {}
2019
# matchLabels:
2020
# k8s-app: kube-dns
2021
2022
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2023
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2024
##
2025
metricRelabelings: []
2026
# - action: keep
2027
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2028
# sourceLabels: [__name__]
2029
2030
## RelabelConfigs to apply to samples before scraping
2031
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2032
##
2033
relabelings: []
2034
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2035
# separator: ;
2036
# regex: ^(.*)$
2037
# targetLabel: nodename
2038
# replacement: $1
2039
# action: replace
2040
2041
## Additional labels
2042
##
2043
additionalLabels: {}
2044
# foo: bar
2045
2046
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2047
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2048
targetLabels: []
2049
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2050
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2051
## authentication.
2052
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2053
##
2054
authorization:
2055
type: Bearer
2056
credentials:
2057
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2058
key: token
2059
## Component scraping kubeDns. Use either this or coreDns
2060
##
2061
kubeDns:
2062
enabled: false
2063
service:
2064
dnsmasq:
2065
port: 10054
2066
targetPort: 10054
2067
skydns:
2068
port: 10055
2069
targetPort: 10055
2070
ipDualStack:
2071
enabled: false
2072
ipFamilies: ["IPv6", "IPv4"]
2073
ipFamilyPolicy: "PreferDualStack"
2074
# selector:
2075
# k8s-app: kube-dns
2076
serviceMonitor:
2077
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2078
##
2079
interval: ""
2080
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2081
##
2082
sampleLimit: 0
2083
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2084
##
2085
targetLimit: 0
2086
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2087
##
2088
labelLimit: 0
2089
## 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.
2090
##
2091
labelNameLengthLimit: 0
2092
## 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.
2093
##
2094
labelValueLengthLimit: 0
2095
## proxyUrl: URL of a proxy that should be used for scraping.
2096
##
2097
proxyUrl: ""
2098
jobLabel: jobLabel
2099
selector: {}
2100
# matchLabels:
2101
# k8s-app: kube-dns
2102
2103
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2104
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2105
##
2106
metricRelabelings: []
2107
# - action: keep
2108
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2109
# sourceLabels: [__name__]
2110
2111
## RelabelConfigs to apply to samples before scraping
2112
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2113
##
2114
relabelings: []
2115
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2116
# separator: ;
2117
# regex: ^(.*)$
2118
# targetLabel: nodename
2119
# replacement: $1
2120
# action: replace
2121
2122
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2123
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2124
##
2125
dnsmasqMetricRelabelings: []
2126
# - action: keep
2127
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2128
# sourceLabels: [__name__]
2129
2130
## RelabelConfigs to apply to samples before scraping
2131
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2132
##
2133
dnsmasqRelabelings: []
2134
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2135
# separator: ;
2136
# regex: ^(.*)$
2137
# targetLabel: nodename
2138
# replacement: $1
2139
# action: replace
2140
2141
## Additional labels
2142
##
2143
additionalLabels: {}
2144
# foo: bar
2145
2146
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2147
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2148
targetLabels: []
2149
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2150
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2151
## authentication.
2152
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2153
##
2154
authorization:
2155
type: Bearer
2156
credentials:
2157
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2158
key: token
2159
## Component scraping etcd
2160
##
2161
kubeEtcd:
2162
enabled: true
2163
## If your etcd is not deployed as a pod, specify IPs it can be found on
2164
##
2165
endpoints: []
2166
# - 10.141.4.22
2167
# - 10.141.4.23
2168
# - 10.141.4.24
2169
2170
## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2171
##
2172
service:
2173
enabled: true
2174
port: 2381
2175
targetPort: 2381
2176
ipDualStack:
2177
enabled: false
2178
ipFamilies: ["IPv6", "IPv4"]
2179
ipFamilyPolicy: "PreferDualStack"
2180
# selector:
2181
# component: etcd
2182
## Configure secure access to the etcd cluster by referencing a secret holding the client
2183
## certificate. For example, with a secret named etcd-client-cert
2184
##
2185
## serviceMonitor:
2186
## scheme: https
2187
## tlsConfig:
2188
## insecureSkipVerify: false
2189
## serverName: localhost
2190
## ca:
2191
## secret:
2192
## name: etcd-client-cert
2193
## key: etcd-ca
2194
## cert:
2195
## secret:
2196
## name: etcd-client-cert
2197
## key: etcd-client
2198
## keySecret:
2199
## name: etcd-client-cert
2200
## key: etcd-client-key
2201
##
2202
serviceMonitor:
2203
enabled: true
2204
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2205
##
2206
interval: ""
2207
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2208
##
2209
sampleLimit: 0
2210
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2211
##
2212
targetLimit: 0
2213
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2214
##
2215
labelLimit: 0
2216
## 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.
2217
##
2218
labelNameLengthLimit: 0
2219
## 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.
2220
##
2221
labelValueLengthLimit: 0
2222
## proxyUrl: URL of a proxy that should be used for scraping.
2223
##
2224
proxyUrl: ""
2225
scheme: http
2226
## TLS configuration of the ServiceMonitor endpoint. Only applies when scheme is https.
2227
## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2228
## etcd requires client certificates, see the commented example above.
2229
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2230
##
2231
tlsConfig:
2232
insecureSkipVerify: false
2233
## port: Name of the port the metrics will be scraped from
2234
##
2235
port: http-metrics
2236
jobLabel: jobLabel
2237
selector: {}
2238
# matchLabels:
2239
# component: etcd
2240
2241
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2242
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2243
##
2244
metricRelabelings: []
2245
# - action: keep
2246
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2247
# sourceLabels: [__name__]
2248
2249
## RelabelConfigs to apply to samples before scraping
2250
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2251
##
2252
relabelings: []
2253
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2254
# separator: ;
2255
# regex: ^(.*)$
2256
# targetLabel: nodename
2257
# replacement: $1
2258
# action: replace
2259
2260
## Additional labels
2261
##
2262
additionalLabels: {}
2263
# foo: bar
2264
2265
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2266
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2267
targetLabels: []
2268
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2269
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2270
## authentication.
2271
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2272
##
2273
authorization:
2274
type: Bearer
2275
credentials:
2276
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2277
key: token
2278
## Component scraping kube scheduler
2279
##
2280
kubeScheduler:
2281
enabled: true
2282
# Overrides the job selector in Grafana dashboards and Prometheus rules
2283
# For k3s clusters, change to k3s-server
2284
jobNameOverride: ""
2285
## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2286
##
2287
endpoints: []
2288
# - 10.141.4.22
2289
# - 10.141.4.23
2290
# - 10.141.4.24
2291
2292
## If using kubeScheduler.endpoints only the port and targetPort are used
2293
##
2294
service:
2295
enabled: true
2296
## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2297
## of default port in Kubernetes 1.23.
2298
##
2299
port: null
2300
targetPort: null
2301
ipDualStack:
2302
enabled: false
2303
ipFamilies: ["IPv6", "IPv4"]
2304
ipFamilyPolicy: "PreferDualStack"
2305
# selector:
2306
# component: kube-scheduler
2307
serviceMonitor:
2308
enabled: true
2309
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2310
##
2311
interval: ""
2312
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2313
##
2314
sampleLimit: 0
2315
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2316
##
2317
targetLimit: 0
2318
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2319
##
2320
labelLimit: 0
2321
## 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.
2322
##
2323
labelNameLengthLimit: 0
2324
## 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.
2325
##
2326
labelValueLengthLimit: 0
2327
## proxyUrl: URL of a proxy that should be used for scraping.
2328
##
2329
proxyUrl: ""
2330
## Enable scraping kube-scheduler over https.
2331
## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2332
## If null or unset, the value is determined dynamically based on target Kubernetes version.
2333
##
2334
https: null
2335
## port: Name of the port the metrics will be scraped from
2336
##
2337
port: http-metrics
2338
jobLabel: jobLabel
2339
selector: {}
2340
# matchLabels:
2341
# component: kube-scheduler
2342
2343
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2344
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2345
## authentication.
2346
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2347
##
2348
authorization:
2349
type: Bearer
2350
credentials:
2351
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2352
key: token
2353
## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2354
## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2355
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2356
##
2357
tlsConfig:
2358
insecureSkipVerify: true
2359
ca:
2360
configMap:
2361
name: kube-root-ca.crt
2362
key: ca.crt
2363
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2364
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2365
##
2366
metricRelabelings: []
2367
# - action: keep
2368
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2369
# sourceLabels: [__name__]
2370
2371
## RelabelConfigs to apply to samples before scraping
2372
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2373
##
2374
relabelings: []
2375
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2376
# separator: ;
2377
# regex: ^(.*)$
2378
# targetLabel: nodename
2379
# replacement: $1
2380
# action: replace
2381
2382
## Additional labels
2383
##
2384
additionalLabels: {}
2385
# foo: bar
2386
2387
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2388
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2389
targetLabels: []
2390
resource:
2391
## Enable scraping /metrics/resource from kube-scheduler
2392
## https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics
2393
enabled: false
2394
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2395
##
2396
interval: ""
2397
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2398
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2399
##
2400
metricRelabelings: []
2401
# - action: keep
2402
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2403
# sourceLabels: [__name__]
2404
2405
## RelabelConfigs to apply to samples before scraping
2406
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2407
##
2408
relabelings: []
2409
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2410
# separator: ;
2411
# regex: ^(.*)$
2412
# targetLabel: nodename
2413
# replacement: $1
2414
# action: replace
2415
## Component scraping kube proxy
2416
##
2417
kubeProxy:
2418
enabled: true
2419
# Overrides the job selector in Grafana dashboards and Prometheus rules
2420
# For k3s clusters, change to k3s-server
2421
jobNameOverride: ""
2422
## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2423
##
2424
endpoints: []
2425
# - 10.141.4.22
2426
# - 10.141.4.23
2427
# - 10.141.4.24
2428
2429
service:
2430
enabled: true
2431
port: 10249
2432
targetPort: 10249
2433
ipDualStack:
2434
enabled: false
2435
ipFamilies: ["IPv6", "IPv4"]
2436
ipFamilyPolicy: "PreferDualStack"
2437
# selector:
2438
# k8s-app: kube-proxy
2439
serviceMonitor:
2440
enabled: true
2441
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2442
##
2443
interval: ""
2444
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2445
##
2446
sampleLimit: 0
2447
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2448
##
2449
targetLimit: 0
2450
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2451
##
2452
labelLimit: 0
2453
## 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.
2454
##
2455
labelNameLengthLimit: 0
2456
## 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.
2457
##
2458
labelValueLengthLimit: 0
2459
## proxyUrl: URL of a proxy that should be used for scraping.
2460
##
2461
proxyUrl: ""
2462
## port: Name of the port the metrics will be scraped from
2463
##
2464
port: http-metrics
2465
jobLabel: jobLabel
2466
selector: {}
2467
# matchLabels:
2468
# k8s-app: kube-proxy
2469
2470
## Enable scraping kube-proxy over https.
2471
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2472
##
2473
https: false
2474
## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2475
## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2476
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2477
##
2478
tlsConfig:
2479
ca:
2480
configMap:
2481
name: kube-root-ca.crt
2482
key: ca.crt
2483
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2484
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2485
##
2486
metricRelabelings: []
2487
# - action: keep
2488
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2489
# sourceLabels: [__name__]
2490
2491
## RelabelConfigs to apply to samples before scraping
2492
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2493
##
2494
relabelings: []
2495
# - action: keep
2496
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2497
# sourceLabels: [__name__]
2498
2499
## Additional labels
2500
##
2501
additionalLabels: {}
2502
# foo: bar
2503
2504
## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2505
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2506
targetLabels: []
2507
## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2508
## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2509
## authentication.
2510
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2511
##
2512
authorization:
2513
type: Bearer
2514
credentials:
2515
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2516
key: token
2517
## Component scraping kube state metrics
2518
##
2519
kubeStateMetrics:
2520
enabled: true
2521
## Configuration for kube-state-metrics subchart
2522
##
2523
kube-state-metrics:
2524
## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2525
releaseLabel: true
2526
## Enable scraping via kubernetes-service-endpoints
2527
## Disabled by default as we service monitor is enabled below
2528
##
2529
prometheusScrape: false
2530
prometheus:
2531
monitor:
2532
## Enable scraping via service monitor
2533
## Disable to prevent duplication if you enable prometheusScrape above
2534
enabled: true
2535
## kube-state-metrics endpoint
2536
http:
2537
## Keep labels from scraped data, overriding server-side labels
2538
honorLabels: true
2539
## selfMonitor endpoint
2540
metrics:
2541
## Keep labels from scraped data, overriding server-side labels
2542
honorLabels: true
2543
## Deploy node exporter as a daemonset to all nodes
2544
##
2545
nodeExporter:
2546
enabled: true
2547
operatingSystems:
2548
linux:
2549
enabled: true
2550
aix:
2551
enabled: true
2552
darwin:
2553
enabled: true
2554
## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2555
##
2556
forceDeployDashboards: false
2557
## Configuration for prometheus-node-exporter subchart
2558
##
2559
prometheus-node-exporter:
2560
## Enable scraping via kubernetes-service-endpoints
2561
## Disabled by default as service monitor is enabled below
2562
##
2563
prometheusScrape: false
2564
namespaceOverride: ""
2565
podLabels:
2566
## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2567
##
2568
jobLabel: node-exporter
2569
releaseLabel: true
2570
extraArgs:
2571
- --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2572
- --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|erofs)$
2573
service:
2574
portName: http-metrics
2575
ipDualStack:
2576
enabled: false
2577
ipFamilies: ["IPv6", "IPv4"]
2578
ipFamilyPolicy: "PreferDualStack"
2579
labels:
2580
jobLabel: node-exporter
2581
image:
2582
distroless: true
2583
prometheus:
2584
monitor:
2585
## Enable scraping via service monitor
2586
## Disable to prevent duplication if you have enabled prometheusScrape above
2587
#
2588
enabled: true
2589
jobLabel: jobLabel
2590
## Scrape interval. If not set, the Prometheus default scrape interval is used.
2591
##
2592
interval: ""
2593
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2594
##
2595
sampleLimit: 0
2596
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2597
##
2598
targetLimit: 0
2599
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2600
##
2601
labelLimit: 0
2602
## 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.
2603
##
2604
labelNameLengthLimit: 0
2605
## 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.
2606
##
2607
labelValueLengthLimit: 0
2608
## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2609
##
2610
scrapeTimeout: ""
2611
## proxyUrl: URL of a proxy that should be used for scraping.
2612
##
2613
proxyUrl: ""
2614
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2615
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2616
##
2617
metricRelabelings: []
2618
# - sourceLabels: [__name__]
2619
# separator: ;
2620
# regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2621
# replacement: $1
2622
# action: drop
2623
2624
## RelabelConfigs to apply to samples before scraping
2625
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2626
##
2627
relabelings: []
2628
# - sourceLabels: [__meta_kubernetes_pod_node_name]
2629
# separator: ;
2630
# regex: ^(.*)$
2631
# targetLabel: nodename
2632
# replacement: $1
2633
# action: replace
2634
## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2635
##
2636
# attachMetadata:
2637
# node: false
2638
2639
podMonitor:
2640
enabled: false
2641
jobLabel: jobLabel
2642
rbac:
2643
## If true, create PSPs for node-exporter
2644
##
2645
pspEnabled: false
2646
## Manages Prometheus and Alertmanager components
2647
##
2648
prometheusOperator:
2649
enabled: true
2650
## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2651
fullnameOverride: ""
2652
## Number of old replicasets to retain ##
2653
## The default value is 10, 0 will garbage-collect old replicasets ##
2654
revisionHistoryLimit: 10
2655
## Strategy of the deployment
2656
##
2657
strategy: {}
2658
## Prometheus-Operator v0.39.0 and later support TLS natively.
2659
##
2660
tls:
2661
enabled: true
2662
# Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2663
tlsMinVersion: VersionTLS13
2664
# The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2665
internalPort: 10250
2666
## Liveness probe for the prometheusOperator deployment
2667
##
2668
livenessProbe:
2669
enabled: true
2670
failureThreshold: 3
2671
initialDelaySeconds: 0
2672
periodSeconds: 10
2673
successThreshold: 1
2674
timeoutSeconds: 1
2675
## Readiness probe for the prometheusOperator deployment
2676
##
2677
readinessProbe:
2678
enabled: true
2679
failureThreshold: 3
2680
initialDelaySeconds: 0
2681
periodSeconds: 10
2682
successThreshold: 1
2683
timeoutSeconds: 1
2684
## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2685
## rules from making their way into prometheus and potentially preventing the container from starting
2686
admissionWebhooks:
2687
## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2688
## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2689
failurePolicy: ""
2690
## The default timeoutSeconds is 10 and the maximum value is 30.
2691
timeoutSeconds: 10
2692
enabled: true
2693
## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2694
## If unspecified, system trust roots on the apiserver are used.
2695
caBundle: ""
2696
## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2697
## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2698
## certs ahead of time if you wish.
2699
##
2700
annotations: {}
2701
# argocd.argoproj.io/hook: PreSync
2702
# argocd.argoproj.io/hook-delete-policy: HookSucceeded
2703
2704
namespaceSelector: {}
2705
objectSelector: {}
2706
# Match conditions for admission webhooks.
2707
# Must be a list, for example:
2708
# - name: exclude-leases
2709
# expression: '!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'
2710
matchConditions: []
2711
mutatingWebhookConfiguration:
2712
annotations: {}
2713
# argocd.argoproj.io/hook: PreSync
2714
validatingWebhookConfiguration:
2715
annotations: {}
2716
# argocd.argoproj.io/hook: PreSync
2717
deployment:
2718
enabled: false
2719
## Number of replicas
2720
##
2721
replicas: 1
2722
## Strategy of the deployment
2723
##
2724
strategy: {}
2725
# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2726
podDisruptionBudget:
2727
enabled: false
2728
minAvailable: 1
2729
# maxUnavailable: ""
2730
unhealthyPodEvictionPolicy: AlwaysAllow
2731
## Number of old replicasets to retain ##
2732
## The default value is 10, 0 will garbage-collect old replicasets ##
2733
revisionHistoryLimit: 10
2734
## Prometheus-Operator v0.39.0 and later support TLS natively.
2735
##
2736
tls:
2737
enabled: true
2738
# Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2739
tlsMinVersion: VersionTLS13
2740
# The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2741
internalPort: 10250
2742
## Service account for Prometheus Operator Webhook to use.
2743
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2744
##
2745
serviceAccount:
2746
annotations: {}
2747
automountServiceAccountToken: false
2748
create: true
2749
name: ""
2750
## Configuration for Prometheus operator Webhook service
2751
##
2752
service:
2753
annotations: {}
2754
labels: {}
2755
clusterIP: ""
2756
ipDualStack:
2757
enabled: false
2758
ipFamilies: ["IPv6", "IPv4"]
2759
ipFamilyPolicy: "PreferDualStack"
2760
## Port to expose on each node
2761
## Only used if service.type is 'NodePort'
2762
##
2763
nodePort: 31080
2764
nodePortTls: 31443
2765
## Additional ports to open for Prometheus operator Webhook service
2766
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2767
##
2768
additionalPorts: []
2769
## Loadbalancer IP
2770
## Only use if service.type is "LoadBalancer"
2771
##
2772
loadBalancerIP: ""
2773
loadBalancerSourceRanges: []
2774
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2775
##
2776
externalTrafficPolicy: Cluster
2777
## Service type
2778
## NodePort, ClusterIP, LoadBalancer
2779
##
2780
type: ClusterIP
2781
## List of IP addresses at which the Prometheus server service is available
2782
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2783
##
2784
externalIPs: []
2785
# ## Labels to add to the operator webhook deployment
2786
# ##
2787
labels: {}
2788
## Annotations to add to the operator webhook deployment
2789
##
2790
annotations: {}
2791
## Labels to add to the operator webhook pod
2792
##
2793
podLabels: {}
2794
## Annotations to add to the operator webhook pod
2795
##
2796
podAnnotations: {}
2797
## Assign a PriorityClassName to pods if set
2798
# priorityClassName: ""
2799
2800
## Define Log Format
2801
# Use logfmt (default) or json logging
2802
# logFormat: logfmt
2803
2804
## Decrease log verbosity to errors only
2805
# logLevel: error
2806
2807
## Prometheus-operator webhook image
2808
##
2809
image:
2810
registry: cgr.dev
2811
repository: chainguard-private/prometheus-admission-webhook
2812
# if not set appVersion field from Chart.yaml is used
2813
tag: 0.94.1-r5
2814
sha: sha256:823d77ff6cefe9c9e4c883465b70cf08399f039ede78757a50c7b9ec505ddc4c
2815
pullPolicy: IfNotPresent
2816
## Define Log Format
2817
# Use logfmt (default) or json logging
2818
# logFormat: logfmt
2819
2820
## Decrease log verbosity to errors only
2821
# logLevel: error
2822
2823
## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2824
## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2825
## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2826
## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2827
##
2828
promqlOptions: []
2829
## Liveness probe
2830
##
2831
livenessProbe:
2832
enabled: true
2833
failureThreshold: 3
2834
initialDelaySeconds: 30
2835
periodSeconds: 10
2836
successThreshold: 1
2837
timeoutSeconds: 1
2838
## Readiness probe
2839
##
2840
readinessProbe:
2841
enabled: true
2842
failureThreshold: 3
2843
initialDelaySeconds: 5
2844
periodSeconds: 10
2845
successThreshold: 1
2846
timeoutSeconds: 1
2847
## Resource limits & requests
2848
##
2849
resources: {}
2850
# limits:
2851
# cpu: 200m
2852
# memory: 200Mi
2853
# requests:
2854
# cpu: 100m
2855
# memory: 100Mi
2856
2857
# Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2858
# because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2859
##
2860
hostNetwork: false
2861
## Define which Nodes the Pods are scheduled on.
2862
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2863
##
2864
nodeSelector:
2865
kubernetes.io/os: linux
2866
## Tolerations for use with node taints
2867
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2868
##
2869
tolerations: []
2870
# - key: "key"
2871
# operator: "Equal"
2872
# value: "value"
2873
# effect: "NoSchedule"
2874
2875
## Assign custom affinity rules to the prometheus operator
2876
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2877
##
2878
affinity: {}
2879
# nodeAffinity:
2880
# requiredDuringSchedulingIgnoredDuringExecution:
2881
# nodeSelectorTerms:
2882
# - matchExpressions:
2883
# - key: kubernetes.io/e2e-az-name
2884
# operator: In
2885
# values:
2886
# - e2e-az1
2887
# - e2e-az2
2888
dnsConfig: {}
2889
# nameservers:
2890
# - 1.2.3.4
2891
# searches:
2892
# - ns1.svc.cluster-domain.example
2893
# - my.dns.search.suffix
2894
# options:
2895
# - name: ndots
2896
# value: "2"
2897
# - name: edns0
2898
securityContext:
2899
fsGroup: 65534
2900
runAsGroup: 65534
2901
runAsNonRoot: true
2902
runAsUser: 65534
2903
seccompProfile:
2904
type: RuntimeDefault
2905
## Container-specific security context configuration
2906
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2907
##
2908
containerSecurityContext:
2909
allowPrivilegeEscalation: false
2910
readOnlyRootFilesystem: true
2911
capabilities:
2912
drop:
2913
- ALL
2914
## If false then the user will opt out of automounting API credentials.
2915
##
2916
automountServiceAccountToken: true
2917
patch:
2918
enabled: true
2919
image:
2920
registry: cgr.dev
2921
repository: chainguard-private/kube-webhook-certgen
2922
tag: 1.15.10-r11
2923
sha: sha256:dd7710fb65f4350a41597924268bdc398f7b4e0d98b099d4943e7c5f9337460f
2924
pullPolicy: IfNotPresent
2925
resources: {}
2926
## Provide a priority class name to the webhook patching job
2927
##
2928
priorityClassName: ""
2929
ttlSecondsAfterFinished: 60
2930
annotations: {}
2931
# argocd.argoproj.io/hook: PreSync
2932
# argocd.argoproj.io/hook-delete-policy: HookSucceeded
2933
podAnnotations: {}
2934
nodeSelector:
2935
kubernetes.io/os: linux
2936
affinity: {}
2937
tolerations: []
2938
## SecurityContext holds pod-level security attributes and common container settings.
2939
## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2940
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2941
##
2942
securityContext:
2943
runAsGroup: 2000
2944
runAsNonRoot: true
2945
runAsUser: 2000
2946
seccompProfile:
2947
type: RuntimeDefault
2948
## Service account for Prometheus Operator Webhook Job Patch to use.
2949
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2950
##
2951
serviceAccount:
2952
create: true
2953
annotations: {}
2954
automountServiceAccountToken: true
2955
# Security context for create job container
2956
createSecretJob:
2957
securityContext:
2958
allowPrivilegeEscalation: false
2959
readOnlyRootFilesystem: true
2960
capabilities:
2961
drop:
2962
- ALL
2963
# Security context for patch job container
2964
patchWebhookJob:
2965
securityContext:
2966
allowPrivilegeEscalation: false
2967
readOnlyRootFilesystem: true
2968
capabilities:
2969
drop:
2970
- ALL
2971
# Use certmanager to generate webhook certs
2972
certManager:
2973
enabled: false
2974
# self-signed root certificate
2975
rootCert:
2976
duration: "" # default to be 5y
2977
# -- Set the revisionHistoryLimit on the Certificate. See
2978
# https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2979
# Defaults to nil.
2980
revisionHistoryLimit:
2981
admissionCert:
2982
duration: "" # default to be 1y
2983
# -- Set the revisionHistoryLimit on the Certificate. See
2984
# https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2985
# Defaults to nil.
2986
revisionHistoryLimit:
2987
# issuerRef:
2988
# name: "issuer"
2989
# kind: "ClusterIssuer"
2990
# -- Set the private key algorithm and size for the Certificate. See
2991
# https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
2992
# Defaults to RSA 2048
2993
# privateKey:
2994
# algorithm: ECDSA
2995
# size: 384
2996
2997
## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2998
## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
2999
##
3000
namespaces: {}
3001
# releaseNamespace: true
3002
# additional:
3003
# - kube-system
3004
3005
## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
3006
##
3007
denyNamespaces: []
3008
## Filter namespaces to look for prometheus-operator custom resources
3009
##
3010
alertmanagerInstanceNamespaces: []
3011
alertmanagerConfigNamespaces: []
3012
prometheusInstanceNamespaces: []
3013
thanosRulerInstanceNamespaces: []
3014
## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
3015
## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
3016
## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
3017
##
3018
# clusterDomain: "cluster.local"
3019
networkPolicy:
3020
## Enable creation of NetworkPolicy resources.
3021
##
3022
enabled: false
3023
## Flavor of the network policy to use.
3024
# Can be:
3025
# * kubernetes for networking.k8s.io/v1/NetworkPolicy
3026
# * cilium for cilium.io/v2/CiliumNetworkPolicy
3027
flavor: kubernetes
3028
# cilium:
3029
# egress:
3030
3031
## match labels used in selector
3032
# matchLabels: {}
3033
## Service account for Prometheus Operator to use.
3034
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3035
##
3036
serviceAccount:
3037
create: true
3038
name: ""
3039
automountServiceAccountToken: true
3040
annotations: {}
3041
# -- terminationGracePeriodSeconds for container lifecycle hook
3042
terminationGracePeriodSeconds: 30
3043
# -- Specify lifecycle hooks for the controller
3044
lifecycle: {}
3045
## Configuration for Prometheus operator service
3046
##
3047
service:
3048
annotations: {}
3049
labels: {}
3050
clusterIP: ""
3051
ipDualStack:
3052
enabled: false
3053
ipFamilies: ["IPv6", "IPv4"]
3054
ipFamilyPolicy: "PreferDualStack"
3055
## Port to expose on each node
3056
## Only used if service.type is 'NodePort'
3057
##
3058
nodePort: 30080
3059
nodePortTls: 30443
3060
## Additional ports to open for Prometheus operator service
3061
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
3062
##
3063
additionalPorts: []
3064
## Loadbalancer IP
3065
## Only use if service.type is "LoadBalancer"
3066
##
3067
loadBalancerIP: ""
3068
loadBalancerSourceRanges: []
3069
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3070
##
3071
externalTrafficPolicy: Cluster
3072
## Service type
3073
## NodePort, ClusterIP, LoadBalancer
3074
##
3075
type: ClusterIP
3076
## List of IP addresses at which the Prometheus server service is available
3077
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3078
##
3079
externalIPs: []
3080
# ## Labels to add to the operator deployment
3081
# ##
3082
labels: {}
3083
## Annotations to add to the operator deployment
3084
##
3085
annotations: {}
3086
## Labels to add to the operator pod
3087
##
3088
podLabels: {}
3089
## Annotations to add to the operator pod
3090
##
3091
podAnnotations: {}
3092
## Assign a podDisruptionBudget to the operator
3093
##
3094
podDisruptionBudget:
3095
enabled: false
3096
minAvailable: 1
3097
# maxUnavailable: ""
3098
unhealthyPodEvictionPolicy: AlwaysAllow
3099
## Assign a PriorityClassName to pods if set
3100
# priorityClassName: ""
3101
3102
## Define Log Format
3103
# Use logfmt (default) or json logging
3104
# logFormat: logfmt
3105
3106
## Decrease log verbosity to errors only
3107
# logLevel: error
3108
kubeletService:
3109
## If true, the operator will create and maintain a service for scraping kubelets
3110
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
3111
##
3112
enabled: true
3113
namespace: kube-system
3114
selector: ""
3115
## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
3116
name: ""
3117
## Create Endpoints objects for kubelet targets.
3118
kubeletEndpointsEnabled: true
3119
## Create EndpointSlice objects for kubelet targets.
3120
kubeletEndpointSliceEnabled: false
3121
## Extra arguments to pass to prometheusOperator
3122
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
3123
extraArgs: []
3124
# - --labels="cluster=talos-cluster"
3125
3126
## Create a servicemonitor for the operator
3127
##
3128
serviceMonitor:
3129
## If true, create a serviceMonitor for prometheus operator
3130
##
3131
selfMonitor: true
3132
## Labels for ServiceMonitor
3133
additionalLabels: {}
3134
## Scrape interval. If not set, the Prometheus default scrape interval is used.
3135
##
3136
interval: ""
3137
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3138
##
3139
sampleLimit: 0
3140
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3141
##
3142
targetLimit: 0
3143
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3144
##
3145
labelLimit: 0
3146
## 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.
3147
##
3148
labelNameLengthLimit: 0
3149
## 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.
3150
##
3151
labelValueLengthLimit: 0
3152
## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
3153
scrapeTimeout: ""
3154
## Metric relabel configs to apply to samples before ingestion.
3155
##
3156
metricRelabelings: []
3157
# - action: keep
3158
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3159
# sourceLabels: [__name__]
3160
3161
# relabel configs to apply to samples before ingestion.
3162
##
3163
relabelings: []
3164
# - sourceLabels: [__meta_kubernetes_pod_node_name]
3165
# separator: ;
3166
# regex: ^(.*)$
3167
# targetLabel: nodename
3168
# replacement: $1
3169
# action: replace
3170
## Resource limits & requests
3171
##
3172
resources: {}
3173
# limits:
3174
# cpu: 200m
3175
# memory: 200Mi
3176
# requests:
3177
# cpu: 100m
3178
# memory: 100Mi
3179
3180
## Operator Environment
3181
## env:
3182
## VARIABLE: value
3183
env:
3184
GOGC: "30"
3185
# Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3186
# because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3187
##
3188
hostNetwork: false
3189
## Define which Nodes the Pods are scheduled on.
3190
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3191
##
3192
nodeSelector:
3193
kubernetes.io/os: linux
3194
## Tolerations for use with node taints
3195
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3196
##
3197
tolerations: []
3198
# - key: "key"
3199
# operator: "Equal"
3200
# value: "value"
3201
# effect: "NoSchedule"
3202
3203
## Assign custom affinity rules to the prometheus operator
3204
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3205
##
3206
affinity: {}
3207
# nodeAffinity:
3208
# requiredDuringSchedulingIgnoredDuringExecution:
3209
# nodeSelectorTerms:
3210
# - matchExpressions:
3211
# - key: kubernetes.io/e2e-az-name
3212
# operator: In
3213
# values:
3214
# - e2e-az1
3215
# - e2e-az2
3216
dnsConfig: {}
3217
# nameservers:
3218
# - 1.2.3.4
3219
# searches:
3220
# - ns1.svc.cluster-domain.example
3221
# - my.dns.search.suffix
3222
# options:
3223
# - name: ndots
3224
# value: "2"
3225
# - name: edns0
3226
securityContext:
3227
fsGroup: 65534
3228
runAsGroup: 65534
3229
runAsNonRoot: true
3230
runAsUser: 65534
3231
seccompProfile:
3232
type: RuntimeDefault
3233
## Setup hostUsers for prometheus-operator
3234
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
3235
hostUsers: ~
3236
## Container-specific security context configuration
3237
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3238
##
3239
containerSecurityContext:
3240
allowPrivilegeEscalation: false
3241
readOnlyRootFilesystem: true
3242
capabilities:
3243
drop:
3244
- ALL
3245
# Enable vertical pod autoscaler support for prometheus-operator
3246
verticalPodAutoscaler:
3247
enabled: false
3248
# Recommender responsible for generating recommendation for the object.
3249
# List should be empty (then the default recommender will generate the recommendation)
3250
# or contain exactly one recommender.
3251
# recommenders:
3252
# - name: custom-recommender-performance
3253
3254
# List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3255
controlledResources: []
3256
# Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3257
# controlledValues: RequestsAndLimits
3258
3259
# Define the max allowed resources for the pod
3260
maxAllowed: {}
3261
# cpu: 200m
3262
# memory: 100Mi
3263
# Define the min allowed resources for the pod
3264
minAllowed: {}
3265
# cpu: 200m
3266
# memory: 100Mi
3267
3268
updatePolicy:
3269
# Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3270
# minReplicas: 1
3271
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3272
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3273
updateMode: Recreate
3274
## Prometheus-operator image
3275
##
3276
image:
3277
registry: cgr.dev
3278
repository: chainguard-private/prometheus-operator
3279
# if not set appVersion field from Chart.yaml is used
3280
tag: 0.94.1-r5
3281
sha: sha256:4df828332d4982158521508e9809d6bb3864913c8fd7dac358da52e9c4aafd2d
3282
pullPolicy: IfNotPresent
3283
## Prometheus image to use for prometheuses managed by the operator
3284
##
3285
# prometheusDefaultBaseImage: prometheus/prometheus
3286
3287
## Prometheus image registry to use for prometheuses managed by the operator
3288
##
3289
# prometheusDefaultBaseImageRegistry: quay.io
3290
3291
## Alertmanager image to use for alertmanagers managed by the operator
3292
##
3293
# alertmanagerDefaultBaseImage: prometheus/alertmanager
3294
3295
## Alertmanager image registry to use for alertmanagers managed by the operator
3296
##
3297
# alertmanagerDefaultBaseImageRegistry: quay.io
3298
3299
## Prometheus-config-reloader
3300
##
3301
prometheusConfigReloader:
3302
image:
3303
registry: cgr.dev
3304
repository: chainguard-private/prometheus-config-reloader
3305
# if not set appVersion field from Chart.yaml is used
3306
tag: 0.94.2-r0
3307
sha: sha256:a08cb039a99ac0ce604f9cbe7fcdd5274f52ee16e70d16de79b64deb31e1e841
3308
# add prometheus config reloader liveness and readiness probe. Default: false
3309
enableProbe: false
3310
# resource config for prometheusConfigReloader
3311
resources: {}
3312
# requests:
3313
# cpu: 200m
3314
# memory: 50Mi
3315
# limits:
3316
# cpu: 200m
3317
# memory: 50Mi
3318
## Thanos side-car image when configured
3319
##
3320
thanosImage:
3321
registry: cgr.dev
3322
repository: chainguard-private/thanos
3323
tag: 0.42.4-r13
3324
sha: sha256:c4533dd8411a0f1c7b5d0a67cad1d481243cd7d76f0c9a01a326cbdadb345740
3325
## Set a Label Selector to filter watched prometheus and prometheusAgent
3326
##
3327
prometheusInstanceSelector: ""
3328
## Set a Label Selector to filter watched alertmanager
3329
##
3330
alertmanagerInstanceSelector: ""
3331
## Set a Label Selector to filter watched thanosRuler
3332
thanosRulerInstanceSelector: ""
3333
## Set a Field Selector to filter watched secrets
3334
## `kubernetes.io/service-account-token` secrets are no longer excluded, so that changes to the
3335
## secret the control-plane ServiceMonitors authenticate with trigger a reconciliation.
3336
##
3337
secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=helm.sh/release.v1"
3338
## Feature gates to enable/disable operator features, rendered as --feature-gates=<key>=<value>.
3339
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md
3340
## Example:
3341
## featureGates:
3342
## PrometheusAgentDaemonSet: true
3343
## StatusForConfigurationResources: true
3344
featureGates: {}
3345
## If false then the user will opt out of automounting API credentials.
3346
##
3347
automountServiceAccountToken: true
3348
## Additional volumes
3349
##
3350
extraVolumes: []
3351
## Additional volume mounts
3352
##
3353
extraVolumeMounts: []
3354
## Deploy a Prometheus instance
3355
##
3356
prometheus:
3357
enabled: true
3358
## Toggle prometheus into agent mode
3359
## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3360
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3361
##
3362
agentMode: false
3363
## Annotations for Prometheus
3364
##
3365
annotations: {}
3366
## Additional labels for Prometheus
3367
##
3368
additionalLabels: {}
3369
## Configure network policy for the prometheus
3370
networkPolicy:
3371
enabled: false
3372
## Flavor of the network policy to use.
3373
# Can be:
3374
# * kubernetes for networking.k8s.io/v1/NetworkPolicy
3375
# * cilium for cilium.io/v2/CiliumNetworkPolicy
3376
flavor: kubernetes
3377
namespace:
3378
# cilium:
3379
# endpointSelector:
3380
# egress:
3381
# ingress:
3382
3383
# egress:
3384
# - {}
3385
# ingress:
3386
# - {}
3387
# podSelector:
3388
# matchLabels:
3389
# app: prometheus
3390
## Service account for Prometheuses to use.
3391
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3392
##
3393
serviceAccount:
3394
create: true
3395
name: ""
3396
annotations: {}
3397
automountServiceAccountToken: true
3398
## Create a `kubernetes.io/service-account-token` Secret for the Prometheus service account.
3399
## The control-plane ServiceMonitors reference it by default, because ServiceMonitors can only
3400
## authenticate through a Secret and Kubernetes no longer creates one automatically.
3401
## The resulting token is long-lived and does not expire; disable this and set the
3402
## `authorization` values of the control-plane components if you manage the credential yourself.
3403
## Only rendered together with the service account, so it requires `prometheus.enabled` and
3404
## `create` above. Leaving a control-plane component on the default `authorization` while the
3405
## Secret is not rendered is a rendering error rather than a silently broken ServiceMonitor.
3406
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#manually-create-an-api-token-for-a-serviceaccount
3407
##
3408
createTokenSecret: true
3409
# Service for thanos service discovery on sidecar
3410
# Enable this can make Thanos Query can use
3411
# `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3412
# Thanos sidecar on prometheus nodes
3413
# (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3414
thanosService:
3415
enabled: false
3416
annotations: {}
3417
labels: {}
3418
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3419
##
3420
externalTrafficPolicy: Cluster
3421
## Service type
3422
##
3423
type: ClusterIP
3424
## Service dual stack
3425
##
3426
ipDualStack:
3427
enabled: false
3428
ipFamilies: ["IPv6", "IPv4"]
3429
ipFamilyPolicy: "PreferDualStack"
3430
## gRPC port config
3431
portName: grpc
3432
port: 10901
3433
targetPort: "grpc"
3434
## HTTP port config (for metrics)
3435
httpPortName: http
3436
httpPort: 10902
3437
targetHttpPort: "http"
3438
## ClusterIP to assign
3439
# Default is to make this a headless service ("None")
3440
clusterIP: "None"
3441
## Port to expose on each node, if service type is NodePort
3442
##
3443
nodePort: 30901
3444
httpNodePort: 30902
3445
# ServiceMonitor to scrape Sidecar metrics
3446
# Needs thanosService to be enabled as well
3447
thanosServiceMonitor:
3448
enabled: false
3449
interval: ""
3450
## Additional labels
3451
##
3452
additionalLabels: {}
3453
## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3454
scheme: ""
3455
## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3456
## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3457
tlsConfig: {}
3458
bearerTokenFile:
3459
## Metric relabel configs to apply to samples before ingestion.
3460
metricRelabelings: []
3461
## relabel configs to apply to samples before ingestion.
3462
relabelings: []
3463
# Service for external access to sidecar
3464
# Enabling this creates a service to expose thanos-sidecar outside the cluster.
3465
thanosServiceExternal:
3466
enabled: false
3467
annotations: {}
3468
labels: {}
3469
loadBalancerIP: ""
3470
loadBalancerSourceRanges: []
3471
## gRPC port config
3472
portName: grpc
3473
port: 10901
3474
targetPort: "grpc"
3475
## HTTP port config (for metrics)
3476
httpPortName: http
3477
httpPort: 10902
3478
targetHttpPort: "http"
3479
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3480
##
3481
externalTrafficPolicy: Cluster
3482
## Service type
3483
##
3484
type: LoadBalancer
3485
## Port to expose on each node
3486
##
3487
nodePort: 30901
3488
httpNodePort: 30902
3489
## Configuration for Prometheus service
3490
##
3491
service:
3492
enabled: true
3493
annotations: {}
3494
labels: {}
3495
clusterIP: ""
3496
ipDualStack:
3497
enabled: false
3498
ipFamilies: ["IPv6", "IPv4"]
3499
ipFamilyPolicy: "PreferDualStack"
3500
## Port for Prometheus Service to listen on
3501
##
3502
port: 9090
3503
## To be used with a proxy extraContainer port
3504
targetPort: 9090
3505
## Port for Prometheus Reloader to listen on
3506
##
3507
reloaderWebPort: 8080
3508
## Port to expose for Prometheus Reloader
3509
## Only used if service.type is 'NodePort'
3510
##
3511
reloaderWebNodePort: null
3512
## List of IP addresses at which the Prometheus server service is available
3513
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3514
##
3515
externalIPs: []
3516
## Port to expose on each node
3517
## Only used if service.type is 'NodePort'
3518
##
3519
nodePort: 30090
3520
## Loadbalancer IP
3521
## Only use if service.type is "LoadBalancer"
3522
loadBalancerIP: ""
3523
loadBalancerSourceRanges: []
3524
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3525
##
3526
externalTrafficPolicy: Cluster
3527
## Service type
3528
##
3529
type: ClusterIP
3530
## Additional ports to open for Prometheus service
3531
##
3532
additionalPorts: []
3533
# additionalPorts:
3534
# - name: oauth-proxy
3535
# port: 8081
3536
# targetPort: 8081
3537
# - name: oauth-metrics
3538
# port: 8082
3539
# targetPort: 8082
3540
3541
## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3542
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3543
publishNotReadyAddresses: false
3544
## If you want to make sure that connections from a particular client are passed to the same Pod each time
3545
## Accepts 'ClientIP' or 'None'
3546
##
3547
sessionAffinity: None
3548
## If you want to modify the ClientIP sessionAffinity timeout
3549
## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3550
##
3551
sessionAffinityConfig:
3552
clientIP:
3553
timeoutSeconds: 10800
3554
## Configuration for creating a separate Service for each statefulset Prometheus replica
3555
##
3556
servicePerReplica:
3557
enabled: false
3558
annotations: {}
3559
## Port for Prometheus Service per replica to listen on
3560
##
3561
port: 9090
3562
## To be used with a proxy extraContainer port
3563
targetPort: 9090
3564
## Port to expose on each node
3565
## Only used if servicePerReplica.type is 'NodePort'
3566
##
3567
nodePort: 30091
3568
## Loadbalancer source IP ranges
3569
## Only used if servicePerReplica.type is "LoadBalancer"
3570
loadBalancerSourceRanges: []
3571
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3572
##
3573
externalTrafficPolicy: Cluster
3574
## Service type
3575
##
3576
type: ClusterIP
3577
## Service dual stack
3578
##
3579
ipDualStack:
3580
enabled: false
3581
ipFamilies: ["IPv6", "IPv4"]
3582
ipFamilyPolicy: "PreferDualStack"
3583
## Configure pod disruption budgets for Prometheus
3584
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3585
##
3586
podDisruptionBudget:
3587
enabled: false
3588
minAvailable: 1
3589
# maxUnavailable: ""
3590
unhealthyPodEvictionPolicy: AlwaysAllow
3591
## Enable vertical pod autoscaler support for Prometheus
3592
## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3593
##
3594
verticalPodAutoscaler:
3595
enabled: false
3596
# Recommender responsible for generating recommendation for the object.
3597
# List should be empty (then the default recommender will generate the recommendation)
3598
# or contain exactly one recommender.
3599
# recommenders:
3600
# - name: custom-recommender-performance
3601
3602
# List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3603
controlledResources: []
3604
# Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3605
# controlledValues: RequestsAndLimits
3606
3607
# Define the max allowed resources for the pod
3608
maxAllowed: {}
3609
# cpu: 200m
3610
# memory: 100Mi
3611
# Define the min allowed resources for the pod
3612
minAllowed: {}
3613
# cpu: 200m
3614
# memory: 100Mi
3615
3616
updatePolicy:
3617
# Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3618
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3619
updateMode: Recreate
3620
# Ingress exposes thanos sidecar outside the cluster
3621
thanosIngress:
3622
enabled: false
3623
ingressClassName: ""
3624
annotations: {}
3625
labels: {}
3626
servicePort: 10901
3627
## Port to expose on each node
3628
## Only used if service.type is 'NodePort'
3629
##
3630
nodePort: 30901
3631
## Hosts must be provided if Ingress is enabled.
3632
##
3633
hosts: []
3634
# - thanos-gateway.domain.com
3635
3636
## Paths to use for ingress rules
3637
##
3638
paths: []
3639
# - /
3640
3641
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3642
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3643
# pathType: ImplementationSpecific
3644
3645
## TLS configuration for Thanos Ingress
3646
## Secret must be manually created in the namespace
3647
##
3648
tls: []
3649
# - secretName: thanos-gateway-tls
3650
# hosts:
3651
# - thanos-gateway.domain.com
3652
#
3653
## ExtraSecret can be used to store various data in an extra secret
3654
## (use it for example to store hashed basic auth credentials)
3655
extraSecret:
3656
## if not set, name will be auto generated
3657
# name: ""
3658
annotations: {}
3659
data: {}
3660
# auth: |
3661
# foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3662
# someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3663
3664
ingress:
3665
enabled: false
3666
ingressClassName: ""
3667
annotations: {}
3668
labels: {}
3669
## Redirect ingress to an additional defined port on the service
3670
# servicePort: 8081
3671
3672
## Hostnames.
3673
## Must be provided if Ingress is enabled.
3674
##
3675
# hosts:
3676
# - prometheus.domain.com
3677
hosts: []
3678
## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3679
##
3680
paths: []
3681
# - /
3682
3683
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3684
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3685
# pathType: ImplementationSpecific
3686
3687
## TLS configuration for Prometheus Ingress
3688
## Secret must be manually created in the namespace
3689
##
3690
tls: []
3691
# - secretName: prometheus-general-tls
3692
# hosts:
3693
# - prometheus.example.com
3694
# -- BETA: Configure the gateway routes for the chart here.
3695
# More routes can be added by adding a dictionary key like the 'main' route.
3696
# Be aware that this is an early beta of this feature,
3697
# kube-prometheus-stack does not guarantee this works and is subject to change.
3698
# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3699
# [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
3700
route:
3701
main:
3702
# -- Enables or disables the route
3703
enabled: false
3704
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3705
apiVersion: gateway.networking.k8s.io/v1
3706
# -- Set the route kind
3707
# Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3708
kind: HTTPRoute
3709
annotations: {}
3710
labels: {}
3711
hostnames: []
3712
# - my-filter.example.com
3713
parentRefs: []
3714
# - name: acme-gw
3715
3716
# -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3717
## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3718
## matches, filters and additionalRules will be ignored if this is set to true. Be are
3719
httpsRedirect: false
3720
matches:
3721
- path:
3722
type: PathPrefix
3723
value: /
3724
## Filters define the filters that are applied to requests that match this rule.
3725
filters: []
3726
## Timeouts for the generated HTTPRoute backend rule.
3727
## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3728
timeouts: {}
3729
# request: 120s
3730
# backendRequest: 60s
3731
3732
## Session persistence configuration for the route rule.
3733
sessionPersistence: {}
3734
# sessionName: route
3735
# type: Cookie
3736
# absoluteTimeout: 12h
3737
# cookieConfig:
3738
# lifetimeType: Permanent
3739
3740
## Additional custom rules that can be added to the route
3741
additionalRules: []
3742
## Configuration for creating an Ingress that will map to each Prometheus replica service
3743
## prometheus.servicePerReplica must be enabled
3744
##
3745
ingressPerReplica:
3746
enabled: false
3747
ingressClassName: ""
3748
annotations: {}
3749
labels: {}
3750
## Final form of the hostname for each per replica ingress is
3751
## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3752
##
3753
## Prefix for the per replica ingress that will have `-$replicaNumber`
3754
## appended to the end
3755
hostPrefix: ""
3756
## Domain that will be used for the per replica ingress
3757
hostDomain: ""
3758
## Paths to use for ingress rules
3759
##
3760
paths: []
3761
# - /
3762
3763
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3764
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3765
# pathType: ImplementationSpecific
3766
3767
## Secret name containing the TLS certificate for Prometheus per replica ingress
3768
## Secret must be manually created in the namespace
3769
tlsSecretName: ""
3770
## Separated secret for each per replica Ingress. Can be used together with cert-manager
3771
##
3772
tlsSecretPerReplica:
3773
enabled: false
3774
## Final form of the secret for each per replica ingress is
3775
## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3776
##
3777
prefix: "prometheus"
3778
## Configuration for creating a Gateway API route that will map to each Prometheus replica service
3779
## prometheus.servicePerReplica must be enabled
3780
##
3781
routePerReplica:
3782
main:
3783
# -- Enables or disables the routePerReplica
3784
enabled: false
3785
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3786
apiVersion: gateway.networking.k8s.io/v1
3787
# -- Set the route kind
3788
# Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3789
kind: HTTPRoute
3790
annotations: {}
3791
labels: {}
3792
## Final form of the hostname for each per replica route is
3793
## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
3794
##
3795
## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
3796
hostPrefix: ""
3797
## Domain that will be used for the per replica route
3798
hostDomain: ""
3799
parentRefs: []
3800
# - name: acme-gw
3801
3802
# -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3803
## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3804
## matches, filters and additionalRules will be ignored if this is set to true.
3805
httpsRedirect: false
3806
## Filters define the filters that are applied to requests that match this rule.
3807
filters: []
3808
matches:
3809
- path:
3810
type: PathPrefix
3811
value: /
3812
## Timeouts for the generated HTTPRoute backend rule.
3813
## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3814
timeouts: {}
3815
# request: 120s
3816
# backendRequest: 60s
3817
3818
## Session persistence configuration for the route rule.
3819
sessionPersistence: {}
3820
# sessionName: route
3821
# type: Cookie
3822
# absoluteTimeout: 12h
3823
# cookieConfig:
3824
# lifetimeType: Permanent
3825
3826
## Additional custom rules that can be added to the route
3827
additionalRules: []
3828
serviceMonitor:
3829
## If true, create a serviceMonitor for prometheus
3830
##
3831
selfMonitor: true
3832
## Scrape interval. If not set, the Prometheus default scrape interval is used.
3833
##
3834
interval: ""
3835
## Additional labels
3836
##
3837
additionalLabels: {}
3838
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3839
##
3840
sampleLimit: 0
3841
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3842
##
3843
targetLimit: 0
3844
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3845
##
3846
labelLimit: 0
3847
## 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.
3848
##
3849
labelNameLengthLimit: 0
3850
## 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.
3851
##
3852
labelValueLengthLimit: 0
3853
## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3854
scheme: ""
3855
## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3856
## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3857
tlsConfig: {}
3858
bearerTokenFile:
3859
## Metric relabel configs to apply to samples before ingestion.
3860
##
3861
metricRelabelings: []
3862
# - action: keep
3863
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3864
# sourceLabels: [__name__]
3865
3866
# relabel configs to apply to samples before ingestion.
3867
##
3868
relabelings: []
3869
# - sourceLabels: [__meta_kubernetes_pod_node_name]
3870
# separator: ;
3871
# regex: ^(.*)$
3872
# targetLabel: nodename
3873
# replacement: $1
3874
# action: replace
3875
3876
## Additional Endpoints
3877
##
3878
additionalEndpoints: []
3879
# - port: oauth-metrics
3880
# path: /metrics
3881
## Settings affecting prometheusSpec
3882
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3883
##
3884
prometheusSpec:
3885
## Statefulset's persistent volume claim retention policy
3886
## whenDeleted and whenScaled determine whether
3887
## statefulset's PVCs are deleted (true) or retained (false)
3888
## on scaling down and deleting statefulset, respectively.
3889
## Requires Kubernetes version 1.27.0+.
3890
## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3891
persistentVolumeClaimRetentionPolicy: {}
3892
# whenDeleted: Retain
3893
# whenScaled: Retain
3894
3895
## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3896
##
3897
disableCompaction: false
3898
## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3899
## If the field isn't set, the operator mounts the service account token by default.
3900
## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3901
## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3902
automountServiceAccountToken: true
3903
## APIServerConfig
3904
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3905
##
3906
apiserverConfig: {}
3907
## Allows setting additional arguments for the Prometheus container
3908
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3909
additionalArgs: []
3910
## Convert all classic histograms to native histograms with custom buckets.
3911
## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3912
##
3913
convertClassicHistogramsToNHCB: false
3914
## Enable scraping of classic histograms that are also exposed as native histograms.
3915
## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3916
##
3917
scrapeClassicHistograms: false
3918
## Enable scraping of native histograms.
3919
## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3920
##
3921
scrapeNativeHistograms: false
3922
## File to which scrape failures are logged.
3923
## Reloading the configuration will reopen the file.
3924
## Defaults to empty (disabled)
3925
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3926
##
3927
scrapeFailureLogFile: ""
3928
## Interval between consecutive scrapes.
3929
## Defaults to 30s.
3930
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3931
##
3932
scrapeInterval: ""
3933
## Number of seconds to wait for target to respond before erroring
3934
##
3935
scrapeTimeout: ""
3936
## List of scrape classes to expose to scraping objects such as
3937
## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
3938
##
3939
scrapeClasses: []
3940
# - name: istio-mtls
3941
# default: false
3942
# tlsConfig:
3943
# caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
3944
# certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
3945
3946
## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
3947
##
3948
podTargetLabels: []
3949
# - customlabel
3950
3951
## Interval between consecutive evaluations.
3952
##
3953
evaluationInterval: ""
3954
## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3955
##
3956
listenLocal: false
3957
## enableOTLPReceiver enables the OTLP receiver for Prometheus.
3958
enableOTLPReceiver: false
3959
## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3960
## This is disabled by default.
3961
## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3962
##
3963
enableAdminAPI: false
3964
## Sets version of Prometheus overriding the Prometheus version as derived
3965
## from the image tag. Useful in cases where the tag does not follow semver v2.
3966
version: ""
3967
## WebTLSConfig defines the TLS parameters for HTTPS
3968
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
3969
web: {}
3970
## Exemplars related settings that are runtime reloadable.
3971
## It requires to enable the exemplar storage feature to be effective.
3972
exemplars: {}
3973
## Maximum number of exemplars stored in memory for all series.
3974
## If not set, Prometheus uses its default value.
3975
## A value of zero or less than zero disables the storage.
3976
# maxSize: 100000
3977
3978
# EnableFeatures API enables access to Prometheus disabled features.
3979
# ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
3980
enableFeatures: []
3981
# - exemplar-storage
3982
3983
## https://prometheus.io/docs/guides/opentelemetry
3984
##
3985
otlp: {}
3986
# promoteResourceAttributes: []
3987
# keepIdentifyingResourceAttributes: false
3988
# translationStrategy: NoUTF8EscapingWithSuffixes
3989
# convertHistogramsToNHCB: false
3990
3991
##
3992
serviceName:
3993
## Image of Prometheus.
3994
##
3995
image:
3996
registry: cgr.dev
3997
repository: chainguard-private/prometheus
3998
tag: 3.15.1-r0
3999
sha: sha256:ec9b125b56124163becae74ba7dc55c7f2896fb32c408398f8f61e7a79d9b905
4000
pullPolicy: IfNotPresent
4001
## Tolerations for use with node taints
4002
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
4003
##
4004
tolerations: []
4005
# - key: "key"
4006
# operator: "Equal"
4007
# value: "value"
4008
# effect: "NoSchedule"
4009
4010
## If specified, the pod's topology spread constraints.
4011
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4012
##
4013
topologySpreadConstraints: []
4014
# - maxSkew: 1
4015
# topologyKey: topology.kubernetes.io/zone
4016
# whenUnsatisfiable: DoNotSchedule
4017
# labelSelector:
4018
# matchLabels:
4019
# app: prometheus
4020
4021
## Disable alerting
4022
##
4023
disableAlerting: false
4024
## Alertmanagers to which alerts will be sent
4025
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
4026
##
4027
## Default configuration will connect to the alertmanager deployed as part of this release
4028
##
4029
alertingEndpoints: []
4030
# - name: ""
4031
# namespace: ""
4032
# port: http
4033
# scheme: http
4034
# pathPrefix: ""
4035
# tlsConfig: {}
4036
# bearerTokenFile: ""
4037
# apiVersion: v2
4038
4039
## External labels to add to any time series or alerts when communicating with external systems
4040
##
4041
externalLabels: {}
4042
## enable --web.enable-remote-write-receiver flag on prometheus-server
4043
##
4044
enableRemoteWriteReceiver: false
4045
## Name of the external label used to denote replica name
4046
##
4047
replicaExternalLabelName: ""
4048
## If true, the Operator won't add the external label used to denote replica name
4049
##
4050
replicaExternalLabelNameClear: false
4051
## Name of the external label used to denote Prometheus instance name
4052
##
4053
prometheusExternalLabelName: ""
4054
## If true, the Operator won't add the external label used to denote Prometheus instance name
4055
##
4056
prometheusExternalLabelNameClear: false
4057
## External URL at which Prometheus will be reachable.
4058
##
4059
externalUrl: ""
4060
## Define which Nodes the Pods are scheduled on.
4061
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
4062
##
4063
nodeSelector:
4064
kubernetes.io/os: linux
4065
## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4066
## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
4067
## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
4068
## with the new list of secrets.
4069
##
4070
secrets: []
4071
## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4072
## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
4073
##
4074
configMaps: []
4075
## QuerySpec defines the query command line flags when starting Prometheus.
4076
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
4077
##
4078
query: {}
4079
## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
4080
ruleNamespaceSelector: {}
4081
## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
4082
# ruleNamespaceSelector:
4083
# matchLabels:
4084
# prometheus: somelabel
4085
4086
## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
4087
## prometheus resource to be created with selectors based on values in the helm deployment,
4088
## which will also match the PrometheusRule resources created
4089
##
4090
ruleSelectorNilUsesHelmValues: true
4091
## PrometheusRules to be selected for target discovery.
4092
## If {}, select all PrometheusRules
4093
##
4094
ruleSelector: {}
4095
## Example which select all PrometheusRules resources
4096
## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4097
# ruleSelector:
4098
# matchExpressions:
4099
# - key: prometheus
4100
# operator: In
4101
# values:
4102
# - example-rules
4103
# - example-rules-2
4104
#
4105
## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4106
# ruleSelector:
4107
# matchLabels:
4108
# role: example-rules
4109
4110
## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
4111
## prometheus resource to be created with selectors based on values in the helm deployment,
4112
## which will also match the servicemonitors created
4113
##
4114
serviceMonitorSelectorNilUsesHelmValues: true
4115
## ServiceMonitors to be selected for target discovery.
4116
## If {}, select all ServiceMonitors
4117
##
4118
serviceMonitorSelector: {}
4119
## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
4120
# serviceMonitorSelector:
4121
# matchLabels:
4122
# prometheus: somelabel
4123
4124
## Namespaces to be selected for ServiceMonitor discovery.
4125
##
4126
serviceMonitorNamespaceSelector: {}
4127
## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
4128
# serviceMonitorNamespaceSelector:
4129
# matchLabels:
4130
# prometheus: somelabel
4131
4132
## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
4133
## prometheus resource to be created with selectors based on values in the helm deployment,
4134
## which will also match the podmonitors created
4135
##
4136
podMonitorSelectorNilUsesHelmValues: true
4137
## PodMonitors to be selected for target discovery.
4138
## If {}, select all PodMonitors
4139
##
4140
podMonitorSelector: {}
4141
## Example which selects PodMonitors with label "prometheus" set to "somelabel"
4142
# podMonitorSelector:
4143
# matchLabels:
4144
# prometheus: somelabel
4145
4146
## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
4147
podMonitorNamespaceSelector: {}
4148
## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
4149
# podMonitorNamespaceSelector:
4150
# matchLabels:
4151
# prometheus: somelabel
4152
4153
## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
4154
## prometheus resource to be created with selectors based on values in the helm deployment,
4155
## which will also match the probes created
4156
##
4157
probeSelectorNilUsesHelmValues: true
4158
## Probes to be selected for target discovery.
4159
## If {}, select all Probes
4160
##
4161
probeSelector: {}
4162
## Example which selects Probes with label "prometheus" set to "somelabel"
4163
# probeSelector:
4164
# matchLabels:
4165
# prometheus: somelabel
4166
4167
## If nil, select own namespace. Namespaces to be selected for Probe discovery.
4168
probeNamespaceSelector: {}
4169
## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
4170
# probeNamespaceSelector:
4171
# matchLabels:
4172
# prometheus: somelabel
4173
4174
## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
4175
## prometheus resource to be created with selectors based on values in the helm deployment,
4176
## which will also match the scrapeConfigs created
4177
##
4178
## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
4179
## (keeping downward compatibility with older versions of CRD)
4180
##
4181
scrapeConfigSelectorNilUsesHelmValues: true
4182
## scrapeConfigs to be selected for target discovery.
4183
## If {}, select all scrapeConfigs
4184
##
4185
scrapeConfigSelector: {}
4186
## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
4187
# scrapeConfigSelector:
4188
# matchLabels:
4189
# prometheus: somelabel
4190
4191
## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
4192
## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
4193
scrapeConfigNamespaceSelector: {}
4194
## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
4195
# scrapeConfigNamespaceSelector:
4196
# matchLabels:
4197
# prometheus: somelabel
4198
4199
## How long to retain metrics
4200
##
4201
retention: 10d
4202
## Maximum size of metrics
4203
## Unit format should be in the form of "50GiB"
4204
retentionSize: ""
4205
## Maximum percentage of the data volume's capacity used by the metrics, between 0 and 100.
4206
## Requires Prometheus >= v3.11.0, ignored by older versions.
4207
retentionPercentage: ""
4208
## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
4209
## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
4210
tsdb:
4211
outOfOrderTimeWindow: 0s
4212
## Per-chunk-type encoding overrides, requires Prometheus >= v3.13.0.
4213
chunkEncoding: {}
4214
# floats: Xor2
4215
4216
## Ratio of stale series in memory, between 0 and 1, at which stale series are compacted into persistent blocks.
4217
staleSeriesCompactionThreshold: ""
4218
## Enable compression of the write-ahead log using Snappy.
4219
##
4220
walCompression: true
4221
## If true, the Operator won't process any Prometheus configuration changes
4222
##
4223
paused: false
4224
## Number of replicas of each shard to deploy for a Prometheus deployment.
4225
## Number of replicas multiplied by shards is the total number of Pods created.
4226
##
4227
replicas: 1
4228
## EXPERIMENTAL: Number of shards to distribute targets onto.
4229
## Number of replicas multiplied by shards is the total number of Pods created.
4230
## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
4231
## Increasing shards will not reshard data either but it will continue to be available from the same instances.
4232
## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
4233
## Sharding is done on the content of the `__address__` target meta-label.
4234
## Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then
4235
## defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA
4236
## ScaledObject own spec.shards through the /scale subresource without Helm reverting it.
4237
##
4238
shards: 1
4239
## Log level for Prometheus be configured in
4240
##
4241
logLevel: info
4242
## Log format for Prometheus be configured in
4243
##
4244
logFormat: logfmt
4245
## Prefix used to register routes, overriding externalUrl route.
4246
## Useful for proxies that rewrite URLs.
4247
##
4248
routePrefix: /
4249
## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4250
## Metadata Labels and Annotations gets propagated to the prometheus pods.
4251
##
4252
podMetadata: {}
4253
# labels:
4254
# app: prometheus
4255
# k8s-app: prometheus
4256
4257
## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4258
## 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.
4259
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4260
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4261
podAntiAffinity: "soft"
4262
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4263
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4264
##
4265
podAntiAffinityTopologyKey: kubernetes.io/hostname
4266
## Assign custom affinity rules to the prometheus instance
4267
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4268
##
4269
affinity: {}
4270
# nodeAffinity:
4271
# requiredDuringSchedulingIgnoredDuringExecution:
4272
# nodeSelectorTerms:
4273
# - matchExpressions:
4274
# - key: kubernetes.io/e2e-az-name
4275
# operator: In
4276
# values:
4277
# - e2e-az1
4278
# - e2e-az2
4279
4280
## The remote_read spec configuration for Prometheus.
4281
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
4282
remoteRead: []
4283
# - url: http://remote1/read
4284
## additionalRemoteRead is appended to remoteRead
4285
additionalRemoteRead: []
4286
## The remote_write spec configuration for Prometheus.
4287
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
4288
remoteWrite: []
4289
# - url: http://remote1/push
4290
## additionalRemoteWrite is appended to remoteWrite
4291
additionalRemoteWrite: []
4292
## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
4293
remoteWriteDashboards: false
4294
## Resource limits & requests
4295
##
4296
resources: {}
4297
# requests:
4298
# memory: 400Mi
4299
4300
## Prometheus StorageSpec for persistent data
4301
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4302
##
4303
storageSpec: {}
4304
## Using PersistentVolumeClaim
4305
##
4306
# volumeClaimTemplate:
4307
# spec:
4308
# storageClassName: gluster
4309
# accessModes: ["ReadWriteOnce"]
4310
# resources:
4311
# requests:
4312
# storage: 50Gi
4313
# selector: {}
4314
4315
## Using tmpfs volume
4316
##
4317
# emptyDir:
4318
# medium: Memory
4319
4320
# Additional volumes on the output StatefulSet definition.
4321
volumes: []
4322
# Additional VolumeMounts on the output StatefulSet definition.
4323
volumeMounts: []
4324
## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
4325
## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
4326
## as specified in the official Prometheus documentation:
4327
## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
4328
## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
4329
## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
4330
## scrape configs are going to break Prometheus after the upgrade.
4331
## AdditionalScrapeConfigs can be defined as a list or as a templated string.
4332
##
4333
## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
4334
## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
4335
##
4336
additionalScrapeConfigs: []
4337
# - job_name: kube-etcd
4338
# kubernetes_sd_configs:
4339
# - role: node
4340
# scheme: https
4341
# tls_config:
4342
# ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
4343
# cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
4344
# key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
4345
# relabel_configs:
4346
# - action: labelmap
4347
# regex: __meta_kubernetes_node_label_(.+)
4348
# - source_labels: [__address__]
4349
# action: replace
4350
# target_label: __address__
4351
# regex: ([^:;]+):(\d+)
4352
# replacement: ${1}:2379
4353
# - source_labels: [__meta_kubernetes_node_name]
4354
# action: keep
4355
# regex: .*mst.*
4356
# - source_labels: [__meta_kubernetes_node_name]
4357
# action: replace
4358
# target_label: node
4359
# regex: (.*)
4360
# replacement: ${1}
4361
# metric_relabel_configs:
4362
# - 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)
4363
# action: labeldrop
4364
#
4365
## If scrape config contains a repetitive section, you may want to use a template.
4366
## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4367
# additionalScrapeConfigs: |
4368
# - job_name: "node-exporter"
4369
# gce_sd_configs:
4370
# {{range $zone := .Values.gcp_zones}}
4371
# - project: "project1"
4372
# zone: "{{$zone}}"
4373
# port: 9100
4374
# {{end}}
4375
# relabel_configs:
4376
# ...
4377
4378
## If additional scrape configurations are already deployed in a single secret file you can use this section.
4379
## Expected values are the secret name and key
4380
## Cannot be used with additionalScrapeConfigs
4381
additionalScrapeConfigsSecret: {}
4382
# enabled: false
4383
# name:
4384
# key:
4385
4386
## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4387
## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4388
additionalPrometheusSecretsAnnotations: {}
4389
## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4390
## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4391
## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4392
## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4393
## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4394
## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4395
##
4396
additionalAlertManagerConfigs: []
4397
# - consul_sd_configs:
4398
# - server: consul.dev.test:8500
4399
# scheme: http
4400
# datacenter: dev
4401
# tag_separator: ','
4402
# services:
4403
# - metrics-prometheus-alertmanager
4404
4405
## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4406
## them separately from the helm deployment, you can use this section.
4407
## Expected values are the secret name and key
4408
## Cannot be used with additionalAlertManagerConfigs
4409
additionalAlertManagerConfigsSecret: {}
4410
# name:
4411
# key:
4412
# optional: false
4413
4414
## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4415
## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4416
## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4417
## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4418
## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4419
## configs are going to break Prometheus after the upgrade.
4420
##
4421
additionalAlertRelabelConfigs: []
4422
# - separator: ;
4423
# regex: prometheus_replica
4424
# replacement: $1
4425
# action: labeldrop
4426
4427
## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4428
## them separately from the helm deployment, you can use this section.
4429
## Expected values are the secret name and key
4430
## Cannot be used with additionalAlertRelabelConfigs
4431
additionalAlertRelabelConfigsSecret: {}
4432
# name:
4433
# key:
4434
4435
## SecurityContext holds pod-level security attributes and common container settings.
4436
## This defaults to non root user with uid 1000 and gid 2000.
4437
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4438
##
4439
securityContext:
4440
runAsGroup: 2000
4441
runAsNonRoot: true
4442
runAsUser: 1000
4443
fsGroup: 2000
4444
seccompProfile:
4445
type: RuntimeDefault
4446
## DNS configuration for Prometheus.
4447
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4448
dnsConfig: {}
4449
## DNS policy for Prometheus.
4450
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4451
dnsPolicy: ""
4452
## Priority class assigned to the Pods
4453
##
4454
priorityClassName: ""
4455
## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4456
## This section is experimental, it may change significantly without deprecation notice in any release.
4457
## This is experimental and may change significantly without backward compatibility in any release.
4458
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4459
##
4460
thanos: {}
4461
# image: quay.io/thanos/thanos
4462
# secretProviderClass:
4463
# provider: gcp
4464
# parameters:
4465
# secrets: |
4466
# - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4467
# fileName: "objstore.yaml"
4468
## ObjectStorageConfig configures object storage in Thanos.
4469
# objectStorageConfig:
4470
# # use existing secret, if configured, objectStorageConfig.secret will not be used
4471
# existingSecret: {}
4472
# # name: ""
4473
# # key: ""
4474
# # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4475
# # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4476
# # https://thanos.io/tip/thanos/storage.md/#s3
4477
# secret: {}
4478
# # type: S3
4479
# # config:
4480
# # bucket: ""
4481
# # endpoint: ""
4482
# # region: ""
4483
# # access_key: ""
4484
# # secret_key: ""
4485
4486
## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4487
## if using proxy extraContainer update targetPort with proxy container port
4488
containers: []
4489
# containers:
4490
# - name: oauth-proxy
4491
# image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5
4492
# args:
4493
# - --upstream=http://127.0.0.1:9090
4494
# - --http-address=0.0.0.0:8081
4495
# - --metrics-address=0.0.0.0:8082
4496
# - ...
4497
# ports:
4498
# - containerPort: 8081
4499
# name: oauth-proxy
4500
# protocol: TCP
4501
# - containerPort: 8082
4502
# name: oauth-metrics
4503
# protocol: TCP
4504
# resources: {}
4505
4506
## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4507
## (permissions, dir tree) on mounted volumes before starting prometheus
4508
initContainers: []
4509
## PortName to use for Prometheus.
4510
##
4511
portName: "http-web"
4512
## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4513
## on the file system of the Prometheus container e.g. bearer token files.
4514
arbitraryFSAccessThroughSMs: false
4515
## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4516
## or PodMonitor to true, this overrides honor_labels to false.
4517
overrideHonorLabels: false
4518
## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4519
overrideHonorTimestamps: false
4520
## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4521
## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4522
## and servicemonitors will be installed in the default service namespace.
4523
## Defaults to false.
4524
ignoreNamespaceSelectors: false
4525
## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4526
## The label value will always be the namespace of the object that is being created.
4527
## Disabled by default
4528
enforcedNamespaceLabel: ""
4529
## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4530
## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4531
## Deprecated, use `excludedFromEnforcement` instead
4532
prometheusRulesExcludedFromEnforce: []
4533
## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4534
## to be excluded from enforcing a namespace label of origin.
4535
## Works only if enforcedNamespaceLabel set to true.
4536
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4537
excludedFromEnforcement: []
4538
## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4539
## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4540
## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4541
## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4542
queryLogFile: false
4543
# Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4544
# Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4545
sampleLimit: false
4546
## TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.
4547
targetLimit: 0
4548
## Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.
4549
labelLimit: 0
4550
## Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.
4551
labelNameLengthLimit: 0
4552
## Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.
4553
labelValueLengthLimit: 0
4554
## Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
4555
keepDroppedTargets: 0
4556
## BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.
4557
bodySizeLimit: ""
4558
## EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any
4559
## value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.
4560
enforcedBodySizeLimit: ""
4561
# EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4562
# The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4563
# is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4564
enforcedKeepDroppedTargets: 0
4565
## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4566
## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4567
## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4568
enforcedSampleLimit: false
4569
## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4570
## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4571
## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4572
## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4573
enforcedTargetLimit: false
4574
## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4575
## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4576
## 2.27.0 and newer.
4577
enforcedLabelLimit: false
4578
## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4579
## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4580
## 2.27.0 and newer.
4581
enforcedLabelNameLengthLimit: false
4582
## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4583
## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4584
## versions 2.27.0 and newer.
4585
enforcedLabelValueLengthLimit: false
4586
## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4587
## in Prometheus so it may change in any upcoming release.
4588
allowOverlappingBlocks: false
4589
## Specifies the validation scheme for metric and label names.
4590
## Supported values are: Legacy, UTF8
4591
nameValidationScheme: ""
4592
## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4593
## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4594
minReadySeconds: 0
4595
## Duration in seconds the pod needs to terminate gracefully.
4596
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4597
terminationGracePeriodSeconds: ~
4598
# Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4599
# because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4600
# Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4601
# When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4602
hostNetwork: false
4603
## Use the host's user namespace for Prometheus pods.
4604
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
4605
hostUsers: ~
4606
# HostAlias holds the mapping between IP and hostnames that will be injected
4607
# as an entry in the pod's hosts file.
4608
hostAliases: []
4609
# - ip: 10.10.0.100
4610
# hostnames:
4611
# - a1.app.local
4612
# - b1.app.local
4613
4614
## TracingConfig configures tracing in Prometheus.
4615
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4616
tracingConfig: {}
4617
## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4618
## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4619
serviceDiscoveryRole: ""
4620
## EnableServiceLinks indicates whether information about services should be injected into the pod's environment
4621
## variables. Uses the operator/Kubernetes default when left unset (~).
4622
enableServiceLinks: ~
4623
## Set the scheduler name to use for the Prometheus pods.
4624
schedulerName: ""
4625
## Specifies the character escaping scheme applied to metric and label names.
4626
## Supported values are: AllowUTF8, Underscores, Dots, Values
4627
nameEscapingScheme: ""
4628
## Defines the strategy used to reload the Prometheus configuration.
4629
## Supported values are: HTTP, ProcessSignal
4630
reloadStrategy: ""
4631
## Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.
4632
## ref: https://github.com/prometheus-community/helm-charts/issues/5843
4633
ruleQueryOffset: ""
4634
## Configuration of the Prometheus rules' engine. Changing these triggers a restart of the pods.
4635
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Rules
4636
rules: {}
4637
# alert:
4638
# forOutageTolerance: 1h
4639
# forGracePeriod: 10m
4640
# resendDelay: 1m
4641
4642
## RuntimeConfig configures the values for the Prometheus process behavior.
4643
runtime: {}
4644
# goGC: 75
4645
4646
## Defines the sharding strategy applied by the operator.
4647
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy
4648
shardingStrategy: {}
4649
## Defines the retention policy for the resources of stale shards after a scale-down.
4650
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy
4651
shardRetentionPolicy: {}
4652
## List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].
4653
remoteWriteReceiverMessageVersions: []
4654
## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4655
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4656
podManagementPolicy: ""
4657
## Update strategy for the StatefulSet.
4658
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4659
updateStrategy: {}
4660
# type: RollingUpdate
4661
# rollingUpdate:
4662
# maxUnavailable: 1
4663
4664
## Additional configuration which is not covered by the properties above. (passed through tpl)
4665
additionalConfig: {}
4666
## Additional configuration which is not covered by the properties above.
4667
## Useful, if you need advanced templating inside alertmanagerSpec.
4668
## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4669
additionalConfigString: ""
4670
## Defines the maximum time that the `prometheus` container's startup probe
4671
## will wait before being considered failed. The startup probe will return
4672
## success after the WAL replay is complete. If set, the value should be
4673
## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4674
## minutes).
4675
maximumStartupDurationSeconds: 0
4676
## Set default scrapeProtocols for Prometheus instances
4677
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4678
scrapeProtocols: []
4679
additionalRulesForClusterRole: []
4680
# - apiGroups: [ "" ]
4681
# resources:
4682
# - nodes/proxy
4683
# verbs: [ "get", "list", "watch" ]
4684
4685
## Additional ServiceMonitors to deploy as a list or map.
4686
## Maps allow individual monitors and their fields to be merged across values files.
4687
## Set a map entry to null to remove it when overriding values.
4688
## The map key is used as the name unless an explicit name is set.
4689
## Nested lists such as endpoints are replaced when overridden.
4690
##
4691
additionalServiceMonitors: null
4692
## Map example:
4693
# example-service:
4694
# selector:
4695
# matchLabels:
4696
# app: example-service
4697
# endpoints:
4698
# - port: metrics
4699
4700
## List example and available fields:
4701
## Name of the ServiceMonitor to create (required for list entries)
4702
##
4703
# - name: ""
4704
4705
## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4706
## the chart
4707
##
4708
# additionalLabels: {}
4709
4710
## Service label for use in assembling a job name of the form <label value>-<port>
4711
## If no label is specified, the service name is used.
4712
##
4713
# jobLabel: ""
4714
4715
## labels to transfer from the kubernetes service to the target
4716
##
4717
# targetLabels: []
4718
4719
## labels to transfer from the kubernetes pods to the target
4720
##
4721
# podTargetLabels: []
4722
4723
## Label selector for services to which this ServiceMonitor applies
4724
##
4725
# selector: {}
4726
## Example which selects all services to be monitored
4727
## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4728
# matchExpressions:
4729
# - key: "monitoredby"
4730
# operator: In
4731
# values:
4732
# - example-service-1
4733
# - example-service-2
4734
4735
## label selector for services
4736
##
4737
# matchLabels: {}
4738
4739
## Namespaces from which services are selected
4740
##
4741
# namespaceSelector:
4742
## Match any namespace
4743
##
4744
# any: false
4745
4746
## Explicit list of namespace names to select
4747
##
4748
# matchNames: []
4749
4750
## Endpoints of the selected service to be monitored
4751
##
4752
# endpoints: []
4753
## Name of the endpoint's service port
4754
## Mutually exclusive with targetPort
4755
# - port: ""
4756
4757
## Name or number of the endpoint's target port
4758
## Mutually exclusive with port
4759
# - targetPort: ""
4760
4761
## File containing bearer token to be used when scraping targets
4762
##
4763
# bearerTokenFile: ""
4764
4765
## Interval at which metrics should be scraped
4766
##
4767
# interval: 30s
4768
4769
## HTTP path to scrape for metrics
4770
##
4771
# path: /metrics
4772
4773
## HTTP scheme to use for scraping
4774
##
4775
# scheme: http
4776
4777
## TLS configuration to use when scraping the endpoint
4778
##
4779
# tlsConfig:
4780
4781
## Path to the CA file
4782
##
4783
# caFile: ""
4784
4785
## Path to client certificate file
4786
##
4787
# certFile: ""
4788
4789
## Skip certificate verification
4790
##
4791
# insecureSkipVerify: false
4792
4793
## Path to client key file
4794
##
4795
# keyFile: ""
4796
4797
## Server name used to verify host name
4798
##
4799
# serverName: ""
4800
4801
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4802
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4803
##
4804
# metricRelabelings: []
4805
# - action: keep
4806
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4807
# sourceLabels: [__name__]
4808
4809
## RelabelConfigs to apply to samples before scraping
4810
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4811
##
4812
# relabelings: []
4813
# - sourceLabels: [__meta_kubernetes_pod_node_name]
4814
# separator: ;
4815
# regex: ^(.*)$
4816
# targetLabel: nodename
4817
# replacement: $1
4818
# action: replace
4819
4820
## Fallback scrape protocol used by Prometheus for scraping metrics
4821
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4822
##
4823
# fallbackScrapeProtocol: ""
4824
4825
## Attaches node metadata to the discovered targets
4826
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4827
##
4828
# attachMetadata:
4829
# node: true
4830
4831
## Additional PodMonitors to deploy as a list or map.
4832
## Maps allow individual monitors and their fields to be merged across values files.
4833
## Set a map entry to null to remove it when overriding values.
4834
## The map key is used as the name unless an explicit name is set.
4835
## Nested lists such as podMetricsEndpoints are replaced when overridden.
4836
##
4837
additionalPodMonitors: null
4838
## Map example:
4839
# example-pod:
4840
# selector:
4841
# matchLabels:
4842
# app: example-pod
4843
# podMetricsEndpoints:
4844
# - port: metrics
4845
## List example and available fields:
4846
## Name of the PodMonitor to create (required for list entries)
4847
##
4848
# - name: ""
4849
4850
## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4851
## the chart
4852
##
4853
# additionalLabels: {}
4854
4855
## Pod label for use in assembling a job name of the form <label value>-<port>
4856
## If no label is specified, the pod endpoint name is used.
4857
##
4858
# jobLabel: ""
4859
4860
## Label selector for pods to which this PodMonitor applies
4861
##
4862
# selector: {}
4863
## Example which selects all Pods to be monitored
4864
## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4865
# matchExpressions:
4866
# - key: "monitoredby"
4867
# operator: In
4868
# values:
4869
# - example-pod-1
4870
# - example-pod-2
4871
4872
## label selector for pods
4873
##
4874
# matchLabels: {}
4875
4876
## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4877
##
4878
# podTargetLabels: {}
4879
4880
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4881
##
4882
# sampleLimit: 0
4883
4884
## Namespaces from which pods are selected
4885
##
4886
# namespaceSelector:
4887
## Match any namespace
4888
##
4889
# any: false
4890
4891
## Explicit list of namespace names to select
4892
##
4893
# matchNames: []
4894
4895
## Endpoints of the selected pods to be monitored
4896
## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4897
##
4898
# podMetricsEndpoints: []
4899
4900
## Fallback scrape protocol used by Prometheus for scraping metrics
4901
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4902
##
4903
# fallbackScrapeProtocol: ""
4904
4905
## Attaches node metadata to the discovered targets
4906
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4907
##
4908
# attachMetadata:
4909
# node: true
4910
4911
## Configuration for thanosRuler
4912
## ref: https://thanos.io/tip/components/rule.md/
4913
##
4914
thanosRuler:
4915
## Deploy thanosRuler
4916
##
4917
enabled: false
4918
## Annotations for ThanosRuler
4919
##
4920
annotations: {}
4921
## Service account for ThanosRuler to use.
4922
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4923
##
4924
serviceAccount:
4925
create: true
4926
name: ""
4927
annotations: {}
4928
## Configure pod disruption budgets for ThanosRuler
4929
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
4930
##
4931
podDisruptionBudget:
4932
enabled: false
4933
minAvailable: 1
4934
# maxUnavailable: ""
4935
unhealthyPodEvictionPolicy: AlwaysAllow
4936
ingress:
4937
enabled: false
4938
ingressClassName: ""
4939
annotations: {}
4940
labels: {}
4941
## Hosts must be provided if Ingress is enabled.
4942
##
4943
hosts: []
4944
# - thanosruler.domain.com
4945
4946
## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4947
##
4948
paths: []
4949
# - /
4950
4951
## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4952
## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4953
# pathType: ImplementationSpecific
4954
4955
## TLS configuration for ThanosRuler Ingress
4956
## Secret must be manually created in the namespace
4957
##
4958
tls: []
4959
# - secretName: thanosruler-general-tls
4960
# hosts:
4961
# - thanosruler.example.com
4962
# -- BETA: Configure the gateway routes for the chart here.
4963
# More routes can be added by adding a dictionary key like the 'main' route.
4964
# Be aware that this is an early beta of this feature,
4965
# kube-prometheus-stack does not guarantee this works and is subject to change.
4966
# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
4967
# [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
4968
route:
4969
main:
4970
# -- Enables or disables the route
4971
enabled: false
4972
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
4973
apiVersion: gateway.networking.k8s.io/v1
4974
# -- Set the route kind
4975
# Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
4976
kind: HTTPRoute
4977
annotations: {}
4978
labels: {}
4979
hostnames: []
4980
# - my-filter.example.com
4981
parentRefs: []
4982
# - name: acme-gw
4983
4984
# -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
4985
## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
4986
## matches, filters and additionalRules will be ignored if this is set to true. Be are
4987
httpsRedirect: false
4988
matches:
4989
- path:
4990
type: PathPrefix
4991
value: /
4992
## Filters define the filters that are applied to requests that match this rule.
4993
filters: []
4994
## Timeouts for the generated HTTPRoute backend rule.
4995
## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
4996
timeouts: {}
4997
# request: 120s
4998
# backendRequest: 60s
4999
5000
## Session persistence configuration for the route rule.
5001
sessionPersistence: {}
5002
# sessionName: route
5003
# type: Cookie
5004
# absoluteTimeout: 12h
5005
# cookieConfig:
5006
# lifetimeType: Permanent
5007
5008
## Additional custom rules that can be added to the route
5009
additionalRules: []
5010
## Configuration for ThanosRuler service
5011
##
5012
service:
5013
enabled: true
5014
annotations: {}
5015
labels: {}
5016
clusterIP: ""
5017
ipDualStack:
5018
enabled: false
5019
ipFamilies: ["IPv6", "IPv4"]
5020
ipFamilyPolicy: "PreferDualStack"
5021
## Port for ThanosRuler Service to listen on
5022
##
5023
port: 10902
5024
## To be used with a proxy extraContainer port
5025
##
5026
targetPort: 10902
5027
## Port to expose on each node
5028
## Only used if service.type is 'NodePort'
5029
##
5030
nodePort: 30905
5031
## List of IP addresses at which the Prometheus server service is available
5032
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
5033
##
5034
5035
## Additional ports to open for ThanosRuler service
5036
additionalPorts: []
5037
externalIPs: []
5038
loadBalancerIP: ""
5039
loadBalancerSourceRanges: []
5040
## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
5041
##
5042
externalTrafficPolicy: Cluster
5043
## Service type
5044
##
5045
type: ClusterIP
5046
## Configuration for creating a ServiceMonitor for the ThanosRuler service
5047
##
5048
serviceMonitor:
5049
## If true, create a serviceMonitor for thanosRuler
5050
##
5051
selfMonitor: true
5052
## Scrape interval. If not set, the Prometheus default scrape interval is used.
5053
##
5054
interval: ""
5055
## Additional labels
5056
##
5057
additionalLabels: {}
5058
## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
5059
##
5060
sampleLimit: 0
5061
## TargetLimit defines a limit on the number of scraped targets that will be accepted.
5062
##
5063
targetLimit: 0
5064
## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
5065
##
5066
labelLimit: 0
5067
## 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.
5068
##
5069
labelNameLengthLimit: 0
5070
## 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.
5071
##
5072
labelValueLengthLimit: 0
5073
## proxyUrl: URL of a proxy that should be used for scraping.
5074
##
5075
proxyUrl: ""
5076
## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
5077
scheme: ""
5078
## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
5079
## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
5080
tlsConfig: {}
5081
bearerTokenFile:
5082
## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
5083
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5084
##
5085
metricRelabelings: []
5086
# - action: keep
5087
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
5088
# sourceLabels: [__name__]
5089
5090
## RelabelConfigs to apply to samples before scraping
5091
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5092
##
5093
relabelings: []
5094
# - sourceLabels: [__meta_kubernetes_pod_node_name]
5095
# separator: ;
5096
# regex: ^(.*)$
5097
# targetLabel: nodename
5098
# replacement: $1
5099
# action: replace
5100
5101
## Additional Endpoints
5102
##
5103
additionalEndpoints: []
5104
# - port: oauth-metrics
5105
# path: /metrics
5106
## Settings affecting thanosRulerpec
5107
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
5108
##
5109
thanosRulerSpec:
5110
## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
5111
## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
5112
##
5113
podMetadata: {}
5114
##
5115
serviceName:
5116
## Image of ThanosRuler
5117
##
5118
image:
5119
registry: cgr.dev
5120
repository: chainguard-private/thanos
5121
tag: 0.42.4-r13
5122
sha: sha256:c4533dd8411a0f1c7b5d0a67cad1d481243cd7d76f0c9a01a326cbdadb345740
5123
## Namespaces to be selected for PrometheusRules discovery.
5124
## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
5125
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
5126
##
5127
ruleNamespaceSelector: {}
5128
## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
5129
## prometheus resource to be created with selectors based on values in the helm deployment,
5130
## which will also match the PrometheusRule resources created
5131
##
5132
ruleSelectorNilUsesHelmValues: true
5133
## PrometheusRules to be selected for target discovery.
5134
## If {}, select all PrometheusRules
5135
##
5136
ruleSelector: {}
5137
## Example which select all PrometheusRules resources
5138
## with label "prometheus" with values any of "example-rules" or "example-rules-2"
5139
# ruleSelector:
5140
# matchExpressions:
5141
# - key: prometheus
5142
# operator: In
5143
# values:
5144
# - example-rules
5145
# - example-rules-2
5146
#
5147
## Example which select all PrometheusRules resources with label "role" set to "example-rules"
5148
# ruleSelector:
5149
# matchLabels:
5150
# role: example-rules
5151
5152
## Define Log Format
5153
# Use logfmt (default) or json logging
5154
logFormat: logfmt
5155
## Log level for ThanosRuler to be configured with.
5156
##
5157
logLevel: info
5158
## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
5159
## running cluster equal to the expected size.
5160
replicas: 1
5161
## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
5162
## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
5163
##
5164
retention: 24h
5165
## Interval between consecutive evaluations.
5166
##
5167
evaluationInterval: ""
5168
## Storage is the definition of how storage will be used by the ThanosRuler instances.
5169
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
5170
##
5171
storage: {}
5172
# volumeClaimTemplate:
5173
# spec:
5174
# storageClassName: gluster
5175
# accessModes: ["ReadWriteOnce"]
5176
# resources:
5177
# requests:
5178
# storage: 50Gi
5179
# selector: {}
5180
5181
## AlertmanagerConfig define configuration for connecting to alertmanager.
5182
## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
5183
alertmanagersConfig:
5184
# use existing secret, if configured, alertmanagersConfig.secret will not be used
5185
existingSecret: {}
5186
# name: ""
5187
# key: ""
5188
# will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
5189
# https://thanos.io/tip/components/rule.md/#alertmanager
5190
secret: {}
5191
# alertmanagers:
5192
# - api_version: v2
5193
# http_config:
5194
# basic_auth:
5195
# username: some_user
5196
# password: some_pass
5197
# static_configs:
5198
# - alertmanager.thanos.io
5199
# scheme: http
5200
# timeout: 10s
5201
## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
5202
## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
5203
# alertmanagersUrl:
5204
5205
## 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
5206
##
5207
externalPrefix:
5208
## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
5209
## will be used as value for externalPrefix
5210
externalPrefixNilUsesHelmValues: true
5211
## 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,
5212
## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
5213
##
5214
routePrefix: /
5215
## ObjectStorageConfig configures object storage in Thanos
5216
objectStorageConfig:
5217
# use existing secret, if configured, objectStorageConfig.secret will not be used
5218
existingSecret: {}
5219
# name: ""
5220
# key: ""
5221
# will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
5222
# https://thanos.io/tip/thanos/storage.md/#s3
5223
secret: {}
5224
# type: S3
5225
# config:
5226
# bucket: ""
5227
# endpoint: ""
5228
# region: ""
5229
# access_key: ""
5230
# secret_key: ""
5231
## Labels by name to drop before sending to alertmanager
5232
## Maps to the --alert.label-drop flag of thanos ruler.
5233
alertDropLabels: []
5234
## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
5235
## Maps to the --query flag of thanos ruler.
5236
queryEndpoints: []
5237
## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
5238
## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
5239
queryConfig:
5240
# use existing secret, if configured, queryConfig.secret will not be used
5241
existingSecret: {}
5242
# name: ""
5243
# key: ""
5244
# render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
5245
# https://thanos.io/tip/components/rule.md/#query-api
5246
secret: {}
5247
# - http_config:
5248
# basic_auth:
5249
# username: some_user
5250
# password: some_pass
5251
# static_configs:
5252
# - URL
5253
# scheme: http
5254
# timeout: 10s
5255
## Labels configure the external label pairs to ThanosRuler. A default replica
5256
## label `thanos_ruler_replica` will be always added as a label with the value
5257
## of the pod's name and it will be dropped in the alerts.
5258
labels: {}
5259
## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
5260
##
5261
paused: false
5262
## Allows setting additional arguments for the ThanosRuler container
5263
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
5264
##
5265
additionalArgs: []
5266
# - name: remote-write.config
5267
# value: |-
5268
# "remote_write":
5269
# - "name": "receiver-0"
5270
# "remote_timeout": "30s"
5271
# "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
5272
5273
## Define which Nodes the Pods are scheduled on.
5274
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
5275
##
5276
nodeSelector:
5277
kubernetes.io/os: linux
5278
## Define resources requests and limits for single Pods.
5279
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5280
##
5281
resources: {}
5282
# requests:
5283
# memory: 400Mi
5284
5285
## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
5286
## 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.
5287
## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
5288
## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
5289
##
5290
podAntiAffinity: "soft"
5291
## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
5292
## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
5293
##
5294
podAntiAffinityTopologyKey: kubernetes.io/hostname
5295
## Assign custom affinity rules to the thanosRuler instance
5296
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
5297
##
5298
affinity: {}
5299
# nodeAffinity:
5300
# requiredDuringSchedulingIgnoredDuringExecution:
5301
# nodeSelectorTerms:
5302
# - matchExpressions:
5303
# - key: kubernetes.io/e2e-az-name
5304
# operator: In
5305
# values:
5306
# - e2e-az1
5307
# - e2e-az2
5308
5309
## If specified, the pod's tolerations.
5310
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
5311
##
5312
tolerations: []
5313
# - key: "key"
5314
# operator: "Equal"
5315
# value: "value"
5316
# effect: "NoSchedule"
5317
5318
## If specified, the pod's topology spread constraints.
5319
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
5320
##
5321
topologySpreadConstraints: []
5322
# - maxSkew: 1
5323
# topologyKey: topology.kubernetes.io/zone
5324
# whenUnsatisfiable: DoNotSchedule
5325
# labelSelector:
5326
# matchLabels:
5327
# app: thanos-ruler
5328
5329
## SecurityContext holds pod-level security attributes and common container settings.
5330
## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
5331
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5332
##
5333
securityContext:
5334
runAsGroup: 2000
5335
runAsNonRoot: true
5336
runAsUser: 1000
5337
fsGroup: 2000
5338
seccompProfile:
5339
type: RuntimeDefault
5340
## Use the host's user namespace for ThanosRuler pods.
5341
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
5342
hostUsers: ~
5343
## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
5344
## Note this is only for the ThanosRuler UI, not the gossip communication.
5345
##
5346
listenLocal: false
5347
## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
5348
##
5349
containers: []
5350
## Additional environment variables to set on the ThanosRuler container.
5351
## This is rendered through the Prometheus Operator strategic merge patch.
5352
##
5353
extraEnv: []
5354
# - name: EXAMPLE
5355
# value: test
5356
5357
# Additional volumes on the output StatefulSet definition.
5358
volumes: []
5359
# Additional VolumeMounts on the output StatefulSet definition.
5360
volumeMounts: []
5361
## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
5362
## (permissions, dir tree) on mounted volumes before starting prometheus
5363
initContainers: []
5364
## Priority class assigned to the Pods
5365
##
5366
priorityClassName: ""
5367
## PortName to use for ThanosRuler.
5368
##
5369
portName: "web"
5370
## Scheduler to use for Pod scheduling, defaulting to the Kubernetes default scheduler.
5371
##
5372
schedulerName: ""
5373
## Duration in seconds the pod needs to terminate gracefully.
5374
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
5375
terminationGracePeriodSeconds: ~
5376
## WebTLSConfig defines the TLS parameters for HTTPS
5377
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
5378
web: {}
5379
## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
5380
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
5381
podManagementPolicy: ""
5382
## Update strategy for the StatefulSet.
5383
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
5384
updateStrategy: {}
5385
# type: RollingUpdate
5386
# rollingUpdate:
5387
# maxUnavailable: 1
5388
5389
## Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.
5390
version: ""
5391
## Image pull policy for the Thanos Ruler container.
5392
imagePullPolicy: ""
5393
## EnableFeatures API enables access to Thanos Ruler disabled features.
5394
enableFeatures: []
5395
## EnableServiceLinks indicates whether information about services should be injected into the
5396
## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
5397
enableServiceLinks: ~
5398
## Minimum number of seconds for which a newly created pod should be ready without any of its
5399
## containers crashing/restarting for it to be considered available.
5400
minReadySeconds: ~
5401
## Defines the DNS configuration for the pods.
5402
dnsConfig: {}
5403
# nameservers:
5404
# - 1.2.3.4
5405
# searches:
5406
# - ns1.svc.cluster-domain.example
5407
# options:
5408
# - name: ndots
5409
# value: "2"
5410
5411
## Defines the DNS policy for the pods.
5412
dnsPolicy: ""
5413
## Pods' hostAliases configuration
5414
## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
5415
hostAliases: []
5416
# - ip: 10.10.0.100
5417
# hostnames:
5418
# - a1.app.local
5419
5420
## Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.
5421
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec
5422
remoteWrite: []
5423
## Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.
5424
tracingConfig:
5425
# use existing secret, if configured, tracingConfig.secret will not be used
5426
existingSecret: {}
5427
# name: ""
5428
# key: ""
5429
# render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set
5430
secret: {}
5431
## Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.
5432
tracingConfigFile: ""
5433
## Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.
5434
alertRelabelConfigs:
5435
# use existing secret, if configured, alertRelabelConfigs.secret will not be used
5436
existingSecret: {}
5437
# name: ""
5438
# key: ""
5439
# render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set
5440
secret: {}
5441
## Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.
5442
alertRelabelConfigFile: ""
5443
## Configures the gRPC server TLS for Thanos Ruler.
5444
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig
5445
grpcServerTlsConfig: {}
5446
## Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.
5447
objectStorageConfigFile: ""
5448
## Number of concurrent rule evaluations.
5449
ruleConcurrentEval: ~
5450
## Maximum time to tolerate outage for restoring "for" state of alert.
5451
ruleOutageTolerance: ""
5452
## Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for"
5453
## time greater than the grace period.
5454
ruleGracePeriod: ""
5455
## The default rule group's query offset duration to shift the evaluation time of rules backwards.
5456
## ref: https://github.com/prometheus-community/helm-charts/issues/5843
5457
ruleQueryOffset: ""
5458
## Minimum amount of time to wait before resending an alert to Alertmanager.
5459
resendDelay: ""
5460
## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.
5461
enforcedNamespaceLabel: ""
5462
## List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).
5463
## Can be a list of objects, or a string that is passed through tpl.
5464
excludedFromEnforcement: []
5465
## Additional configuration which is not covered by the properties above. (passed through tpl)
5466
additionalConfig: {}
5467
## Additional configuration which is not covered by the properties above.
5468
## Useful, if you need advanced templating
5469
additionalConfigString: ""
5470
## ExtraSecret can be used to store various data in an extra secret
5471
## (use it for example to store hashed basic auth credentials)
5472
extraSecret:
5473
## if not set, name will be auto generated
5474
# name: ""
5475
annotations: {}
5476
data: {}
5477
# auth: |
5478
# foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
5479
# someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
5480
## 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.
5481
##
5482
cleanPrometheusOperatorObjectNames: false
5483
## Extra manifests to deploy. Can be of type dict or list.
5484
## If dict, keys are ignored and only values are used.
5485
## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
5486
extraManifests: null
5487
# - apiVersion: v1
5488
# kind: ConfigMap
5489
# metadata:
5490
# labels:
5491
# name: prometheus-extra
5492
# data:
5493
# extra-data: "value"
5494
#
5495
# can also be defined as a string, useful for templating field names
5496
# - |
5497
# apiVersion: v1
5498
# kind: Secret
5499
# type: Opaque
5500
# metadata:
5501
# name: super-secret
5502
# labels:
5503
# {{- range $key, $value := .Values.commonLabels }}
5504
# {{ $key }}: {{ $value }}
5505
# {{- end }}
5506
# data:
5507
# plaintext: Zm9vYmFy
5508
# templated: '{{ print "foobar" | upper | b64enc }}'
5509

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.