1# Default values for kube-prometheus-stack.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5## Provide a name in place of kube-prometheus-stack for `app:` labels
8## Override the deployment namespace
11## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.26.6
13kubeTargetVersionOverride: ""
14## Allow kubeVersion to be overridden while creating the ingress
16kubeVersionOverride: ""
17## Provide a name to substitute for the full names of resources
20## Labels to apply to all resources
26## Install Prometheus Operator CRDs
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.
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.
42 repository: chainguard-private/busybox
43 tag: glibc-1.38.0-r3@sha256:82374f77edfec3d662c9c1531031c7be1c2d1fe8ea9191cb4424148ac71e0807
45 pullPolicy: IfNotPresent
48 repository: chainguard-private/kubectl
50 sha: sha256:18af9c252f6ea399b0f513332a336cb8481b0270e30987179fc46b69dd286499
51 pullPolicy: IfNotPresent
53 ## Define resources requests and limits for single Pods.
54 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
60 ## Additional volume mounts
63 ## Define which Nodes the Pods are scheduled on.
64 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
67 kubernetes.io/os: linux
68 ## Assign custom affinity rules to the upgrade-crd job
69 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
73 # requiredDuringSchedulingIgnoredDuringExecution:
76 # - key: kubernetes.io/e2e-az-name
82 ## If specified, the pod's tolerations.
83 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
89 # effect: "NoSchedule"
91 ## If specified, the pod's topology spread constraints.
92 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
94 topologySpreadConstraints: []
96 # topologyKey: topology.kubernetes.io/zone
97 # whenUnsatisfiable: DoNotSchedule
102 # ## Labels to add to the upgrade-crd job
105 ## Annotations to add to the upgrade-crd job
108 ## Labels to add to the upgrade-crd pod
111 ## Annotations to add to the upgrade-crd pod
114 ## Service account for upgrade crd job to use.
115 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
122 automountServiceAccountToken: true
123 ## Automounting API credentials for upgrade crd job pod.
125 automountServiceAccountToken: true
126 ## Container-specific security context configuration
127 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
129 containerSecurityContext:
130 allowPrivilegeEscalation: false
131 readOnlyRootFilesystem: true
135 ## SecurityContext holds pod-level security attributes and common container settings.
136 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
137 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
146## Custom rules to override "for" and "severity" in defaultRules
149# AlertmanagerFailedReload:
151# AlertmanagerMembersInconsistent:
155## Create default rules for monitoring the cluster
162 configReloaders: true
164 k8sContainerCpuUsageSecondsTotal: true
165 k8sContainerMemoryCache: true
166 k8sContainerMemoryRss: true
167 k8sContainerMemorySwap: true
168 k8sContainerResource: true
169 k8sContainerMemoryWorkingSetBytes: true
171 kubeApiserverAvailability: true
172 kubeApiserverBurnrate: true
173 kubeApiserverHistogram: true
174 kubeApiserverSlos: true
175 kubeControllerManager: true
178 kubePrometheusGeneral: true
179 kubePrometheusNodeRecording: true
181 kubernetesResources: true
182 kubernetesStorage: true
183 kubernetesSystem: true
184 kubeSchedulerAlerting: true
185 kubeSchedulerRecording: true
186 kubeStateMetrics: true
189 nodeExporterAlerting: true
190 nodeExporterRecording: true
192 prometheusOperator: true
194 # Defines the operator for namespace selection in rules
195 # Use "=~" to include namespaces matching the pattern (default)
196 # Use "!~" to exclude namespaces matching the pattern
197 appNamespacesOperator: "=~"
198 ## Reduce app namespace alert scope
199 appNamespacesTarget: ".*"
200 ## Set keep_firing_for for all alerts
202 ## Labels for default rules
204 ## Annotations for default rules
206 ## Additional labels for PrometheusRule alerts
207 additionalRuleLabels: {}
208 ## Additional annotations for specific PrometheusRule alerts by alert name
209 additionalRuleAnnotations: {}
210 ## Additional labels for specific PrometheusRule alert groups
211 additionalRuleGroupLabels:
216 k8sContainerCpuUsageSecondsTotal: {}
217 k8sContainerMemoryCache: {}
218 k8sContainerMemoryRss: {}
219 k8sContainerMemorySwap: {}
220 k8sContainerResource: {}
222 kubeApiserverAvailability: {}
223 kubeApiserverBurnrate: {}
224 kubeApiserverHistogram: {}
225 kubeApiserverSlos: {}
226 kubeControllerManager: {}
229 kubePrometheusGeneral: {}
230 kubePrometheusNodeRecording: {}
232 kubernetesResources: {}
233 kubernetesStorage: {}
235 kubeSchedulerAlerting: {}
236 kubeSchedulerRecording: {}
240 nodeExporterAlerting: {}
241 nodeExporterRecording: {}
243 prometheusOperator: {}
244 ## Additional annotations for specific PrometheusRule alert groups
245 additionalRuleGroupAnnotations:
250 k8sContainerCpuUsageSecondsTotal: {}
251 k8sContainerMemoryCache: {}
252 k8sContainerMemoryRss: {}
253 k8sContainerMemorySwap: {}
254 k8sContainerResource: {}
256 kubeApiserverAvailability: {}
257 kubeApiserverBurnrate: {}
258 kubeApiserverHistogram: {}
259 kubeApiserverSlos: {}
260 kubeControllerManager: {}
263 kubePrometheusGeneral: {}
264 kubePrometheusNodeRecording: {}
266 kubernetesResources: {}
267 kubernetesStorage: {}
269 kubeSchedulerAlerting: {}
270 kubeSchedulerRecording: {}
274 nodeExporterAlerting: {}
275 nodeExporterRecording: {}
277 prometheusOperator: {}
278 additionalAggregationLabels: []
279 ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
280 runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
281 ## Thresholds for kubelet certificate expiration alerts (in seconds)
282 kubeletServerCertificateExpiration:
283 warning: 604800 # 7 days
284 critical: 86400 # 1 day
285 kubeletClientCertificateExpiration:
286 warning: 604800 # 7 days
287 critical: 86400 # 1 day
289 fsSelector: 'fstype!=""'
290 # fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
291 ## Disabled PrometheusRule alerts
294 # NodeRAIDDegraded: true
295## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
297# additionalPrometheusRules: []
298# - name: my-rule-file
303# expr: 100 * my_record
305## Provide custom recording or alerting rules to be deployed into the cluster.
307additionalPrometheusRulesMap: {}
313# expr: 100 * my_record
319 ## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
320 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
321 createAggregateClusterRoles: false
322 ## Global image registry to use if it needs to be overridden for some specific use cases (e.g. local registries, custom images, ...)
325 ## Reference to one or more secrets to be used when pulling images
326 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
329 # - name: "image-pull-secret"
331 # - "image-pull-secret"
333 ## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
335## Configuration for prometheus-windows-exporter
336## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
338prometheus-windows-exporter:
339 ## Enable ServiceMonitor and set Kubernetes label to use as a job label
346 ## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
349 jobLabel: windows-exporter
350 ## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
354 enabled: '[defaults],memory,container'
355## Configuration for alertmanager
356## ref: https://prometheus.io/docs/alerting/alertmanager/
359 ## Deploy alertmanager
362 # Optional: Override the namespace where Alertmanager will be deployed.
363 namespaceOverride: ""
364 ## Annotations for Alertmanager
367 ## Additional labels for Alertmanager
370 ## API that Prometheus will use to communicate with alertmanager. Possible values are v1, v2
373 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
376 ## Create dashboard configmap even if alertmanager deployment has been disabled
378 forceDeployDashboards: false
379 ## Network Policy configuration
382 # -- Enable network policy for Alertmanager
384 # -- Define policy types. If egress is enabled, both Ingress and Egress will be used
385 # Valid values are ["Ingress"] or ["Ingress", "Egress"]
389 # -- Gateway (formerly ingress controller) configuration
392 # -- Gateway namespace
395 # -- Gateway pod labels
398 # app.kubernetes.io/name: ingress-nginx
399 # -- Additional custom ingress rules
401 additionalIngress: []
403 # - namespaceSelector:
405 # name: another-namespace
412 # app.kubernetes.io/name: loki
417 # -- Configure egress rules
420 # -- Enable egress rules. When enabled, policyTypes will include Egress
423 # -- Custom egress rules
427 # - namespaceSelector: {}
434 # -- Enable rules for alertmanager cluster traffic
436 enableClusterRules: true
437 # -- Configure monitoring component rules
440 # -- Enable ingress from Prometheus
443 # -- Enable ingress for config reloader metrics
446 ## Service account for Alertmanager to use.
447 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
453 automountServiceAccountToken: true
454 ## Configure pod disruption budgets for Alertmanager
455 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
461 unhealthyPodEvictionPolicy: AlwaysAllow
462 ## Enable vertical pod autoscaler support for Alertmanager
463 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
465 verticalPodAutoscaler:
467 # Recommender responsible for generating recommendation for the object.
468 # List should be empty (then the default recommender will generate the recommendation)
469 # or contain exactly one recommender.
471 # - name: custom-recommender-performance
473 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
474 controlledResources: []
475 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
476 # controlledValues: RequestsAndLimits
478 # Define the max allowed resources for the pod
482 # Define the min allowed resources for the pod
488 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
489 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
491 ## Alertmanager configuration directives
492 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
493 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
500 - 'severity = critical'
502 - 'severity =~ warning|info'
507 - 'severity = warning'
514 - 'alertname = InfoInhibitor'
520 - 'alertname = InfoInhibitor'
522 group_by: ['namespace']
530 - alertname = "Watchdog"
534 - '/etc/alertmanager/config/*.tmpl'
535 ## Alertmanager configuration directives (as string type, preferred over the config hash map)
536 ## stringConfig will be used only if tplConfig is true
537 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
538 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
541 ## Pass the Alertmanager configuration directives through Helm's templating
542 ## engine. If the Alertmanager configuration contains Alertmanager templates,
543 ## they'll need to be properly escaped so that they are not interpreted by
545 ## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
546 ## https://prometheus.io/docs/alerting/configuration/#tmpl_string
547 ## https://prometheus.io/docs/alerting/notifications/
548 ## https://prometheus.io/docs/alerting/notification_examples/
550 ## Alertmanager template files to format alerts
551 ## By default, templateFiles are placed in /etc/alertmanager/config/ and if
552 ## they have a .tmpl file suffix will be loaded. See config.templates above
553 ## to change, add other suffixes. If adding other suffixes, be sure to update
554 ## config.templates above to include those suffixes.
555 ## ref: https://prometheus.io/docs/alerting/notifications/
556 ## https://prometheus.io/docs/alerting/notification_examples/
560 ## An example template:
561 # template_1.tmpl: |-
562 # {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
564 # {{ define "slack.myorg.text" }}
566 # {{ range .Alerts }}
567 # *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
568 # *Cluster:* {{ template "cluster" $root }}
569 # *Description:* {{ .Annotations.description }}
570 # *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
571 # *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
573 # {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
583 ## Override ingress to a different defined port on the service
585 ## Override ingress to a different service then the default, this is useful if you need to
586 ## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
587 # serviceName: kube-prometheus-stack-alertmanager-0
589 ## Hosts must be provided if Ingress is enabled.
592 # - alertmanager.domain.com
594 ## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
599 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
600 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
601 # pathType: ImplementationSpecific
603 ## TLS configuration for Alertmanager Ingress
604 ## Secret must be manually created in the namespace
607 # - secretName: alertmanager-general-tls
609 # - alertmanager.example.com
610 # -- BETA: Configure the gateway routes for the chart here.
611 # More routes can be added by adding a dictionary key like the 'main' route.
612 # Be aware that this is an early beta of this feature,
613 # kube-prometheus-stack does not guarantee this works and is subject to change.
614 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
615 # [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#gatewaynetworkingk8siov1alpha2)
618 # -- Enables or disables the route
620 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
621 apiVersion: gateway.networking.k8s.io/v1
622 # -- Set the route kind
623 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
628 # - my-filter.example.com
632 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
633 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
634 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
640 ## Filters define the filters that are applied to requests that match this rule.
642 ## Timeouts for the generated HTTPRoute backend rule.
643 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
646 # backendRequest: 60s
648 ## Session persistence configuration for the route rule.
649 sessionPersistence: {}
652 # absoluteTimeout: 12h
654 # lifetimeType: Permanent
656 ## Additional custom rules that can be added to the route
658 ## Configuration for Alertmanager secret
662 ## Configuration for creating an Ingress that will map to each Alertmanager replica service
663 ## alertmanager.servicePerReplica must be enabled
670 ## Final form of the hostname for each per replica ingress is
671 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
673 ## Prefix for the per replica ingress that will have `-$replicaNumber`
674 ## appended to the end
676 ## Domain that will be used for the per replica ingress
678 ## Paths to use for ingress rules
683 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
684 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
685 # pathType: ImplementationSpecific
687 ## Secret name containing the TLS certificate for alertmanager per replica ingress
688 ## Secret must be manually created in the namespace
690 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
694 ## Final form of the secret for each per replica ingress is
695 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
697 prefix: "alertmanager"
698 ## Configuration for creating a Gateway API route that will map to each Alertmanager replica service
699 ## alertmanager.servicePerReplica must be enabled
703 # -- Enables or disables the routePerReplica
705 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
706 apiVersion: gateway.networking.k8s.io/v1
707 # -- Set the route kind
708 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
712 ## Final form of the hostname for each per replica route is
713 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
715 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
717 ## Domain that will be used for the per replica route
722 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
723 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
724 ## matches, filters and additionalRules will be ignored if this is set to true.
726 ## Filters define the filters that are applied to requests that match this rule.
732 ## Timeouts for the generated HTTPRoute backend rule.
733 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
736 # backendRequest: 60s
738 ## Session persistence configuration for the route rule.
739 sessionPersistence: {}
742 # absoluteTimeout: 12h
744 # lifetimeType: Permanent
746 ## Additional custom rules that can be added to the route
748 ## Configuration for Alertmanager service
757 ipFamilies: ["IPv6", "IPv4"]
758 ipFamilyPolicy: "PreferDualStack"
759 ## Port for Alertmanager Service to listen on
762 ## Port for Alertmanager cluster communication
765 ## To be used with a proxy extraContainer port
768 ## Port to expose on each node
769 ## Only used if service.type is 'NodePort'
772 ## List of IP addresses at which the Prometheus server service is available
773 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
776 ## Additional ports to open for Alertmanager service
779 # - name: oauth-proxy
782 # - name: oauth-metrics
788 loadBalancerSourceRanges: []
789 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
791 externalTrafficPolicy: Cluster
792 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
793 ## Accepts 'ClientIP' or 'None'
795 sessionAffinity: None
796 ## If you want to modify the ClientIP sessionAffinity timeout
797 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
799 sessionAffinityConfig:
801 timeoutSeconds: 10800
805 ## Configuration for creating a separate Service for each statefulset Alertmanager replica
810 ## Port for Alertmanager Service per replica to listen on
813 ## To be used with a proxy extraContainer port
815 ## Port to expose on each node
816 ## Only used if servicePerReplica.type is 'NodePort'
819 ## Loadbalancer source IP ranges
820 ## Only used if servicePerReplica.type is "LoadBalancer"
821 loadBalancerSourceRanges: []
822 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
824 externalTrafficPolicy: Cluster
828 ## Configuration for creating a ServiceMonitor for AlertManager
831 ## If true, a ServiceMonitor will be created for the AlertManager service.
834 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
840 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
841 ## If not set, the default scrape class (if any) is used.
844 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
847 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
850 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
853 ## 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.
855 labelNameLengthLimit: 0
856 ## 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.
858 labelValueLengthLimit: 0
859 ## proxyUrl: URL of a proxy that should be used for scraping.
862 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
864 ## enableHttp2: Whether to enable HTTP2.
865 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
867 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
868 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
871 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
872 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
874 metricRelabelings: []
876 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
877 # sourceLabels: [__name__]
879 ## RelabelConfigs to apply to samples before scraping
880 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
883 # - sourceLabels: [__meta_kubernetes_pod_node_name]
886 # targetLabel: nodename
890 ## Additional Endpoints
892 additionalEndpoints: []
893 # - port: oauth-metrics
895 ## Settings affecting alertmanagerSpec
896 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerspec
899 ## Statefulset's persistent volume claim retention policy
900 ## whenDeleted and whenScaled determine whether
901 ## statefulset's PVCs are deleted (true) or retained (false)
902 ## on scaling down and deleting statefulset, respectively.
903 ## Requires Kubernetes version 1.27.0+.
904 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
905 persistentVolumeClaimRetentionPolicy: {}
906 # whenDeleted: Retain
909 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
910 ## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
915 ## Image of Alertmanager
919 repository: chainguard-private/prometheus-alertmanager
921 sha: sha256:e224581085925e647fae90b76ec8f3eb8a48cb33cfa7464552cb4d058edeb0a6
922 pullPolicy: IfNotPresent
923 ## If true then the user will be responsible to provide a secret with alertmanager configuration
924 ## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
926 useExistingSecret: false
927 ## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
928 ## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
931 ## If false then the user will opt out of automounting API credentials.
933 automountServiceAccountToken: true
934 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
935 ## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
938 ## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
939 ## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
943 ## WebTLSConfig defines the TLS parameters for HTTPS
944 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerwebspec
946 ## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
948 alertmanagerConfigSelector: {}
949 ## Example which selects all alertmanagerConfig resources
950 ## with label "alertconfig" with values any of "example-config" or "example-config-2"
951 # alertmanagerConfigSelector:
959 ## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
960 # alertmanagerConfigSelector:
962 # role: example-config
964 ## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
966 alertmanagerConfigNamespaceSelector: {}
967 ## Example which selects all namespaces
968 ## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
969 # alertmanagerConfigNamespaceSelector:
971 # - key: alertmanagerconfig
974 # - example-namespace
975 # - example-namespace-2
977 ## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
978 # alertmanagerConfigNamespaceSelector:
980 # alertmanagerconfig: enabled
982 ## AlermanagerConfig to be used as top level configuration
984 alertmanagerConfiguration: {}
985 ## Example with select a global alertmanagerconfig
986 # alertmanagerConfiguration:
987 # name: global-alertmanager-Configuration
989 ## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
991 alertmanagerConfigMatcherStrategy: {}
992 ## Example with use OnNamespace strategy
993 # alertmanagerConfigMatcherStrategy:
996 ## Additional command line arguments to pass to Alertmanager (in addition to those generated by the chart)
999 # Use logfmt (default) or json logging
1001 ## Log level for Alertmanager to be configured with.
1004 ## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
1005 ## running cluster equal to the expected size.
1007 ## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
1008 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
1011 ## Storage is the definition of how storage will be used by the Alertmanager instances.
1012 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
1015 # volumeClaimTemplate:
1017 # storageClassName: gluster
1018 # accessModes: ["ReadWriteOnce"]
1024 ## 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
1027 ## 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,
1028 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
1031 ## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
1033 ## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
1034 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
1036 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
1039 ## Define which Nodes the Pods are scheduled on.
1040 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
1043 kubernetes.io/os: linux
1044 ## Define resources requests and limits for single Pods.
1045 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
1051 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
1052 ## 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.
1053 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
1054 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
1056 podAntiAffinity: "soft"
1057 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
1058 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
1060 podAntiAffinityTopologyKey: kubernetes.io/hostname
1061 ## Assign custom affinity rules to the alertmanager instance
1062 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1066 # requiredDuringSchedulingIgnoredDuringExecution:
1067 # nodeSelectorTerms:
1068 # - matchExpressions:
1069 # - key: kubernetes.io/e2e-az-name
1075 ## If specified, the pod's tolerations.
1076 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
1082 # effect: "NoSchedule"
1084 ## If specified, the pod's topology spread constraints.
1085 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1087 topologySpreadConstraints: []
1089 # topologyKey: topology.kubernetes.io/zone
1090 # whenUnsatisfiable: DoNotSchedule
1095 ## SecurityContext holds pod-level security attributes and common container settings.
1096 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
1097 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1105 type: RuntimeDefault
1106 ## Use the host's user namespace for Alertmanager pods.
1107 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
1109 ## DNS configuration for Alertmanager.
1110 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
1112 ## DNS policy for Alertmanager.
1113 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
1115 ## Enable hostNetwork for Alertmanager.
1117 ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
1118 ## Note this is only for the Alertmanager UI, not the gossip communication.
1121 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
1125 # - name: oauth-proxy
1126 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.6
1128 # - --upstream=http://127.0.0.1:9093
1129 # - --http-address=0.0.0.0:8081
1130 # - --metrics-address=0.0.0.0:8082
1133 # - containerPort: 8081
1136 # - containerPort: 8082
1137 # name: oauth-metrics
1141 # Additional volumes on the output StatefulSet definition.
1143 # Additional VolumeMounts on the output StatefulSet definition.
1145 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
1146 ## (permissions, dir tree) on mounted volumes before starting prometheus
1148 ## Priority class assigned to the Pods
1150 priorityClassName: ""
1151 ## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
1154 ## PortName to use for Alert Manager.
1156 portName: "http-web"
1157 ## 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
1159 clusterAdvertiseAddress: false
1160 ## clusterGossipInterval determines interval between gossip 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 clusterGossipInterval: ""
1163 ## clusterPeerName defines the name this instance advertises to other cluster peers, defaulting to the pod name.
1164 ## Literal values and references to environment variables available in the container (e.g. "$(POD_NAME).$(NAMESPACE)") are both accepted.
1165 ## Requires Alertmanager >= v0.30.0.
1167 ## clusterPeerTimeout determines timeout for cluster peering.
1168 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1169 clusterPeerTimeout: ""
1170 ## clusterPushpullInterval determines interval between pushpull attempts.
1171 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1172 clusterPushpullInterval: ""
1173 ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1175 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1176 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1177 forceEnableClusterMode: false
1178 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1179 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1181 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1182 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1183 podManagementPolicy: ""
1184 ## Update strategy for the StatefulSet.
1185 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1187 # type: RollingUpdate
1191 ## Duration in seconds the pod needs to terminate gracefully.
1192 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1193 terminationGracePeriodSeconds: ~
1194 ## EnableServiceLinks indicates whether information about services should be injected into the
1195 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
1196 enableServiceLinks: ~
1197 ## Set the scheduler name to use for the Alertmanager pods.
1199 ## Pods' hostAliases configuration
1200 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1206 ## Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0.
1207 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec
1210 # maxPerSilenceBytes: 1MB
1212 ## ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.
1213 ## Requires Alertmanager >= v0.24.0.
1214 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig
1216 ## Additional configuration which is not covered by the properties above. (passed through tpl)
1217 additionalConfig: {}
1218 ## Additional configuration which is not covered by the properties above.
1219 ## Useful, if you need advanced templating inside alertmanagerSpec.
1220 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1221 additionalConfigString: ""
1222 ## ExtraSecret can be used to store various data in an extra secret
1223 ## (use it for example to store hashed basic auth credentials)
1225 ## if not set, name will be auto generated
1230 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1231 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1232## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1236 namespaceOverride: ""
1237 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1239 forceDeployDatasources: false
1240 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1242 forceDeployDashboards: false
1243 ## Deploy default dashboards
1245 defaultDashboardsEnabled: true
1246 ## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1247 ## These settings control how dashboards are integrated with the Grafana Operator
1248 ## Note: With operator.datasourcesEnabled disabled, end users still need to create their own
1249 ## kind: GrafanaDatasource for Prometheus
1251 ## apiVersion: grafana.integreatly.org/v1beta1
1252 ## kind: GrafanaDatasource
1257 ## allowCrossNamespaceImport: true
1258 ## instanceSelector:
1265 ## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1268 ## "tlsSkipVerify": true
1269 ## "timeInterval": "5s"
1272 ## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1273 ## Set to true to allow dashboards to be loaded from ConfigMap references
1274 dashboardsConfigMapRefEnabled: false
1275 ## Provision GrafanaDatasource CRs instead of a file-based datasource ConfigMap
1276 ## Covers the default Prometheus datasource, the per-replica Prometheus datasources, the
1277 ## Alertmanager datasource and every entry of grafana.additionalDataSources
1278 ## An entry of grafana.additionalDataSources may carry `valuesFrom` and `plugins`, both are
1279 ## moved from the datasource to the CR spec
1280 ## grafana.additionalDataSourcesString, grafana.deleteDatasources and grafana.prune have no CR
1281 ## equivalent and keep using the ConfigMap
1282 datasourcesEnabled: false
1283 ## Annotations for GrafanaDashboard Cr
1286 ## Labels that should be matched kind: Grafana instance
1287 ## Example: { app: grafana, category: dashboard }
1290 ## How frequently the operator should resync resources (in duration format)
1291 ## Controls how often dashboards are reconciled by the operator
1294 ## Which folder contains all dashboards in Grafana
1295 ## This folder will be created on the Root level
1296 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1299 ## Which UID of the target folder contains all dashboards in Grafana
1300 ## This allows you to use subfolder hierarchy
1301 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1304 ## Which GrafanaFolder reference contains all dashboards in Grafana
1305 ## This allows you to use subfolder hierarchy.
1306 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1309 ## Timezone for the default dashboards
1310 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1312 defaultDashboardsTimezone: utc
1313 ## Editable flag for the default dashboards
1315 defaultDashboardsEditable: true
1316 ## Default interval for Grafana dashboards
1318 defaultDashboardsInterval: 1m
1319 # Administrator credentials when not using an existing secret (see below)
1321 # adminPassword: strongpassword
1323 # Use an existing secret for the admin user.
1325 ## Name of the secret. Can be templated.
1328 passwordKey: admin-password
1330 ## If true, Grafana PSPs will be created
1334 ## If true, Grafana Ingress will be created
1337 ## IngressClassName for Grafana Ingress.
1338 ## Should be provided if Ingress is enable.
1340 # ingressClassName: nginx
1342 ## Annotations for Grafana Ingress
1345 # kubernetes.io/ingress.class: nginx
1346 # kubernetes.io/tls-acme: "true"
1348 ## Labels to be added to the Ingress
1352 ## Must be provided if Ingress is enable.
1355 # - grafana.domain.com
1357 ## Path for grafana ingress
1359 ## TLS configuration for grafana Ingress
1360 ## Secret must be manually created in the namespace
1363 # - secretName: grafana-general-tls
1365 # - grafana.example.com
1366 # # To make Grafana persistent (Using Statefulset)
1371 # storageClassName: "storageClassName"
1376 # - kubernetes.io/pvc-protection
1383 label: grafana_dashboard
1385 # Allow discovery in all namespaces for dashboards
1386 searchNamespace: ALL
1387 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1388 enableNewTablePanelSyntax: false
1389 ## Annotations for Grafana dashboard configmaps
1392 ## Annotation the sidecar reads to decide in which Grafana folder a dashboard
1393 ## is stored. Requires `provider.foldersFromFilesStructure` to be enabled.
1394 ## ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards
1396 # folderAnnotation: grafana_folder
1403 allowUiUpdates: false
1404 ## Let Grafana replicate the dashboard folder structure created by the sidecar,
1405 ## so dashboards are grouped into folders instead of the default one.
1406 ## Required when using `folderAnnotation` above.
1408 # foldersFromFilesStructure: true
1411 defaultDatasourceEnabled: true
1412 isDefaultDatasource: true
1415 ## Extra jsonData properties to add to the datasource
1417 # prometheusType: Prometheus
1419 ## URL of prometheus datasource
1421 # url: http://prometheus-stack-prometheus:9090/
1423 ## Prometheus request timeout in seconds
1426 ## Query parameters to add, as a URL-encoded string,
1427 ## to query Prometheus
1428 # customQueryParameters: ""
1430 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1431 # defaultDatasourceScrapeInterval: 15s
1433 ## Annotations for Grafana datasource configmaps
1436 ## Set method for HTTP to send query to datasource
1438 ## Create datasource for each Pod of Prometheus StatefulSet;
1439 ## this uses by default the headless service `prometheus-operated` which is
1440 ## created by Prometheus Operator. In case you deployed your own Service for your
1441 ## Prometheus instance, you can specify it with the field `prometheusServiceName`
1442 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1443 createPrometheusReplicasDatasources: false
1444 prometheusServiceName: prometheus-operated
1445 label: grafana_datasource
1447 ## Field with internal link pointing to existing data source in Grafana.
1448 ## Can be provisioned via additionalDataSources
1449 exemplarTraceIdDestinations: {}
1450 # datasourceUid: Jaeger
1451 # traceIdLabelName: trace_id
1452 # urlDisplayLabel: View traces
1457 handleGrafanaManagedAlerts: false
1458 implementation: prometheus
1459 extraConfigmapMounts: []
1460 # - name: certs-configmap
1461 # mountPath: /etc/grafana/ssl/
1462 # configMap: certs-configmap
1465 deleteDatasources: []
1466 # - name: example-datasource
1469 ## Configure additional grafana datasources (passed through tpl)
1470 ## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1471 additionalDataSources: []
1472 # - name: prometheus-sample
1476 # basicAuthPassword: pass
1477 # basicAuthUser: daco
1480 # tlsSkipVerify: true
1483 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1486 ## Configure additional grafana datasources as a templated string (passed through tpl)
1487 ## Useful when you need Helm flow control or templating inside the datasource definition
1488 additionalDataSourcesString: ""
1489 # Flag to mark provisioned data sources for deletion if they are no longer configured.
1490 # It takes no effect if data sources are already listed in the deleteDatasources section.
1491 # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1493 ## Passed to grafana subchart and used by servicemonitor below
1500 # If true, a ServiceMonitor CRD is created for a prometheus operator
1501 # https://github.com/prometheus-operator/prometheus-operator
1504 # Path to use for scraping metrics. Might be different if server.root_url is set
1508 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1510 # labels for the ServiceMonitor
1513 # Extra scrape settings.
1517 # scrapeTimeout: 30s
1519 ## RelabelConfigs to apply to samples before scraping
1520 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1523 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1526 # targetLabel: nodename
1529## Flag to disable all the kubernetes component scrapers
1531kubernetesServiceMonitors:
1533## Component scraping the kube api server
1537 ## TLS configuration of the ServiceMonitor endpoint. Rendered as-is, so any field of the
1538 ## Prometheus Operator SafeTLSConfig type can be set here.
1539 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1542 serverName: kubernetes
1543 insecureSkipVerify: false
1546 name: kube-root-ca.crt
1550 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1553 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1554 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1556 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1561 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1563 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
1564 ## If not set, the default scrape class (if any) is used.
1567 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1570 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1573 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1576 ## 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.
1578 labelNameLengthLimit: 0
1579 ## 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.
1581 labelValueLengthLimit: 0
1582 ## proxyUrl: URL of a proxy that should be used for scraping.
1588 component: apiserver
1589 provider: kubernetes
1590 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1591 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1594 # Drop excessively noisy apiserver buckets.
1596 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)?
1601 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1602 # sourceLabels: [__name__]
1604 ## RelabelConfigs to apply to samples before scraping
1605 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1609 # - __meta_kubernetes_namespace
1610 # - __meta_kubernetes_service_name
1611 # - __meta_kubernetes_endpoint_port_name
1613 # regex: default;kubernetes;https
1614 # - targetLabel: __address__
1615 # replacement: kubernetes.default.svc:443
1617 ## Additional labels
1619 additionalLabels: {}
1622 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1623 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1625 ## Override the job label used for the apiserver.
1626 ## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1627 ## to align the recording rules and alerts with their actual job label.
1629## Component scraping the kubelet and kubelet-hosted cAdvisor
1633 namespace: kube-system
1634 # Overrides the job selector in Grafana dashboards and Prometheus rules
1635 # For k3s clusters, change to k3s-server
1639 ## Enable scraping /metrics from kubelet's service
1641 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1645 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1648 ## If true, Prometheus use (respect) labels provided by exporter.
1651 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1653 honorTimestamps: true
1654 ## 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.
1655 ## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1656 ## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1657 trackTimestampsStaleness: true
1658 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
1659 ## If not set, the default scrape class (if any) is used.
1662 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1665 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1668 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1671 ## 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.
1673 labelNameLengthLimit: 0
1674 ## 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.
1676 labelValueLengthLimit: 0
1677 ## proxyUrl: URL of a proxy that should be used for scraping.
1680 ## Enable scraping the kubelet over https. For requirements to enable this see
1681 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1684 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1685 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1687 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1692 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1694 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1695 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1696 ## insecureSkipVerify is enabled by default because the kubelet serving certificate deployed by
1697 ## kubeadm is self-signed.
1698 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1699 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1702 insecureSkipVerify: true
1705 name: kube-root-ca.crt
1707 ## Enable scraping /metrics/probes from kubelet's service
1710 ## Enable scraping /metrics/resource from kubelet's service
1711 ## This is disabled by default because container metrics are already exposed by cAdvisor
1714 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1715 resourcePath: "/metrics/resource/v1alpha1"
1716 ## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1717 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1718 ## if kubelet.serviceMonitor.interval is not empty.
1719 resourceInterval: 10s
1720 ## Enable scraping /metrics/cadvisor from kubelet's service
1723 ## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1724 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1725 ## if kubelet.serviceMonitor.interval is not empty.
1726 cAdvisorInterval: 10s
1727 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1728 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1730 cAdvisorMetricRelabelings:
1731 # Drop less useful container CPU metrics.
1732 - sourceLabels: [__name__]
1734 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1735 # Drop less useful container / always zero filesystem metrics.
1736 - sourceLabels: [__name__]
1738 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)'
1739 # Drop less useful container memory metrics. container_memory_swap is kept because the
1740 # k8s.rules.container_memory_swap recording rule and the "Memory Usage (Swap)" columns
1741 # of the Compute Resources dashboards are built on it.
1742 - sourceLabels: [__name__]
1744 regex: 'container_memory_mapped_file'
1745 # Drop less useful container process metrics.
1746 - sourceLabels: [__name__]
1748 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1749 # Drop container_memory_failures_total{scope="hierarchy"} metrics,
1750 # we only need the container scope.
1751 - sourceLabels: [__name__, scope]
1753 regex: 'container_memory_failures_total;hierarchy'
1754 # Drop container_network_... metrics that match various interfaces that
1755 # correspond to CNI and similar interfaces. This avoids capturing network
1756 # metrics for host network containers.
1757 - sourceLabels: [__name__, interface]
1759 regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1760 # Drop container spec metrics that overlap with kube-state-metrics.
1761 - sourceLabels: [__name__]
1763 regex: 'container_spec.*'
1764 # Drop cgroup metrics with no pod.
1765 - sourceLabels: [id, pod]
1768 # - sourceLabels: [__name__, image]
1770 # regex: container_([a-z_]+);
1773 # - sourceLabels: [__name__]
1775 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1779 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1780 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1782 probesMetricRelabelings: []
1783 # - sourceLabels: [__name__, image]
1785 # regex: container_([a-z_]+);
1788 # - sourceLabels: [__name__]
1790 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1794 ## RelabelConfigs to apply to samples before scraping
1795 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1797 ## metrics_path is required to match upstream rules and charts
1798 cAdvisorRelabelings:
1800 sourceLabels: [__metrics_path__]
1801 targetLabel: metrics_path
1802 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1805 # targetLabel: nodename
1809 ## RelabelConfigs to apply to samples before scraping
1810 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1814 sourceLabels: [__metrics_path__]
1815 targetLabel: metrics_path
1816 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1819 # targetLabel: nodename
1823 ## RelabelConfigs to apply to samples before scraping
1824 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1826 resourceRelabelings:
1828 sourceLabels: [__metrics_path__]
1829 targetLabel: metrics_path
1830 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1833 # targetLabel: nodename
1837 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1838 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1841 # Reduce bucket cardinality of kubelet storage operations.
1843 sourceLabels: [__name__, le]
1844 regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1845 # - sourceLabels: [__name__, image]
1847 # regex: container_([a-z_]+);
1850 # - sourceLabels: [__name__]
1852 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1856 ## RelabelConfigs to apply to samples before scraping
1857 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1859 ## metrics_path is required to match upstream rules and charts
1862 sourceLabels: [__metrics_path__]
1863 targetLabel: metrics_path
1864 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1867 # targetLabel: nodename
1871 ## Additional labels
1873 additionalLabels: {}
1876 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1877 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1879## Component scraping the kube controller manager
1881kubeControllerManager:
1883 # Overrides the job selector in Grafana dashboards and Prometheus rules
1884 # For k3s clusters, change to k3s-server
1886 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1893 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1897 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1898 ## of default port in Kubernetes 1.22.
1904 ipFamilies: ["IPv6", "IPv4"]
1905 ipFamilyPolicy: "PreferDualStack"
1907 # component: kube-controller-manager
1910 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1913 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
1914 ## If not set, the default scrape class (if any) is used.
1917 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1920 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1923 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1926 ## 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.
1928 labelNameLengthLimit: 0
1929 ## 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.
1931 labelValueLengthLimit: 0
1932 ## proxyUrl: URL of a proxy that should be used for scraping.
1935 ## port: Name of the port the metrics will be scraped from
1941 # component: kube-controller-manager
1943 ## Enable scraping kube-controller-manager over https.
1944 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1945 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1948 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1949 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1951 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1956 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1958 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1959 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1960 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1963 insecureSkipVerify: true
1966 name: kube-root-ca.crt
1968 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1969 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1971 metricRelabelings: []
1973 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1974 # sourceLabels: [__name__]
1976 ## RelabelConfigs to apply to samples before scraping
1977 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1980 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1983 # targetLabel: nodename
1987 ## Additional labels
1989 additionalLabels: {}
1992 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1993 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1995## Component scraping coreDns. Use either this or kubeDns
2005 ipFamilies: ["IPv6", "IPv4"]
2006 ipFamilyPolicy: "PreferDualStack"
2011 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2014 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
2015 ## If not set, the default scrape class (if any) is used.
2018 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2021 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2024 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2027 ## 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.
2029 labelNameLengthLimit: 0
2030 ## 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.
2032 labelValueLengthLimit: 0
2033 ## proxyUrl: URL of a proxy that should be used for scraping.
2036 ## port: Name of the port the metrics will be scraped from
2044 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2045 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2047 metricRelabelings: []
2049 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2050 # sourceLabels: [__name__]
2052 ## RelabelConfigs to apply to samples before scraping
2053 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2056 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2059 # targetLabel: nodename
2063 ## Additional labels
2065 additionalLabels: {}
2068 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2069 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2071 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2072 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2074 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2079 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2081## Component scraping kubeDns. Use either this or coreDns
2094 ipFamilies: ["IPv6", "IPv4"]
2095 ipFamilyPolicy: "PreferDualStack"
2099 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2102 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
2103 ## If not set, the default scrape class (if any) is used.
2106 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2109 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2112 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2115 ## 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.
2117 labelNameLengthLimit: 0
2118 ## 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.
2120 labelValueLengthLimit: 0
2121 ## proxyUrl: URL of a proxy that should be used for scraping.
2129 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2130 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2132 metricRelabelings: []
2134 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2135 # sourceLabels: [__name__]
2137 ## RelabelConfigs to apply to samples before scraping
2138 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2141 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2144 # targetLabel: nodename
2148 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2149 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2151 dnsmasqMetricRelabelings: []
2153 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2154 # sourceLabels: [__name__]
2156 ## RelabelConfigs to apply to samples before scraping
2157 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2159 dnsmasqRelabelings: []
2160 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2163 # targetLabel: nodename
2167 ## Additional labels
2169 additionalLabels: {}
2172 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2173 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2175 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2176 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2178 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2183 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2185## Component scraping etcd
2189 ## If your etcd is not deployed as a pod, specify IPs it can be found on
2196 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2204 ipFamilies: ["IPv6", "IPv4"]
2205 ipFamilyPolicy: "PreferDualStack"
2208 ## Configure secure access to the etcd cluster by referencing a secret holding the client
2209 ## certificate. For example, with a secret named etcd-client-cert
2214 ## insecureSkipVerify: false
2215 ## serverName: localhost
2218 ## name: etcd-client-cert
2222 ## name: etcd-client-cert
2225 ## name: etcd-client-cert
2226 ## key: etcd-client-key
2230 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2233 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
2234 ## If not set, the default scrape class (if any) is used.
2237 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2240 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2243 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2246 ## 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.
2248 labelNameLengthLimit: 0
2249 ## 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.
2251 labelValueLengthLimit: 0
2252 ## proxyUrl: URL of a proxy that should be used for scraping.
2256 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scheme is https.
2257 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2258 ## etcd requires client certificates, see the commented example above.
2259 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2262 insecureSkipVerify: false
2263 ## port: Name of the port the metrics will be scraped from
2271 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2272 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2274 metricRelabelings: []
2276 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2277 # sourceLabels: [__name__]
2279 ## RelabelConfigs to apply to samples before scraping
2280 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2283 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2286 # targetLabel: nodename
2290 ## Additional labels
2292 additionalLabels: {}
2295 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2296 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2298 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2299 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2301 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2306 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2308## Component scraping kube scheduler
2312 # Overrides the job selector in Grafana dashboards and Prometheus rules
2313 # For k3s clusters, change to k3s-server
2315 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2322 ## If using kubeScheduler.endpoints only the port and targetPort are used
2326 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2327 ## of default port in Kubernetes 1.23.
2333 ipFamilies: ["IPv6", "IPv4"]
2334 ipFamilyPolicy: "PreferDualStack"
2336 # component: kube-scheduler
2339 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2342 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
2343 ## If not set, the default scrape class (if any) is used.
2346 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2349 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2352 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2355 ## 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.
2357 labelNameLengthLimit: 0
2358 ## 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.
2360 labelValueLengthLimit: 0
2361 ## proxyUrl: URL of a proxy that should be used for scraping.
2364 ## Enable scraping kube-scheduler over https.
2365 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2366 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
2369 ## port: Name of the port the metrics will be scraped from
2375 # component: kube-scheduler
2377 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2378 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2380 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2385 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2387 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2388 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2389 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2392 insecureSkipVerify: true
2395 name: kube-root-ca.crt
2397 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2398 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2400 metricRelabelings: []
2402 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2403 # sourceLabels: [__name__]
2405 ## RelabelConfigs to apply to samples before scraping
2406 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2409 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2412 # targetLabel: nodename
2416 ## Additional labels
2418 additionalLabels: {}
2421 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2422 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2425 ## Enable scraping /metrics/resource from kube-scheduler
2426 ## https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics
2428 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2431 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2432 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2434 metricRelabelings: []
2436 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2437 # sourceLabels: [__name__]
2439 ## RelabelConfigs to apply to samples before scraping
2440 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2443 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2446 # targetLabel: nodename
2449## Component scraping kube proxy
2453 # Overrides the job selector in Grafana dashboards and Prometheus rules
2454 # For k3s clusters, change to k3s-server
2456 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2469 ipFamilies: ["IPv6", "IPv4"]
2470 ipFamilyPolicy: "PreferDualStack"
2472 # k8s-app: kube-proxy
2475 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2478 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
2479 ## If not set, the default scrape class (if any) is used.
2482 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2485 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2488 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2491 ## 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.
2493 labelNameLengthLimit: 0
2494 ## 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.
2496 labelValueLengthLimit: 0
2497 ## proxyUrl: URL of a proxy that should be used for scraping.
2500 ## port: Name of the port the metrics will be scraped from
2506 # k8s-app: kube-proxy
2508 ## Enable scraping kube-proxy over https.
2509 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2512 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2513 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2514 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2519 name: kube-root-ca.crt
2521 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2522 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2524 metricRelabelings: []
2526 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2527 # sourceLabels: [__name__]
2529 ## RelabelConfigs to apply to samples before scraping
2530 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2534 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2535 # sourceLabels: [__name__]
2537 ## Additional labels
2539 additionalLabels: {}
2542 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2543 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2545 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2546 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2548 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2553 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2555## Component scraping kube state metrics
2559## Configuration for kube-state-metrics subchart
2562 ## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2564 ## Enable scraping via kubernetes-service-endpoints
2565 ## Disabled by default as we service monitor is enabled below
2567 prometheusScrape: false
2570 ## Enable scraping via service monitor
2571 ## Disable to prevent duplication if you enable prometheusScrape above
2573 ## kube-state-metrics endpoint
2575 ## Keep labels from scraped data, overriding server-side labels
2577 ## selfMonitor endpoint
2579 ## Keep labels from scraped data, overriding server-side labels
2581## Deploy node exporter as a daemonset to all nodes
2592 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2594 forceDeployDashboards: false
2595## Configuration for prometheus-node-exporter subchart
2597prometheus-node-exporter:
2598 ## Enable scraping via kubernetes-service-endpoints
2599 ## Disabled by default as service monitor is enabled below
2601 prometheusScrape: false
2602 namespaceOverride: ""
2604 ## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2606 jobLabel: node-exporter
2609 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2610 - --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)$
2612 portName: http-metrics
2615 ipFamilies: ["IPv6", "IPv4"]
2616 ipFamilyPolicy: "PreferDualStack"
2618 jobLabel: node-exporter
2623 ## Enable scraping via service monitor
2624 ## Disable to prevent duplication if you have enabled prometheusScrape above
2628 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2631 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2634 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2637 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2640 ## 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.
2642 labelNameLengthLimit: 0
2643 ## 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.
2645 labelValueLengthLimit: 0
2646 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2649 ## proxyUrl: URL of a proxy that should be used for scraping.
2652 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2653 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2655 metricRelabelings: []
2656 # - sourceLabels: [__name__]
2658 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2662 ## RelabelConfigs to apply to samples before scraping
2663 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2666 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2669 # targetLabel: nodename
2672 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2681 ## If true, create PSPs for node-exporter
2684## Manages Prometheus and Alertmanager components
2688 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2689 fullnameOverride: ""
2690 ## Number of old replicasets to retain ##
2691 ## The default value is 10, 0 will garbage-collect old replicasets ##
2692 revisionHistoryLimit: 10
2693 ## Strategy of the deployment
2696 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2700 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2701 tlsMinVersion: VersionTLS13
2702 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2704 ## Liveness probe for the prometheusOperator deployment
2709 initialDelaySeconds: 0
2713 ## Readiness probe for the prometheusOperator deployment
2718 initialDelaySeconds: 0
2722 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2723 ## rules from making their way into prometheus and potentially preventing the container from starting
2725 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2726 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2728 ## The default timeoutSeconds is 10 and the maximum value is 30.
2731 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2732 ## If unspecified, system trust roots on the apiserver are used.
2734 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2735 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2736 ## certs ahead of time if you wish.
2739 # argocd.argoproj.io/hook: PreSync
2740 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2742 namespaceSelector: {}
2744 # Match conditions for admission webhooks.
2745 # Must be a list, for example:
2746 # - name: exclude-leases
2747 # expression: '!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'
2749 mutatingWebhookConfiguration:
2751 # argocd.argoproj.io/hook: PreSync
2752 validatingWebhookConfiguration:
2754 # argocd.argoproj.io/hook: PreSync
2757 ## Number of replicas
2760 ## Strategy of the deployment
2763 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2764 podDisruptionBudget:
2767 # maxUnavailable: ""
2768 unhealthyPodEvictionPolicy: AlwaysAllow
2769 ## Number of old replicasets to retain ##
2770 ## The default value is 10, 0 will garbage-collect old replicasets ##
2771 revisionHistoryLimit: 10
2772 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2776 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2777 tlsMinVersion: VersionTLS13
2778 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2780 ## Service account for Prometheus Operator Webhook to use.
2781 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2785 automountServiceAccountToken: false
2788 ## Configuration for Prometheus operator Webhook service
2796 ipFamilies: ["IPv6", "IPv4"]
2797 ipFamilyPolicy: "PreferDualStack"
2798 ## Port to expose on each node
2799 ## Only used if service.type is 'NodePort'
2803 ## Additional ports to open for Prometheus operator Webhook service
2804 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2808 ## Only use if service.type is "LoadBalancer"
2811 loadBalancerSourceRanges: []
2812 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2814 externalTrafficPolicy: Cluster
2816 ## NodePort, ClusterIP, LoadBalancer
2819 ## List of IP addresses at which the Prometheus server service is available
2820 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2823 # ## Labels to add to the operator webhook deployment
2826 ## Annotations to add to the operator webhook deployment
2829 ## Labels to add to the operator webhook pod
2832 ## Annotations to add to the operator webhook pod
2835 ## Assign a PriorityClassName to pods if set
2836 # priorityClassName: ""
2838 ## Define Log Format
2839 # Use logfmt (default) or json logging
2842 ## Decrease log verbosity to errors only
2845 ## Prometheus-operator webhook image
2849 repository: chainguard-private/prometheus-admission-webhook
2850 # if not set appVersion field from Chart.yaml is used
2852 sha: sha256:7ee27ecf781e0a4c515eabd1e4e04333f0d01850c17114c9454d2db9f5422092
2853 pullPolicy: IfNotPresent
2854 ## Define Log Format
2855 # Use logfmt (default) or json logging
2858 ## Decrease log verbosity to errors only
2861 ## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2862 ## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2863 ## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2864 ## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2872 initialDelaySeconds: 30
2881 initialDelaySeconds: 5
2885 ## Resource limits & requests
2895 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2896 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2899 ## Define which Nodes the Pods are scheduled on.
2900 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2903 kubernetes.io/os: linux
2904 ## Tolerations for use with node taints
2905 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2911 # effect: "NoSchedule"
2913 ## Assign custom affinity rules to the prometheus operator
2914 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2918 # requiredDuringSchedulingIgnoredDuringExecution:
2919 # nodeSelectorTerms:
2920 # - matchExpressions:
2921 # - key: kubernetes.io/e2e-az-name
2930 # - ns1.svc.cluster-domain.example
2931 # - my.dns.search.suffix
2942 type: RuntimeDefault
2943 ## Container-specific security context configuration
2944 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2946 containerSecurityContext:
2947 allowPrivilegeEscalation: false
2948 readOnlyRootFilesystem: true
2952 ## If false then the user will opt out of automounting API credentials.
2954 automountServiceAccountToken: true
2959 repository: chainguard-private/kube-webhook-certgen
2961 sha: sha256:beae8b5ad3b8588cf26920237619a2a126124b3fd39400992fa3e1d3f1e78e8a
2962 pullPolicy: IfNotPresent
2963 ## Type of the secret created by the certgen job. Requires kube-webhook-certgen 1.11.0 or newer.
2964 ## kubernetes.io/tls stores the certificates as ca.crt, tls.crt and tls.key. An existing Opaque secret is
2965 ## deleted and recreated as kubernetes.io/tls with the same certificates, keeping the legacy ca, cert and key entries.
2966 ## Set to "" to keep the previous Opaque secret with ca, cert and key, e.g. when using an older certgen image.
2967 ## Without cert-manager and the certgen job, the chart reads ca, cert and key from the <fullname>-admission secret.
2968 ## A secret created by this job as kubernetes.io/tls only contains ca.crt, tls.crt and tls.key, so replace it
2969 ## before disabling the job or the admission webhooks while prometheusOperator.tls.enabled is true.
2973 ## Provide a priority class name to the webhook patching job
2975 priorityClassName: ""
2976 ttlSecondsAfterFinished: 60
2978 # argocd.argoproj.io/hook: PreSync
2979 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2982 kubernetes.io/os: linux
2985 ## SecurityContext holds pod-level security attributes and common container settings.
2986 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2987 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2994 type: RuntimeDefault
2995 ## Service account for Prometheus Operator Webhook Job Patch to use.
2996 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3001 automountServiceAccountToken: true
3002 # Security context for create job container
3005 allowPrivilegeEscalation: false
3006 readOnlyRootFilesystem: true
3010 # Security context for patch job container
3013 allowPrivilegeEscalation: false
3014 readOnlyRootFilesystem: true
3018 # Use certmanager to generate webhook certs
3021 # self-signed root certificate
3023 duration: "" # default to be 5y
3024 # -- Set the revisionHistoryLimit on the Certificate. See
3025 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
3027 revisionHistoryLimit:
3029 duration: "" # default to be 1y
3030 # -- Set the revisionHistoryLimit on the Certificate. See
3031 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
3033 revisionHistoryLimit:
3036 # kind: "ClusterIssuer"
3037 # -- Set the private key algorithm and size for the Certificate. See
3038 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
3039 # Defaults to RSA 2048
3044 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
3045 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
3048 # releaseNamespace: true
3052 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
3055 ## Filter namespaces to look for prometheus-operator custom resources
3057 alertmanagerInstanceNamespaces: []
3058 alertmanagerConfigNamespaces: []
3059 prometheusInstanceNamespaces: []
3060 thanosRulerInstanceNamespaces: []
3061 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
3062 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
3063 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
3065 # clusterDomain: "cluster.local"
3067 ## Enable creation of NetworkPolicy resources.
3070 ## Flavor of the network policy to use.
3072 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3073 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3078 ## match labels used in selector
3080 ## Service account for Prometheus Operator to use.
3081 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3086 automountServiceAccountToken: true
3088 # -- terminationGracePeriodSeconds for container lifecycle hook
3089 terminationGracePeriodSeconds: 30
3090 # -- Specify lifecycle hooks for the controller
3092 ## Configuration for Prometheus operator service
3100 ipFamilies: ["IPv6", "IPv4"]
3101 ipFamilyPolicy: "PreferDualStack"
3102 ## Port to expose on each node
3103 ## Only used if service.type is 'NodePort'
3107 ## Additional ports to open for Prometheus operator service
3108 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
3112 ## Only use if service.type is "LoadBalancer"
3115 loadBalancerSourceRanges: []
3116 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3118 externalTrafficPolicy: Cluster
3120 ## NodePort, ClusterIP, LoadBalancer
3123 ## List of IP addresses at which the Prometheus server service is available
3124 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3127 # ## Labels to add to the operator deployment
3130 ## Annotations to add to the operator deployment
3133 ## Labels to add to the operator pod
3136 ## Annotations to add to the operator pod
3139 ## Assign a podDisruptionBudget to the operator
3141 podDisruptionBudget:
3144 # maxUnavailable: ""
3145 unhealthyPodEvictionPolicy: AlwaysAllow
3146 ## Assign a PriorityClassName to pods if set
3147 # priorityClassName: ""
3149 ## Define Log Format
3150 # Use logfmt (default) or json logging
3153 ## Decrease log verbosity to errors only
3156 ## If true, the operator will create and maintain a service for scraping kubelets
3157 ## ref: https://prometheus-operator.dev/docs/platform/operator/ (`-kubelet-service`)
3160 namespace: kube-system
3162 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
3164 ## Create Endpoints objects for kubelet targets.
3165 kubeletEndpointsEnabled: true
3166 ## Create EndpointSlice objects for kubelet targets.
3167 kubeletEndpointSliceEnabled: false
3168 ## Extra arguments to pass to prometheusOperator
3169 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
3171 # - --labels="cluster=talos-cluster"
3173 ## Create a servicemonitor for the operator
3176 ## If true, create a serviceMonitor for prometheus operator
3179 ## Labels for ServiceMonitor
3180 additionalLabels: {}
3181 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3184 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
3185 ## If not set, the default scrape class (if any) is used.
3188 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3191 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3194 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3197 ## 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.
3199 labelNameLengthLimit: 0
3200 ## 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.
3202 labelValueLengthLimit: 0
3203 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
3205 ## Metric relabel configs to apply to samples before ingestion.
3207 metricRelabelings: []
3209 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3210 # sourceLabels: [__name__]
3212 # relabel configs to apply to samples before ingestion.
3215 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3218 # targetLabel: nodename
3221 ## Resource limits & requests
3231 ## Operator Environment
3236 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3237 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3240 ## Define which Nodes the Pods are scheduled on.
3241 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3244 kubernetes.io/os: linux
3245 ## Tolerations for use with node taints
3246 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3252 # effect: "NoSchedule"
3254 ## Assign custom affinity rules to the prometheus operator
3255 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3259 # requiredDuringSchedulingIgnoredDuringExecution:
3260 # nodeSelectorTerms:
3261 # - matchExpressions:
3262 # - key: kubernetes.io/e2e-az-name
3271 # - ns1.svc.cluster-domain.example
3272 # - my.dns.search.suffix
3283 type: RuntimeDefault
3284 ## Setup hostUsers for prometheus-operator
3285 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
3287 ## Container-specific security context configuration
3288 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3290 containerSecurityContext:
3291 allowPrivilegeEscalation: false
3292 readOnlyRootFilesystem: true
3296 # Enable vertical pod autoscaler support for prometheus-operator
3297 verticalPodAutoscaler:
3299 # Recommender responsible for generating recommendation for the object.
3300 # List should be empty (then the default recommender will generate the recommendation)
3301 # or contain exactly one recommender.
3303 # - name: custom-recommender-performance
3305 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3306 controlledResources: []
3307 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3308 # controlledValues: RequestsAndLimits
3310 # Define the max allowed resources for the pod
3314 # Define the min allowed resources for the pod
3320 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3322 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3323 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3324 updateMode: Recreate
3325 ## Prometheus-operator image
3329 repository: chainguard-private/prometheus-operator
3330 # if not set appVersion field from Chart.yaml is used
3332 sha: sha256:18f05fc7fafeb1f9943e345a864305878039ec96d519a65e1abfae99a10ca36a
3333 pullPolicy: IfNotPresent
3334 ## Prometheus image to use for prometheuses managed by the operator
3336 # prometheusDefaultBaseImage: prometheus/prometheus
3338 ## Prometheus image registry to use for prometheuses managed by the operator
3340 # prometheusDefaultBaseImageRegistry: quay.io
3342 ## Alertmanager image to use for alertmanagers managed by the operator
3344 # alertmanagerDefaultBaseImage: prometheus/alertmanager
3346 ## Alertmanager image registry to use for alertmanagers managed by the operator
3348 # alertmanagerDefaultBaseImageRegistry: quay.io
3350 ## Prometheus-config-reloader
3352 prometheusConfigReloader:
3355 repository: chainguard-private/prometheus-config-reloader
3356 # if not set appVersion field from Chart.yaml is used
3358 sha: sha256:b87ceb164a471df075461caab607dcd356566ec214e644ef32eb33659f1fbacf
3359 # add prometheus config reloader liveness and readiness probe. Default: false
3361 # resource config for prometheusConfigReloader
3369 ## Thanos side-car image when configured
3373 repository: chainguard-private/thanos
3375 sha: sha256:4ab8fbbde01c6eb09a94d82a25742a3ca8ccf1b264adb9a11b5b76515581a534
3376 ## Set a Label Selector to filter watched prometheus and prometheusAgent
3378 prometheusInstanceSelector: ""
3379 ## Set a Label Selector to filter watched alertmanager
3381 alertmanagerInstanceSelector: ""
3382 ## Set a Label Selector to filter watched thanosRuler
3383 thanosRulerInstanceSelector: ""
3384 ## Set a Field Selector to filter watched secrets
3385 ## `kubernetes.io/service-account-token` secrets are no longer excluded, so that changes to the
3386 ## secret the control-plane ServiceMonitors authenticate with trigger a reconciliation.
3388 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=helm.sh/release.v1"
3389 ## Feature gates to enable/disable operator features, rendered as --feature-gates=<key>=<value>.
3390 ## See https://prometheus-operator.dev/docs/platform/operator/ (`-feature-gates`)
3393 ## PrometheusAgentDaemonSet: true
3394 ## StatusForConfigurationResources: true
3396 ## If false then the user will opt out of automounting API credentials.
3398 automountServiceAccountToken: true
3399 ## Additional volumes
3402 ## Additional volume mounts
3404 extraVolumeMounts: []
3405## Deploy a Prometheus instance
3409 ## Toggle prometheus into agent mode
3410 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3411 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3414 ## Annotations for Prometheus
3417 ## Additional labels for Prometheus
3419 additionalLabels: {}
3420 ## Configure network policy for the prometheus
3423 ## Flavor of the network policy to use.
3425 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3426 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3441 ## Service account for Prometheuses to use.
3442 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3448 automountServiceAccountToken: true
3449 ## Create a `kubernetes.io/service-account-token` Secret for the Prometheus service account.
3450 ## The control-plane ServiceMonitors reference it by default, because ServiceMonitors can only
3451 ## authenticate through a Secret and Kubernetes no longer creates one automatically.
3452 ## The resulting token is long-lived and does not expire; disable this and set the
3453 ## `authorization` values of the control-plane components if you manage the credential yourself,
3454 ## or enable `prometheus.controlPlaneScrapeClass` below to use the pod's projected token instead.
3455 ## Only rendered together with the service account, so it requires `prometheus.enabled` and
3456 ## `create` above. Leaving a control-plane component on the default `authorization` while the
3457 ## Secret is not rendered is a rendering error rather than a silently broken ServiceMonitor.
3458 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#manually-create-an-api-token-for-a-serviceaccount
3460 createTokenSecret: true
3461 ## Scrape class for the control-plane ServiceMonitors (kubelet, kubeApiServer, kubeControllerManager,
3462 ## kubeScheduler, kubeEtcd, kubeProxy, coreDns and kubeDns), as an alternative to the Secret above.
3463 ## When enabled, the class is appended to `prometheusSpec.scrapeClasses` and each control-plane
3464 ## ServiceMonitor selects it in place of its `serviceMonitor.authorization`. A ServiceMonitor whose `serviceMonitor.scrapeClass` names a
3465 ## different class keeps its own `authorization`.
3466 ## The default authorization reads the Prometheus pod's projected service account token, which the
3467 ## kubelet rotates, so no long-lived token is needed; set `serviceAccount.createTokenSecret` to false
3468 ## once every control-plane component uses this class.
3469 ## Only applies to this chart's Prometheus (`prometheus.enabled`). Other scrapers that read these
3470 ## ServiceMonitors, such as Grafana Alloy, do not support scrape classes and still need the Secret.
3471 ## ref: https://prometheus-operator.dev/docs/developer/scrapeclass/
3473 controlPlaneScrapeClass:
3475 name: kube-prometheus-stack-control-plane
3478 credentialsFile: /var/run/secrets/kubernetes.io/serviceaccount/token
3479 # Service for thanos service discovery on sidecar
3480 # Enable this can make Thanos Query can use
3481 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3482 # Thanos sidecar on prometheus nodes
3483 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3488 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3490 externalTrafficPolicy: Cluster
3494 ## Service dual stack
3498 ipFamilies: ["IPv6", "IPv4"]
3499 ipFamilyPolicy: "PreferDualStack"
3504 ## HTTP port config (for metrics)
3507 targetHttpPort: "http"
3508 ## ClusterIP to assign
3509 # Default is to make this a headless service ("None")
3511 ## Port to expose on each node, if service type is NodePort
3515 # ServiceMonitor to scrape Sidecar metrics
3516 # Needs thanosService to be enabled as well
3517 thanosServiceMonitor:
3520 ## Additional labels
3522 additionalLabels: {}
3523 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3525 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3526 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3529 ## Metric relabel configs to apply to samples before ingestion.
3530 metricRelabelings: []
3531 ## relabel configs to apply to samples before ingestion.
3533 # Service for external access to sidecar
3534 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
3535 thanosServiceExternal:
3540 loadBalancerSourceRanges: []
3545 ## HTTP port config (for metrics)
3548 targetHttpPort: "http"
3549 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3551 externalTrafficPolicy: Cluster
3555 ## Port to expose on each node
3559 ## Configuration for Prometheus service
3568 ipFamilies: ["IPv6", "IPv4"]
3569 ipFamilyPolicy: "PreferDualStack"
3570 ## Port for Prometheus Service to listen on
3573 ## To be used with a proxy extraContainer port
3575 ## Port for Prometheus Reloader to listen on
3577 reloaderWebPort: 8080
3578 ## Port to expose for Prometheus Reloader
3579 ## Only used if service.type is 'NodePort'
3581 reloaderWebNodePort: null
3582 ## List of IP addresses at which the Prometheus server service is available
3583 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3586 ## Port to expose on each node
3587 ## Only used if service.type is 'NodePort'
3591 ## Only use if service.type is "LoadBalancer"
3593 loadBalancerSourceRanges: []
3594 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3596 externalTrafficPolicy: Cluster
3600 ## Additional ports to open for Prometheus service
3604 # - name: oauth-proxy
3607 # - name: oauth-metrics
3611 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3612 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3613 publishNotReadyAddresses: false
3614 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3615 ## Accepts 'ClientIP' or 'None'
3617 sessionAffinity: None
3618 ## If you want to modify the ClientIP sessionAffinity timeout
3619 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3621 sessionAffinityConfig:
3623 timeoutSeconds: 10800
3624 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3629 ## Port for Prometheus Service per replica to listen on
3632 ## To be used with a proxy extraContainer port
3634 ## Port to expose on each node
3635 ## Only used if servicePerReplica.type is 'NodePort'
3638 ## Loadbalancer source IP ranges
3639 ## Only used if servicePerReplica.type is "LoadBalancer"
3640 loadBalancerSourceRanges: []
3641 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3643 externalTrafficPolicy: Cluster
3647 ## Service dual stack
3651 ipFamilies: ["IPv6", "IPv4"]
3652 ipFamilyPolicy: "PreferDualStack"
3653 ## Configure pod disruption budgets for Prometheus
3654 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3656 podDisruptionBudget:
3659 # maxUnavailable: ""
3660 unhealthyPodEvictionPolicy: AlwaysAllow
3661 ## Enable vertical pod autoscaler support for Prometheus
3662 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3664 verticalPodAutoscaler:
3666 # Recommender responsible for generating recommendation for the object.
3667 # List should be empty (then the default recommender will generate the recommendation)
3668 # or contain exactly one recommender.
3670 # - name: custom-recommender-performance
3672 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3673 controlledResources: []
3674 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3675 # controlledValues: RequestsAndLimits
3677 # Define the max allowed resources for the pod
3681 # Define the min allowed resources for the pod
3687 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3688 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3689 updateMode: Recreate
3690 # Ingress exposes thanos sidecar outside the cluster
3693 ingressClassName: ""
3697 ## Port to expose on each node
3698 ## Only used if service.type is 'NodePort'
3701 ## Hosts must be provided if Ingress is enabled.
3704 # - thanos-gateway.domain.com
3706 ## Paths to use for ingress rules
3711 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3712 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3713 # pathType: ImplementationSpecific
3715 ## TLS configuration for Thanos Ingress
3716 ## Secret must be manually created in the namespace
3719 # - secretName: thanos-gateway-tls
3721 # - thanos-gateway.domain.com
3723 ## ExtraSecret can be used to store various data in an extra secret
3724 ## (use it for example to store hashed basic auth credentials)
3726 ## if not set, name will be auto generated
3731 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3732 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3736 ingressClassName: ""
3739 ## Redirect ingress to an additional defined port on the service
3743 ## Must be provided if Ingress is enabled.
3746 # - prometheus.domain.com
3748 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3753 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3754 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3755 # pathType: ImplementationSpecific
3757 ## TLS configuration for Prometheus Ingress
3758 ## Secret must be manually created in the namespace
3761 # - secretName: prometheus-general-tls
3763 # - prometheus.example.com
3764 # -- BETA: Configure the gateway routes for the chart here.
3765 # More routes can be added by adding a dictionary key like the 'main' route.
3766 # Be aware that this is an early beta of this feature,
3767 # kube-prometheus-stack does not guarantee this works and is subject to change.
3768 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3769 # [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#gatewaynetworkingk8siov1alpha2)
3772 # -- Enables or disables the route
3774 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3775 apiVersion: gateway.networking.k8s.io/v1
3776 # -- Set the route kind
3777 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3782 # - my-filter.example.com
3786 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3787 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3788 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
3789 httpsRedirect: false
3794 ## Filters define the filters that are applied to requests that match this rule.
3796 ## Timeouts for the generated HTTPRoute backend rule.
3797 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3800 # backendRequest: 60s
3802 ## Session persistence configuration for the route rule.
3803 sessionPersistence: {}
3804 # sessionName: route
3806 # absoluteTimeout: 12h
3808 # lifetimeType: Permanent
3810 ## Additional custom rules that can be added to the route
3812 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3813 ## prometheus.servicePerReplica must be enabled
3817 ingressClassName: ""
3820 ## Final form of the hostname for each per replica ingress is
3821 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3823 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3824 ## appended to the end
3826 ## Domain that will be used for the per replica ingress
3828 ## Paths to use for ingress rules
3833 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3834 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3835 # pathType: ImplementationSpecific
3837 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3838 ## Secret must be manually created in the namespace
3840 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3842 tlsSecretPerReplica:
3844 ## Final form of the secret for each per replica ingress is
3845 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3847 prefix: "prometheus"
3848 ## Configuration for creating a Gateway API route that will map to each Prometheus replica service
3849 ## prometheus.servicePerReplica must be enabled
3853 # -- Enables or disables the routePerReplica
3855 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3856 apiVersion: gateway.networking.k8s.io/v1
3857 # -- Set the route kind
3858 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3862 ## Final form of the hostname for each per replica route is
3863 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
3865 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
3867 ## Domain that will be used for the per replica route
3872 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3873 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3874 ## matches, filters and additionalRules will be ignored if this is set to true.
3875 httpsRedirect: false
3876 ## Filters define the filters that are applied to requests that match this rule.
3882 ## Timeouts for the generated HTTPRoute backend rule.
3883 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3886 # backendRequest: 60s
3888 ## Session persistence configuration for the route rule.
3889 sessionPersistence: {}
3890 # sessionName: route
3892 # absoluteTimeout: 12h
3894 # lifetimeType: Permanent
3896 ## Additional custom rules that can be added to the route
3899 ## If true, create a serviceMonitor for prometheus
3902 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3905 ## Additional labels
3907 additionalLabels: {}
3908 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
3909 ## If not set, the default scrape class (if any) is used.
3912 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3915 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3918 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3921 ## 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.
3923 labelNameLengthLimit: 0
3924 ## 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.
3926 labelValueLengthLimit: 0
3927 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3929 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3930 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3933 ## Metric relabel configs to apply to samples before ingestion.
3935 metricRelabelings: []
3937 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3938 # sourceLabels: [__name__]
3940 # relabel configs to apply to samples before ingestion.
3943 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3946 # targetLabel: nodename
3950 ## Additional Endpoints
3952 additionalEndpoints: []
3953 # - port: oauth-metrics
3955 ## Settings affecting prometheusSpec
3956 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3959 ## Statefulset's persistent volume claim retention policy
3960 ## whenDeleted and whenScaled determine whether
3961 ## statefulset's PVCs are deleted (true) or retained (false)
3962 ## on scaling down and deleting statefulset, respectively.
3963 ## Requires Kubernetes version 1.27.0+.
3964 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3965 persistentVolumeClaimRetentionPolicy: {}
3966 # whenDeleted: Retain
3967 # whenScaled: Retain
3969 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3971 disableCompaction: false
3972 ## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3973 ## If the field isn't set, the operator mounts the service account token by default.
3974 ## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3975 ## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3976 automountServiceAccountToken: true
3978 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3981 ## Allows setting additional arguments for the Prometheus container
3982 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3984 ## Convert all classic histograms to native histograms with custom buckets.
3985 ## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3987 convertClassicHistogramsToNHCB: false
3988 ## Enable scraping of classic histograms that are also exposed as native histograms.
3989 ## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3991 scrapeClassicHistograms: false
3992 ## Enable scraping of native histograms.
3993 ## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3995 scrapeNativeHistograms: false
3996 ## File to which scrape failures are logged.
3997 ## Reloading the configuration will reopen the file.
3998 ## Defaults to empty (disabled)
3999 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
4001 scrapeFailureLogFile: ""
4002 ## Interval between consecutive scrapes.
4004 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
4007 ## Number of seconds to wait for target to respond before erroring
4010 ## List of scrape classes to expose to scraping objects such as
4011 ## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
4014 # - name: istio-mtls
4017 # caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
4018 # certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
4020 ## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
4025 ## Interval between consecutive evaluations.
4027 evaluationInterval: ""
4028 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
4031 ## enableOTLPReceiver enables the OTLP receiver for Prometheus.
4032 enableOTLPReceiver: false
4033 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
4034 ## This is disabled by default.
4035 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
4037 enableAdminAPI: false
4038 ## Sets version of Prometheus overriding the Prometheus version as derived
4039 ## from the image tag. Useful in cases where the tag does not follow semver v2.
4041 ## WebTLSConfig defines the TLS parameters for HTTPS
4042 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
4044 ## Exemplars related settings that are runtime reloadable.
4045 ## It requires to enable the exemplar storage feature to be effective.
4047 ## Maximum number of exemplars stored in memory for all series.
4048 ## If not set, Prometheus uses its default value.
4049 ## A value of zero or less than zero disables the storage.
4052 # EnableFeatures API enables access to Prometheus disabled features.
4053 # ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
4055 # - exemplar-storage
4057 ## https://prometheus.io/docs/guides/opentelemetry
4060 # promoteResourceAttributes: []
4061 # keepIdentifyingResourceAttributes: false
4062 # translationStrategy: NoUTF8EscapingWithSuffixes
4063 # convertHistogramsToNHCB: false
4067 ## Image of Prometheus.
4071 repository: chainguard-private/prometheus
4073 sha: sha256:763bf1197e09ca2e3a7610a40060f17949c4c7af78a3be99d6bb373d11ee415d
4074 pullPolicy: IfNotPresent
4075 ## Tolerations for use with node taints
4076 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
4082 # effect: "NoSchedule"
4084 ## If specified, the pod's topology spread constraints.
4085 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4087 topologySpreadConstraints: []
4089 # topologyKey: topology.kubernetes.io/zone
4090 # whenUnsatisfiable: DoNotSchedule
4097 disableAlerting: false
4098 ## Alertmanagers to which alerts will be sent
4099 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
4101 ## Default configuration will connect to the alertmanager deployed as part of this release
4103 alertingEndpoints: []
4110 # bearerTokenFile: ""
4113 ## External labels to add to any time series or alerts when communicating with external systems
4116 ## enable --web.enable-remote-write-receiver flag on prometheus-server
4118 enableRemoteWriteReceiver: false
4119 ## Name of the external label used to denote replica name
4121 replicaExternalLabelName: ""
4122 ## If true, the Operator won't add the external label used to denote replica name
4124 replicaExternalLabelNameClear: false
4125 ## Name of the external label used to denote Prometheus instance name
4127 prometheusExternalLabelName: ""
4128 ## If true, the Operator won't add the external label used to denote Prometheus instance name
4130 prometheusExternalLabelNameClear: false
4131 ## External URL at which Prometheus will be reachable.
4134 ## Define which Nodes the Pods are scheduled on.
4135 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
4138 kubernetes.io/os: linux
4139 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4140 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
4141 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
4142 ## with the new list of secrets.
4145 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4146 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
4149 ## QuerySpec defines the query command line flags when starting Prometheus.
4150 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
4153 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
4154 ruleNamespaceSelector: {}
4155 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
4156 # ruleNamespaceSelector:
4158 # prometheus: somelabel
4160 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
4161 ## prometheus resource to be created with selectors based on values in the helm deployment,
4162 ## which will also match the PrometheusRule resources created
4164 ruleSelectorNilUsesHelmValues: true
4165 ## PrometheusRules to be selected for target discovery.
4166 ## If {}, select all PrometheusRules
4169 ## Example which select all PrometheusRules resources
4170 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4179 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4182 # role: example-rules
4184 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
4185 ## prometheus resource to be created with selectors based on values in the helm deployment,
4186 ## which will also match the servicemonitors created
4188 serviceMonitorSelectorNilUsesHelmValues: true
4189 ## ServiceMonitors to be selected for target discovery.
4190 ## If {}, select all ServiceMonitors
4192 serviceMonitorSelector: {}
4193 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
4194 # serviceMonitorSelector:
4196 # prometheus: somelabel
4198 ## Namespaces to be selected for ServiceMonitor discovery.
4200 serviceMonitorNamespaceSelector: {}
4201 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
4202 # serviceMonitorNamespaceSelector:
4204 # prometheus: somelabel
4206 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
4207 ## prometheus resource to be created with selectors based on values in the helm deployment,
4208 ## which will also match the podmonitors created
4210 podMonitorSelectorNilUsesHelmValues: true
4211 ## PodMonitors to be selected for target discovery.
4212 ## If {}, select all PodMonitors
4214 podMonitorSelector: {}
4215 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
4216 # podMonitorSelector:
4218 # prometheus: somelabel
4220 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
4221 podMonitorNamespaceSelector: {}
4222 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
4223 # podMonitorNamespaceSelector:
4225 # prometheus: somelabel
4227 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
4228 ## prometheus resource to be created with selectors based on values in the helm deployment,
4229 ## which will also match the probes created
4231 probeSelectorNilUsesHelmValues: true
4232 ## Probes to be selected for target discovery.
4233 ## If {}, select all Probes
4236 ## Example which selects Probes with label "prometheus" set to "somelabel"
4239 # prometheus: somelabel
4241 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
4242 probeNamespaceSelector: {}
4243 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
4244 # probeNamespaceSelector:
4246 # prometheus: somelabel
4248 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
4249 ## prometheus resource to be created with selectors based on values in the helm deployment,
4250 ## which will also match the scrapeConfigs created
4252 ## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
4253 ## (keeping downward compatibility with older versions of CRD)
4255 scrapeConfigSelectorNilUsesHelmValues: true
4256 ## scrapeConfigs to be selected for target discovery.
4257 ## If {}, select all scrapeConfigs
4259 scrapeConfigSelector: {}
4260 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
4261 # scrapeConfigSelector:
4263 # prometheus: somelabel
4265 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
4266 ## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
4267 scrapeConfigNamespaceSelector: {}
4268 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
4269 # scrapeConfigNamespaceSelector:
4271 # prometheus: somelabel
4273 ## How long to retain metrics
4276 ## Maximum size of metrics
4277 ## Unit format should be in the form of "50GiB"
4279 ## Maximum percentage of the data volume's capacity used by the metrics, between 0 and 100.
4280 ## Requires Prometheus >= v3.11.0, ignored by older versions.
4281 retentionPercentage: ""
4282 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
4283 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
4285 outOfOrderTimeWindow: 0s
4286 ## Per-chunk-type encoding overrides, requires Prometheus >= v3.13.0.
4290 ## Ratio of stale series in memory, between 0 and 1, at which stale series are compacted into persistent blocks.
4291 staleSeriesCompactionThreshold: ""
4292 ## Enable compression of the write-ahead log using Snappy.
4294 walCompression: true
4295 ## If true, the Operator won't process any Prometheus configuration changes
4298 ## Number of replicas of each shard to deploy for a Prometheus deployment.
4299 ## Number of replicas multiplied by shards is the total number of Pods created.
4302 ## EXPERIMENTAL: Number of shards to distribute targets onto.
4303 ## Number of replicas multiplied by shards is the total number of Pods created.
4304 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
4305 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
4306 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
4307 ## Sharding is done on the content of the `__address__` target meta-label.
4308 ## Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then
4309 ## defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA
4310 ## ScaledObject own spec.shards through the /scale subresource without Helm reverting it.
4313 ## Log level for Prometheus be configured in
4316 ## Log format for Prometheus be configured in
4319 ## Prefix used to register routes, overriding externalUrl route.
4320 ## Useful for proxies that rewrite URLs.
4323 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4324 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
4329 # k8s-app: prometheus
4331 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4332 ## 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.
4333 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4334 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4335 podAntiAffinity: "soft"
4336 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4337 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4339 podAntiAffinityTopologyKey: kubernetes.io/hostname
4340 ## Assign custom affinity rules to the prometheus instance
4341 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4345 # requiredDuringSchedulingIgnoredDuringExecution:
4346 # nodeSelectorTerms:
4347 # - matchExpressions:
4348 # - key: kubernetes.io/e2e-az-name
4354 ## The remote_read spec configuration for Prometheus.
4355 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
4357 # - url: http://remote1/read
4358 ## additionalRemoteRead is appended to remoteRead
4359 additionalRemoteRead: []
4360 ## The remote_write spec configuration for Prometheus.
4361 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
4363 # - url: http://remote1/push
4364 ## additionalRemoteWrite is appended to remoteWrite
4365 additionalRemoteWrite: []
4366 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
4367 remoteWriteDashboards: false
4368 ## Resource limits & requests
4374 ## Prometheus StorageSpec for persistent data
4375 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4378 ## Using PersistentVolumeClaim
4380 # volumeClaimTemplate:
4382 # storageClassName: gluster
4383 # accessModes: ["ReadWriteOnce"]
4389 ## Using tmpfs volume
4394 # Additional volumes on the output StatefulSet definition.
4396 # Additional VolumeMounts on the output StatefulSet definition.
4398 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
4399 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
4400 ## as specified in the official Prometheus documentation:
4401 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
4402 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
4403 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
4404 ## scrape configs are going to break Prometheus after the upgrade.
4405 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
4407 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
4408 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
4410 additionalScrapeConfigs: []
4411 # - job_name: kube-etcd
4412 # kubernetes_sd_configs:
4416 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
4417 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
4418 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
4420 # - action: labelmap
4421 # regex: __meta_kubernetes_node_label_(.+)
4422 # - source_labels: [__address__]
4424 # target_label: __address__
4425 # regex: ([^:;]+):(\d+)
4426 # replacement: ${1}:2379
4427 # - source_labels: [__meta_kubernetes_node_name]
4430 # - source_labels: [__meta_kubernetes_node_name]
4432 # target_label: node
4435 # metric_relabel_configs:
4436 # - 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)
4439 ## If scrape config contains a repetitive section, you may want to use a template.
4440 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4441 # additionalScrapeConfigs: |
4442 # - job_name: "node-exporter"
4444 # {{range $zone := .Values.gcp_zones}}
4445 # - project: "project1"
4452 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
4453 ## Expected values are the secret name and key
4454 ## Cannot be used with additionalScrapeConfigs
4455 additionalScrapeConfigsSecret: {}
4460 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4461 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4462 additionalPrometheusSecretsAnnotations: {}
4463 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4464 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4465 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4466 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4467 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4468 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4470 additionalAlertManagerConfigs: []
4471 # - consul_sd_configs:
4472 # - server: consul.dev.test:8500
4475 # tag_separator: ','
4477 # - metrics-prometheus-alertmanager
4479 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4480 ## them separately from the helm deployment, you can use this section.
4481 ## Expected values are the secret name and key
4482 ## Cannot be used with additionalAlertManagerConfigs
4483 additionalAlertManagerConfigsSecret: {}
4488 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4489 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4490 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4491 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4492 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4493 ## configs are going to break Prometheus after the upgrade.
4495 additionalAlertRelabelConfigs: []
4497 # regex: prometheus_replica
4501 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4502 ## them separately from the helm deployment, you can use this section.
4503 ## Expected values are the secret name and key
4504 ## Cannot be used with additionalAlertRelabelConfigs
4505 additionalAlertRelabelConfigsSecret: {}
4509 ## SecurityContext holds pod-level security attributes and common container settings.
4510 ## This defaults to non root user with uid 1000 and gid 2000.
4511 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4519 type: RuntimeDefault
4520 ## DNS configuration for Prometheus.
4521 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4523 ## DNS policy for Prometheus.
4524 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4526 ## Priority class assigned to the Pods
4528 priorityClassName: ""
4529 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4530 ## This section is experimental, it may change significantly without deprecation notice in any release.
4531 ## This is experimental and may change significantly without backward compatibility in any release.
4532 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4535 # image: quay.io/thanos/thanos
4536 # secretProviderClass:
4540 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4541 # fileName: "objstore.yaml"
4542 ## ObjectStorageConfig configures object storage in Thanos.
4543 # objectStorageConfig:
4544 # # use existing secret, if configured, objectStorageConfig.secret will not be used
4545 # existingSecret: {}
4548 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4549 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4550 # # https://thanos.io/tip/thanos/storage.md/#s3
4560 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4561 ## if using proxy extraContainer update targetPort with proxy container port
4564 # - name: oauth-proxy
4565 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.6
4567 # - --upstream=http://127.0.0.1:9090
4568 # - --http-address=0.0.0.0:8081
4569 # - --metrics-address=0.0.0.0:8082
4572 # - containerPort: 8081
4575 # - containerPort: 8082
4576 # name: oauth-metrics
4580 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4581 ## (permissions, dir tree) on mounted volumes before starting prometheus
4583 ## PortName to use for Prometheus.
4585 portName: "http-web"
4586 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4587 ## on the file system of the Prometheus container e.g. bearer token files.
4588 arbitraryFSAccessThroughSMs: false
4589 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4590 ## or PodMonitor to true, this overrides honor_labels to false.
4591 overrideHonorLabels: false
4592 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4593 overrideHonorTimestamps: false
4594 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4595 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4596 ## and servicemonitors will be installed in the default service namespace.
4597 ## Defaults to false.
4598 ignoreNamespaceSelectors: false
4599 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4600 ## The label value will always be the namespace of the object that is being created.
4601 ## Disabled by default
4602 enforcedNamespaceLabel: ""
4603 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4604 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4605 ## Deprecated, use `excludedFromEnforcement` instead
4606 prometheusRulesExcludedFromEnforce: []
4607 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4608 ## to be excluded from enforcing a namespace label of origin.
4609 ## Works only if enforcedNamespaceLabel set to true.
4610 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4611 excludedFromEnforcement: []
4612 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4613 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4614 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4615 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4617 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4618 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4620 ## TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.
4622 ## Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.
4624 ## Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.
4625 labelNameLengthLimit: 0
4626 ## Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.
4627 labelValueLengthLimit: 0
4628 ## Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
4629 keepDroppedTargets: 0
4630 ## BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.
4632 ## EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any
4633 ## value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.
4634 enforcedBodySizeLimit: ""
4635 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4636 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4637 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4638 enforcedKeepDroppedTargets: 0
4639 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4640 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4641 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4642 enforcedSampleLimit: false
4643 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4644 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4645 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4646 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4647 enforcedTargetLimit: false
4648 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4649 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4650 ## 2.27.0 and newer.
4651 enforcedLabelLimit: false
4652 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4653 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4654 ## 2.27.0 and newer.
4655 enforcedLabelNameLengthLimit: false
4656 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4657 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4658 ## versions 2.27.0 and newer.
4659 enforcedLabelValueLengthLimit: false
4660 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4661 ## in Prometheus so it may change in any upcoming release.
4662 allowOverlappingBlocks: false
4663 ## Specifies the validation scheme for metric and label names.
4664 ## Supported values are: Legacy, UTF8
4665 nameValidationScheme: ""
4666 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4667 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4669 ## Duration in seconds the pod needs to terminate gracefully.
4670 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4671 terminationGracePeriodSeconds: ~
4672 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4673 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4674 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4675 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4677 ## Use the host's user namespace for Prometheus pods.
4678 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
4680 # HostAlias holds the mapping between IP and hostnames that will be injected
4681 # as an entry in the pod's hosts file.
4688 ## TracingConfig configures tracing in Prometheus.
4689 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4691 ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4692 ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4693 serviceDiscoveryRole: ""
4694 ## EnableServiceLinks indicates whether information about services should be injected into the pod's environment
4695 ## variables. Uses the operator/Kubernetes default when left unset (~).
4696 enableServiceLinks: ~
4697 ## Set the scheduler name to use for the Prometheus pods.
4699 ## Specifies the character escaping scheme applied to metric and label names.
4700 ## Supported values are: AllowUTF8, Underscores, Dots, Values
4701 nameEscapingScheme: ""
4702 ## Defines the strategy used to reload the Prometheus configuration.
4703 ## Supported values are: HTTP, ProcessSignal
4705 ## Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.
4706 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
4708 ## Configuration of the Prometheus rules' engine. Changing these triggers a restart of the pods.
4709 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Rules
4712 # forOutageTolerance: 1h
4713 # forGracePeriod: 10m
4716 ## RuntimeConfig configures the values for the Prometheus process behavior.
4720 ## Defines the sharding strategy applied by the operator.
4721 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy
4722 shardingStrategy: {}
4723 ## Defines the retention policy for the resources of stale shards after a scale-down.
4724 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy
4725 shardRetentionPolicy: {}
4726 ## List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].
4727 remoteWriteReceiverMessageVersions: []
4728 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4729 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4730 podManagementPolicy: ""
4731 ## Update strategy for the StatefulSet.
4732 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4734 # type: RollingUpdate
4738 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4739 additionalConfig: {}
4740 ## Additional configuration which is not covered by the properties above.
4741 ## Useful, if you need advanced templating inside alertmanagerSpec.
4742 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4743 additionalConfigString: ""
4744 ## Defines the maximum time that the `prometheus` container's startup probe
4745 ## will wait before being considered failed. The startup probe will return
4746 ## success after the WAL replay is complete. If set, the value should be
4747 ## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4749 maximumStartupDurationSeconds: 0
4750 ## Set default scrapeProtocols for Prometheus instances
4751 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4753 additionalRulesForClusterRole: []
4754 # - apiGroups: [ "" ]
4757 # verbs: [ "get", "list", "watch" ]
4759 ## Additional ServiceMonitors to deploy as a list or map.
4760 ## Maps allow individual monitors and their fields to be merged across values files.
4761 ## Set a map entry to null to remove it when overriding values.
4762 ## The map key is used as the name unless an explicit name is set.
4763 ## Nested lists such as endpoints are replaced when overridden.
4765 additionalServiceMonitors: null
4770 # app: example-service
4774 ## List example and available fields:
4775 ## Name of the ServiceMonitor to create (required for list entries)
4779 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4782 # additionalLabels: {}
4784 ## Service label for use in assembling a job name of the form <label value>-<port>
4785 ## If no label is specified, the service name is used.
4789 ## labels to transfer from the kubernetes service to the target
4793 ## labels to transfer from the kubernetes pods to the target
4795 # podTargetLabels: []
4797 ## Label selector for services to which this ServiceMonitor applies
4800 ## Example which selects all services to be monitored
4801 ## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4803 # - key: "monitoredby"
4806 # - example-service-1
4807 # - example-service-2
4809 ## label selector for services
4813 ## Namespaces from which services are selected
4815 # namespaceSelector:
4816 ## Match any namespace
4820 ## Explicit list of namespace names to select
4824 ## Endpoints of the selected service to be monitored
4827 ## Name of the endpoint's service port
4828 ## Mutually exclusive with targetPort
4831 ## Name or number of the endpoint's target port
4832 ## Mutually exclusive with port
4835 ## File containing bearer token to be used when scraping targets
4837 # bearerTokenFile: ""
4839 ## Interval at which metrics should be scraped
4843 ## HTTP path to scrape for metrics
4847 ## HTTP scheme to use for scraping
4851 ## TLS configuration to use when scraping the endpoint
4855 ## Path to the CA file
4859 ## Path to client certificate file
4863 ## Skip certificate verification
4865 # insecureSkipVerify: false
4867 ## Path to client key file
4871 ## Server name used to verify host name
4875 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4876 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4878 # metricRelabelings: []
4880 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4881 # sourceLabels: [__name__]
4883 ## RelabelConfigs to apply to samples before scraping
4884 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4887 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4890 # targetLabel: nodename
4894 ## Fallback scrape protocol used by Prometheus for scraping metrics
4895 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4897 # fallbackScrapeProtocol: ""
4899 ## Attaches node metadata to the discovered targets
4900 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4905 ## Additional PodMonitors to deploy as a list or map.
4906 ## Maps allow individual monitors and their fields to be merged across values files.
4907 ## Set a map entry to null to remove it when overriding values.
4908 ## The map key is used as the name unless an explicit name is set.
4909 ## Nested lists such as podMetricsEndpoints are replaced when overridden.
4911 additionalPodMonitors: null
4917 # podMetricsEndpoints:
4919## List example and available fields:
4920## Name of the PodMonitor to create (required for list entries)
4924## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4927# additionalLabels: {}
4929## Pod label for use in assembling a job name of the form <label value>-<port>
4930## If no label is specified, the pod endpoint name is used.
4934## Label selector for pods to which this PodMonitor applies
4937## Example which selects all Pods to be monitored
4938## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4940# - key: "monitoredby"
4946## label selector for pods
4950## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4952# podTargetLabels: {}
4954## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4958## Namespaces from which pods are selected
4961## Match any namespace
4965## Explicit list of namespace names to select
4969## Endpoints of the selected pods to be monitored
4970## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4972# podMetricsEndpoints: []
4974## Fallback scrape protocol used by Prometheus for scraping metrics
4975## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4977# fallbackScrapeProtocol: ""
4979## Attaches node metadata to the discovered targets
4980## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4985## Configuration for thanosRuler
4986## ref: https://thanos.io/tip/components/rule.md/
4989 ## Deploy thanosRuler
4992 ## Annotations for ThanosRuler
4995 ## Service account for ThanosRuler to use.
4996 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
5002 ## Configure pod disruption budgets for ThanosRuler
5003 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
5005 podDisruptionBudget:
5008 # maxUnavailable: ""
5009 unhealthyPodEvictionPolicy: AlwaysAllow
5012 ingressClassName: ""
5015 ## Hosts must be provided if Ingress is enabled.
5018 # - thanosruler.domain.com
5020 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
5025 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
5026 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
5027 # pathType: ImplementationSpecific
5029 ## TLS configuration for ThanosRuler Ingress
5030 ## Secret must be manually created in the namespace
5033 # - secretName: thanosruler-general-tls
5035 # - thanosruler.example.com
5036 # -- BETA: Configure the gateway routes for the chart here.
5037 # More routes can be added by adding a dictionary key like the 'main' route.
5038 # Be aware that this is an early beta of this feature,
5039 # kube-prometheus-stack does not guarantee this works and is subject to change.
5040 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
5041 # [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#gatewaynetworkingk8siov1alpha2)
5044 # -- Enables or disables the route
5046 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
5047 apiVersion: gateway.networking.k8s.io/v1
5048 # -- Set the route kind
5049 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
5054 # - my-filter.example.com
5058 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
5059 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
5060 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
5061 httpsRedirect: false
5066 ## Filters define the filters that are applied to requests that match this rule.
5068 ## Timeouts for the generated HTTPRoute backend rule.
5069 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
5072 # backendRequest: 60s
5074 ## Session persistence configuration for the route rule.
5075 sessionPersistence: {}
5076 # sessionName: route
5078 # absoluteTimeout: 12h
5080 # lifetimeType: Permanent
5082 ## Additional custom rules that can be added to the route
5084 ## Configuration for ThanosRuler service
5093 ipFamilies: ["IPv6", "IPv4"]
5094 ipFamilyPolicy: "PreferDualStack"
5095 ## Port for ThanosRuler Service to listen on
5098 ## To be used with a proxy extraContainer port
5101 ## Port to expose on each node
5102 ## Only used if service.type is 'NodePort'
5105 ## List of IP addresses at which the Prometheus server service is available
5106 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
5109 ## Additional ports to open for ThanosRuler service
5113 loadBalancerSourceRanges: []
5114 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
5116 externalTrafficPolicy: Cluster
5120 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
5123 ## If true, create a serviceMonitor for thanosRuler
5126 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
5129 ## Additional labels
5131 additionalLabels: {}
5132 ## ScrapeClass to use for this ServiceMonitor, as defined in prometheus.prometheusSpec.scrapeClasses.
5133 ## If not set, the default scrape class (if any) is used.
5136 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
5139 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
5142 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
5145 ## 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.
5147 labelNameLengthLimit: 0
5148 ## 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.
5150 labelValueLengthLimit: 0
5151 ## proxyUrl: URL of a proxy that should be used for scraping.
5154 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
5156 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
5157 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
5160 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
5161 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5163 metricRelabelings: []
5165 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
5166 # sourceLabels: [__name__]
5168 ## RelabelConfigs to apply to samples before scraping
5169 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5172 # - sourceLabels: [__meta_kubernetes_pod_node_name]
5175 # targetLabel: nodename
5179 ## Additional Endpoints
5181 additionalEndpoints: []
5182 # - port: oauth-metrics
5184 ## Settings affecting thanosRulerpec
5185 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
5188 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
5189 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
5194 ## Image of ThanosRuler
5198 repository: chainguard-private/thanos
5200 sha: sha256:4ab8fbbde01c6eb09a94d82a25742a3ca8ccf1b264adb9a11b5b76515581a534
5201 ## Namespaces to be selected for PrometheusRules discovery.
5202 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
5203 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
5205 ruleNamespaceSelector: {}
5206 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
5207 ## prometheus resource to be created with selectors based on values in the helm deployment,
5208 ## which will also match the PrometheusRule resources created
5210 ruleSelectorNilUsesHelmValues: true
5211 ## PrometheusRules to be selected for target discovery.
5212 ## If {}, select all PrometheusRules
5215 ## Example which select all PrometheusRules resources
5216 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
5225 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
5228 # role: example-rules
5230 ## Define Log Format
5231 # Use logfmt (default) or json logging
5233 ## Log level for ThanosRuler to be configured with.
5236 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
5237 ## running cluster equal to the expected size.
5239 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
5240 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
5243 ## Interval between consecutive evaluations.
5245 evaluationInterval: ""
5246 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
5247 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
5250 # volumeClaimTemplate:
5252 # storageClassName: gluster
5253 # accessModes: ["ReadWriteOnce"]
5259 ## AlertmanagerConfig define configuration for connecting to alertmanager.
5260 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
5261 alertmanagersConfig:
5262 # use existing secret, if configured, alertmanagersConfig.secret will not be used
5266 # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
5267 # https://thanos.io/tip/components/rule.md/#alertmanager
5273 # username: some_user
5274 # password: some_pass
5276 # - alertmanager.thanos.io
5279 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
5280 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
5283 ## 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
5286 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
5287 ## will be used as value for externalPrefix
5288 externalPrefixNilUsesHelmValues: true
5289 ## 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,
5290 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
5293 ## ObjectStorageConfig configures object storage in Thanos
5294 objectStorageConfig:
5295 # use existing secret, if configured, objectStorageConfig.secret will not be used
5299 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
5300 # https://thanos.io/tip/thanos/storage.md/#s3
5309 ## Labels by name to drop before sending to alertmanager
5310 ## Maps to the --alert.label-drop flag of thanos ruler.
5312 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
5313 ## Maps to the --query flag of thanos ruler.
5315 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
5316 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
5318 # use existing secret, if configured, queryConfig.secret will not be used
5322 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
5323 # https://thanos.io/tip/components/rule.md/#query-api
5327 # username: some_user
5328 # password: some_pass
5333 ## Labels configure the external label pairs to ThanosRuler. A default replica
5334 ## label `thanos_ruler_replica` will be always added as a label with the value
5335 ## of the pod's name and it will be dropped in the alerts.
5337 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
5340 ## Allows setting additional arguments for the ThanosRuler container
5341 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
5344 # - name: remote-write.config
5347 # - "name": "receiver-0"
5348 # "remote_timeout": "30s"
5349 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
5351 ## Define which Nodes the Pods are scheduled on.
5352 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
5355 kubernetes.io/os: linux
5356 ## Define resources requests and limits for single Pods.
5357 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5363 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
5364 ## 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.
5365 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
5366 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
5368 podAntiAffinity: "soft"
5369 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
5370 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
5372 podAntiAffinityTopologyKey: kubernetes.io/hostname
5373 ## Assign custom affinity rules to the thanosRuler instance
5374 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
5378 # requiredDuringSchedulingIgnoredDuringExecution:
5379 # nodeSelectorTerms:
5380 # - matchExpressions:
5381 # - key: kubernetes.io/e2e-az-name
5387 ## If specified, the pod's tolerations.
5388 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
5394 # effect: "NoSchedule"
5396 ## If specified, the pod's topology spread constraints.
5397 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
5399 topologySpreadConstraints: []
5401 # topologyKey: topology.kubernetes.io/zone
5402 # whenUnsatisfiable: DoNotSchedule
5407 ## SecurityContext holds pod-level security attributes and common container settings.
5408 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
5409 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5417 type: RuntimeDefault
5418 ## Use the host's user namespace for ThanosRuler pods.
5419 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
5421 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
5422 ## Note this is only for the ThanosRuler UI, not the gossip communication.
5425 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
5428 ## Additional environment variables to set on the ThanosRuler container.
5429 ## This is rendered through the Prometheus Operator strategic merge patch.
5435 # Additional volumes on the output StatefulSet definition.
5437 # Additional VolumeMounts on the output StatefulSet definition.
5439 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
5440 ## (permissions, dir tree) on mounted volumes before starting prometheus
5442 ## Priority class assigned to the Pods
5444 priorityClassName: ""
5445 ## PortName to use for ThanosRuler.
5448 ## Scheduler to use for Pod scheduling, defaulting to the Kubernetes default scheduler.
5451 ## Duration in seconds the pod needs to terminate gracefully.
5452 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
5453 terminationGracePeriodSeconds: ~
5454 ## WebTLSConfig defines the TLS parameters for HTTPS
5455 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
5457 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
5458 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
5459 podManagementPolicy: ""
5460 ## Update strategy for the StatefulSet.
5461 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
5463 # type: RollingUpdate
5467 ## Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.
5469 ## Image pull policy for the Thanos Ruler container.
5471 ## EnableFeatures API enables access to Thanos Ruler disabled features.
5473 ## EnableServiceLinks indicates whether information about services should be injected into the
5474 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
5475 enableServiceLinks: ~
5476 ## Minimum number of seconds for which a newly created pod should be ready without any of its
5477 ## containers crashing/restarting for it to be considered available.
5479 ## Defines the DNS configuration for the pods.
5484 # - ns1.svc.cluster-domain.example
5489 ## Defines the DNS policy for the pods.
5491 ## Pods' hostAliases configuration
5492 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
5498 ## Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.
5499 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec
5501 ## Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.
5503 # use existing secret, if configured, tracingConfig.secret will not be used
5507 # render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set
5509 ## Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.
5510 tracingConfigFile: ""
5511 ## Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.
5512 alertRelabelConfigs:
5513 # use existing secret, if configured, alertRelabelConfigs.secret will not be used
5517 # render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set
5519 ## Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.
5520 alertRelabelConfigFile: ""
5521 ## Configures the gRPC server TLS for Thanos Ruler.
5522 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig
5523 grpcServerTlsConfig: {}
5524 ## Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.
5525 objectStorageConfigFile: ""
5526 ## Number of concurrent rule evaluations.
5527 ruleConcurrentEval: ~
5528 ## Maximum time to tolerate outage for restoring "for" state of alert.
5529 ruleOutageTolerance: ""
5530 ## Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for"
5531 ## time greater than the grace period.
5533 ## The default rule group's query offset duration to shift the evaluation time of rules backwards.
5534 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
5536 ## Minimum amount of time to wait before resending an alert to Alertmanager.
5538 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.
5539 enforcedNamespaceLabel: ""
5540 ## List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).
5541 ## Can be a list of objects, or a string that is passed through tpl.
5542 excludedFromEnforcement: []
5543 ## Additional configuration which is not covered by the properties above. (passed through tpl)
5544 additionalConfig: {}
5545 ## Additional configuration which is not covered by the properties above.
5546 ## Useful, if you need advanced templating
5547 additionalConfigString: ""
5548 ## ExtraSecret can be used to store various data in an extra secret
5549 ## (use it for example to store hashed basic auth credentials)
5551 ## if not set, name will be auto generated
5556 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
5557 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
5558## 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.
5560cleanPrometheusOperatorObjectNames: false
5561## Extra manifests to deploy. Can be of type dict or list.
5562## If dict, keys are ignored and only values are used.
5563## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
5569# name: prometheus-extra
5571# extra-data: "value"
5573# can also be defined as a string, useful for templating field names
5581# {{- range $key, $value := .Values.commonLabels }}
5582# {{ $key }}: {{ $value }}
5585# plaintext: Zm9vYmFy
5586# templated: '{{ print "foobar" | upper | b64enc }}'