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

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.