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: scratch-images/test-tmp/busybox
43 tag: glibc-1.38.0-r2@sha256:f58f36e1a829585dd613459ccdf22301a787d25dd07b6ac45047cf1129933cf1
45 pullPolicy: IfNotPresent
48 repository: scratch-images/test-tmp/kubectl
50 sha: sha256:a8bd37313032f36c16bff404fd4ae98247982f3f4e9c62e3c0f619b858513f61
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 ## Assign custom affinity rules to the upgrade-crd job
68 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
72 # requiredDuringSchedulingIgnoredDuringExecution:
75 # - key: kubernetes.io/e2e-az-name
81 ## If specified, the pod's tolerations.
82 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
88 # effect: "NoSchedule"
90 ## If specified, the pod's topology spread constraints.
91 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
93 topologySpreadConstraints: []
95 # topologyKey: topology.kubernetes.io/zone
96 # whenUnsatisfiable: DoNotSchedule
101 # ## Labels to add to the upgrade-crd job
104 ## Annotations to add to the upgrade-crd job
107 ## Labels to add to the upgrade-crd pod
110 ## Annotations to add to the upgrade-crd pod
113 ## Service account for upgrade crd job to use.
114 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
121 automountServiceAccountToken: true
122 ## Automounting API credentials for upgrade crd job pod.
124 automountServiceAccountToken: true
125 ## Container-specific security context configuration
126 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
128 containerSecurityContext:
129 allowPrivilegeEscalation: false
130 readOnlyRootFilesystem: true
134 ## SecurityContext holds pod-level security attributes and common container settings.
135 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
136 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
145## Custom rules to override "for" and "severity" in defaultRules
148# AlertmanagerFailedReload:
150# AlertmanagerMembersInconsistent:
154## Create default rules for monitoring the cluster
161 configReloaders: true
163 k8sContainerCpuUsageSecondsTotal: true
164 k8sContainerMemoryCache: true
165 k8sContainerMemoryRss: true
166 k8sContainerMemorySwap: true
167 k8sContainerResource: true
168 k8sContainerMemoryWorkingSetBytes: true
170 kubeApiserverAvailability: true
171 kubeApiserverBurnrate: true
172 kubeApiserverHistogram: true
173 kubeApiserverSlos: true
174 kubeControllerManager: true
177 kubePrometheusGeneral: true
178 kubePrometheusNodeRecording: true
180 kubernetesResources: true
181 kubernetesStorage: true
182 kubernetesSystem: true
183 kubeSchedulerAlerting: true
184 kubeSchedulerRecording: true
185 kubeStateMetrics: true
188 nodeExporterAlerting: true
189 nodeExporterRecording: true
191 prometheusOperator: true
193 # Defines the operator for namespace selection in rules
194 # Use "=~" to include namespaces matching the pattern (default)
195 # Use "!~" to exclude namespaces matching the pattern
196 appNamespacesOperator: "=~"
197 ## Reduce app namespace alert scope
198 appNamespacesTarget: ".*"
199 ## Set keep_firing_for for all alerts
201 ## Labels for default rules
203 ## Annotations for default rules
205 ## Additional labels for PrometheusRule alerts
206 additionalRuleLabels: {}
207 ## Additional annotations for specific PrometheusRule alerts by alert name
208 additionalRuleAnnotations: {}
209 ## Additional labels for specific PrometheusRule alert groups
210 additionalRuleGroupLabels:
215 k8sContainerCpuUsageSecondsTotal: {}
216 k8sContainerMemoryCache: {}
217 k8sContainerMemoryRss: {}
218 k8sContainerMemorySwap: {}
219 k8sContainerResource: {}
221 kubeApiserverAvailability: {}
222 kubeApiserverBurnrate: {}
223 kubeApiserverHistogram: {}
224 kubeApiserverSlos: {}
225 kubeControllerManager: {}
228 kubePrometheusGeneral: {}
229 kubePrometheusNodeRecording: {}
231 kubernetesResources: {}
232 kubernetesStorage: {}
234 kubeSchedulerAlerting: {}
235 kubeSchedulerRecording: {}
239 nodeExporterAlerting: {}
240 nodeExporterRecording: {}
242 prometheusOperator: {}
243 ## Additional annotations for specific PrometheusRule alert groups
244 additionalRuleGroupAnnotations:
249 k8sContainerCpuUsageSecondsTotal: {}
250 k8sContainerMemoryCache: {}
251 k8sContainerMemoryRss: {}
252 k8sContainerMemorySwap: {}
253 k8sContainerResource: {}
255 kubeApiserverAvailability: {}
256 kubeApiserverBurnrate: {}
257 kubeApiserverHistogram: {}
258 kubeApiserverSlos: {}
259 kubeControllerManager: {}
262 kubePrometheusGeneral: {}
263 kubePrometheusNodeRecording: {}
265 kubernetesResources: {}
266 kubernetesStorage: {}
268 kubeSchedulerAlerting: {}
269 kubeSchedulerRecording: {}
273 nodeExporterAlerting: {}
274 nodeExporterRecording: {}
276 prometheusOperator: {}
277 additionalAggregationLabels: []
278 ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
279 runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
280 ## Thresholds for kubelet certificate expiration alerts (in seconds)
281 kubeletServerCertificateExpiration:
282 warning: 604800 # 7 days
283 critical: 86400 # 1 day
284 kubeletClientCertificateExpiration:
285 warning: 604800 # 7 days
286 critical: 86400 # 1 day
288 fsSelector: 'fstype!=""'
289 # fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
290 ## Disabled PrometheusRule alerts
293 # NodeRAIDDegraded: true
294## Deprecated way to provide custom recording or alerting rules to be deployed into the cluster.
296# additionalPrometheusRules: []
297# - name: my-rule-file
302# expr: 100 * my_record
304## Provide custom recording or alerting rules to be deployed into the cluster.
306additionalPrometheusRulesMap: {}
312# expr: 100 * my_record
318 ## Create ClusterRoles that extend the existing view, edit and admin ClusterRoles to interact with prometheus-operator CRDs
319 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
320 createAggregateClusterRoles: false
321 ## Global image registry to use if it needs to be overridden for some specific use cases (e.g. local registries, custom images, ...)
324 ## Reference to one or more secrets to be used when pulling images
325 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
328 # - name: "image-pull-secret"
330 # - "image-pull-secret"
332 ## Deploys the windows-exporter and Windows-specific dashboards and rules (job name must be 'windows-exporter')
334## Configuration for prometheus-windows-exporter
335## ref: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-windows-exporter
337prometheus-windows-exporter:
338 ## Enable ServiceMonitor and set Kubernetes label to use as a job label
345 ## Set job label to 'windows-exporter' as required by the default Prometheus rules and Grafana dashboards
348 jobLabel: windows-exporter
349 ## Enable memory and container metrics as required by the default Prometheus rules and Grafana dashboards
353 enabled: '[defaults],memory,container'
354## Configuration for alertmanager
355## ref: https://prometheus.io/docs/alerting/alertmanager/
358 ## Deploy alertmanager
361 # Optional: Override the namespace where Alertmanager will be deployed.
362 namespaceOverride: ""
363 ## Annotations for Alertmanager
366 ## Additional labels for Alertmanager
369 ## API that Prometheus will use to communicate with alertmanager. Possible values are v1, v2
372 ## @param alertmanager.enableFeatures Enable access to Alertmanager disabled features.
375 ## Create dashboard configmap even if alertmanager deployment has been disabled
377 forceDeployDashboards: false
378 ## Network Policy configuration
381 # -- Enable network policy for Alertmanager
383 # -- Define policy types. If egress is enabled, both Ingress and Egress will be used
384 # Valid values are ["Ingress"] or ["Ingress", "Egress"]
388 # -- Gateway (formerly ingress controller) configuration
391 # -- Gateway namespace
394 # -- Gateway pod labels
397 # app.kubernetes.io/name: ingress-nginx
398 # -- Additional custom ingress rules
400 additionalIngress: []
402 # - namespaceSelector:
404 # name: another-namespace
411 # app.kubernetes.io/name: loki
416 # -- Configure egress rules
419 # -- Enable egress rules. When enabled, policyTypes will include Egress
422 # -- Custom egress rules
426 # - namespaceSelector: {}
433 # -- Enable rules for alertmanager cluster traffic
435 enableClusterRules: true
436 # -- Configure monitoring component rules
439 # -- Enable ingress from Prometheus
442 # -- Enable ingress for config reloader metrics
445 ## Service account for Alertmanager to use.
446 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
452 automountServiceAccountToken: true
453 ## Configure pod disruption budgets for Alertmanager
454 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
460 unhealthyPodEvictionPolicy: AlwaysAllow
461 ## Enable vertical pod autoscaler support for Alertmanager
462 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
464 verticalPodAutoscaler:
466 # Recommender responsible for generating recommendation for the object.
467 # List should be empty (then the default recommender will generate the recommendation)
468 # or contain exactly one recommender.
470 # - name: custom-recommender-performance
472 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
473 controlledResources: []
474 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
475 # controlledValues: RequestsAndLimits
477 # Define the max allowed resources for the pod
481 # Define the min allowed resources for the pod
487 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
488 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
490 ## Alertmanager configuration directives
491 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
492 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
499 - 'severity = critical'
501 - 'severity =~ warning|info'
506 - 'severity = warning'
513 - 'alertname = InfoInhibitor'
519 - 'alertname = InfoInhibitor'
521 group_by: ['namespace']
529 - alertname = "Watchdog"
533 - '/etc/alertmanager/config/*.tmpl'
534 ## Alertmanager configuration directives (as string type, preferred over the config hash map)
535 ## stringConfig will be used only if tplConfig is true
536 ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file
537 ## https://prometheus.io/webtools/alerting/routing-tree-editor/
540 ## Pass the Alertmanager configuration directives through Helm's templating
541 ## engine. If the Alertmanager configuration contains Alertmanager templates,
542 ## they'll need to be properly escaped so that they are not interpreted by
544 ## ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function
545 ## https://prometheus.io/docs/alerting/configuration/#tmpl_string
546 ## https://prometheus.io/docs/alerting/notifications/
547 ## https://prometheus.io/docs/alerting/notification_examples/
549 ## Alertmanager template files to format alerts
550 ## By default, templateFiles are placed in /etc/alertmanager/config/ and if
551 ## they have a .tmpl file suffix will be loaded. See config.templates above
552 ## to change, add other suffixes. If adding other suffixes, be sure to update
553 ## config.templates above to include those suffixes.
554 ## ref: https://prometheus.io/docs/alerting/notifications/
555 ## https://prometheus.io/docs/alerting/notification_examples/
559 ## An example template:
560 # template_1.tmpl: |-
561 # {{ define "cluster" }}{{ .ExternalURL | reReplaceAll ".*alertmanager\\.(.*)" "$1" }}{{ end }}
563 # {{ define "slack.myorg.text" }}
565 # {{ range .Alerts }}
566 # *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
567 # *Cluster:* {{ template "cluster" $root }}
568 # *Description:* {{ .Annotations.description }}
569 # *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:>
570 # *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
572 # {{ range .Labels.SortedPairs }} - *{{ .Name }}:* `{{ .Value }}`
582 ## Override ingress to a different defined port on the service
584 ## Override ingress to a different service then the default, this is useful if you need to
585 ## point to a specific instance of the alertmanager (eg kube-prometheus-stack-alertmanager-0)
586 # serviceName: kube-prometheus-stack-alertmanager-0
588 ## Hosts must be provided if Ingress is enabled.
591 # - alertmanager.domain.com
593 ## Paths to use for ingress rules - one path should match the alertmanagerSpec.routePrefix
598 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
599 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
600 # pathType: ImplementationSpecific
602 ## TLS configuration for Alertmanager Ingress
603 ## Secret must be manually created in the namespace
606 # - secretName: alertmanager-general-tls
608 # - alertmanager.example.com
609 # -- BETA: Configure the gateway routes for the chart here.
610 # More routes can be added by adding a dictionary key like the 'main' route.
611 # Be aware that this is an early beta of this feature,
612 # kube-prometheus-stack does not guarantee this works and is subject to change.
613 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
614 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
617 # -- Enables or disables the route
619 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
620 apiVersion: gateway.networking.k8s.io/v1
621 # -- Set the route kind
622 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
627 # - my-filter.example.com
631 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
632 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
633 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
639 ## Filters define the filters that are applied to requests that match this rule.
641 ## Timeouts for the generated HTTPRoute backend rule.
642 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
645 # backendRequest: 60s
647 ## Session persistence configuration for the route rule.
648 sessionPersistence: {}
651 # absoluteTimeout: 12h
653 # lifetimeType: Permanent
655 ## Additional custom rules that can be added to the route
657 ## Configuration for Alertmanager secret
661 ## Configuration for creating an Ingress that will map to each Alertmanager replica service
662 ## alertmanager.servicePerReplica must be enabled
669 ## Final form of the hostname for each per replica ingress is
670 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
672 ## Prefix for the per replica ingress that will have `-$replicaNumber`
673 ## appended to the end
675 ## Domain that will be used for the per replica ingress
677 ## Paths to use for ingress rules
682 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
683 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
684 # pathType: ImplementationSpecific
686 ## Secret name containing the TLS certificate for alertmanager per replica ingress
687 ## Secret must be manually created in the namespace
689 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
693 ## Final form of the secret for each per replica ingress is
694 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
696 prefix: "alertmanager"
697 ## Configuration for creating a Gateway API route that will map to each Alertmanager replica service
698 ## alertmanager.servicePerReplica must be enabled
702 # -- Enables or disables the routePerReplica
704 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
705 apiVersion: gateway.networking.k8s.io/v1
706 # -- Set the route kind
707 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
711 ## Final form of the hostname for each per replica route is
712 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
714 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
716 ## Domain that will be used for the per replica route
721 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
722 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
723 ## matches, filters and additionalRules will be ignored if this is set to true.
725 ## Filters define the filters that are applied to requests that match this rule.
731 ## Timeouts for the generated HTTPRoute backend rule.
732 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
735 # backendRequest: 60s
737 ## Session persistence configuration for the route rule.
738 sessionPersistence: {}
741 # absoluteTimeout: 12h
743 # lifetimeType: Permanent
745 ## Additional custom rules that can be added to the route
747 ## Configuration for Alertmanager service
756 ipFamilies: ["IPv6", "IPv4"]
757 ipFamilyPolicy: "PreferDualStack"
758 ## Port for Alertmanager Service to listen on
761 ## Port for Alertmanager cluster communication
764 ## To be used with a proxy extraContainer port
767 ## Port to expose on each node
768 ## Only used if service.type is 'NodePort'
771 ## List of IP addresses at which the Prometheus server service is available
772 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
775 ## Additional ports to open for Alertmanager service
778 # - name: oauth-proxy
781 # - name: oauth-metrics
787 loadBalancerSourceRanges: []
788 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
790 externalTrafficPolicy: Cluster
791 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
792 ## Accepts 'ClientIP' or 'None'
794 sessionAffinity: None
795 ## If you want to modify the ClientIP sessionAffinity timeout
796 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
798 sessionAffinityConfig:
800 timeoutSeconds: 10800
804 ## Configuration for creating a separate Service for each statefulset Alertmanager replica
809 ## Port for Alertmanager Service per replica to listen on
812 ## To be used with a proxy extraContainer port
814 ## Port to expose on each node
815 ## Only used if servicePerReplica.type is 'NodePort'
818 ## Loadbalancer source IP ranges
819 ## Only used if servicePerReplica.type is "LoadBalancer"
820 loadBalancerSourceRanges: []
821 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
823 externalTrafficPolicy: Cluster
827 ## Configuration for creating a ServiceMonitor for AlertManager
830 ## If true, a ServiceMonitor will be created for the AlertManager service.
833 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
839 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
842 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
845 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
848 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
850 labelNameLengthLimit: 0
851 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
853 labelValueLengthLimit: 0
854 ## proxyUrl: URL of a proxy that should be used for scraping.
857 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
859 ## enableHttp2: Whether to enable HTTP2.
860 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
862 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
863 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
866 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
867 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
869 metricRelabelings: []
871 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
872 # sourceLabels: [__name__]
874 ## RelabelConfigs to apply to samples before scraping
875 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
878 # - sourceLabels: [__meta_kubernetes_pod_node_name]
881 # targetLabel: nodename
885 ## Additional Endpoints
887 additionalEndpoints: []
888 # - port: oauth-metrics
890 ## Settings affecting alertmanagerSpec
891 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerspec
894 ## Statefulset's persistent volume claim retention policy
895 ## whenDeleted and whenScaled determine whether
896 ## statefulset's PVCs are deleted (true) or retained (false)
897 ## on scaling down and deleting statefulset, respectively.
898 ## Requires Kubernetes version 1.27.0+.
899 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
900 persistentVolumeClaimRetentionPolicy: {}
901 # whenDeleted: Retain
904 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
905 ## Metadata Labels and Annotations gets propagated to the Alertmanager pods.
910 ## Image of Alertmanager
914 repository: scratch-images/test-tmp/prometheus-alertmanager
916 sha: sha256:6587dae3e37831ab6792a64ccfba63e51c6e6c70d9dcabee8b29903fe4bd3054
917 pullPolicy: IfNotPresent
918 ## If true then the user will be responsible to provide a secret with alertmanager configuration
919 ## So when true the config part will be ignored (including templateFiles) and the one in the secret will be used
921 useExistingSecret: false
922 ## Secrets is a list of Secrets in the same namespace as the Alertmanager object, which shall be mounted into the
923 ## Alertmanager Pods. The Secrets are mounted into /etc/alertmanager/secrets/.
926 ## If false then the user will opt out of automounting API credentials.
928 automountServiceAccountToken: true
929 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.
930 ## The ConfigMaps are mounted into /etc/alertmanager/configmaps/.
933 ## ConfigSecret is the name of a Kubernetes Secret in the same namespace as the Alertmanager object, which contains configuration for
934 ## this Alertmanager instance. Defaults to 'alertmanager-' The secret is mounted into /etc/alertmanager/config.
938 ## WebTLSConfig defines the TLS parameters for HTTPS
939 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerwebspec
941 ## AlertmanagerConfigs to be selected to merge and configure Alertmanager with.
943 alertmanagerConfigSelector: {}
944 ## Example which selects all alertmanagerConfig resources
945 ## with label "alertconfig" with values any of "example-config" or "example-config-2"
946 # alertmanagerConfigSelector:
954 ## Example which selects all alertmanagerConfig resources with label "role" set to "example-config"
955 # alertmanagerConfigSelector:
957 # role: example-config
959 ## Namespaces to be selected for AlertmanagerConfig discovery. If nil, only check own namespace.
961 alertmanagerConfigNamespaceSelector: {}
962 ## Example which selects all namespaces
963 ## with label "alertmanagerconfig" with values any of "example-namespace" or "example-namespace-2"
964 # alertmanagerConfigNamespaceSelector:
966 # - key: alertmanagerconfig
969 # - example-namespace
970 # - example-namespace-2
972 ## Example which selects all namespaces with label "alertmanagerconfig" set to "enabled"
973 # alertmanagerConfigNamespaceSelector:
975 # alertmanagerconfig: enabled
977 ## AlermanagerConfig to be used as top level configuration
979 alertmanagerConfiguration: {}
980 ## Example with select a global alertmanagerconfig
981 # alertmanagerConfiguration:
982 # name: global-alertmanager-Configuration
984 ## Defines the strategy used by AlertmanagerConfig objects to match alerts. eg:
986 alertmanagerConfigMatcherStrategy: {}
987 ## Example with use OnNamespace strategy
988 # alertmanagerConfigMatcherStrategy:
991 ## Additional command line arguments to pass to Alertmanager (in addition to those generated by the chart)
994 # Use logfmt (default) or json logging
996 ## Log level for Alertmanager to be configured with.
999 ## Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the
1000 ## running cluster equal to the expected size.
1002 ## Time duration Alertmanager shall retain data for. Default is '120h', and must match the regular expression
1003 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
1006 ## Storage is the definition of how storage will be used by the Alertmanager instances.
1007 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
1010 # volumeClaimTemplate:
1012 # storageClassName: gluster
1013 # accessModes: ["ReadWriteOnce"]
1019 ## The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false
1022 ## The route prefix Alertmanager registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true,
1023 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
1026 ## scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.
1028 ## tlsConfig: TLS configuration to use when connect to the endpoint. For example if using istio mTLS.
1029 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
1031 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
1034 ## Define which Nodes the Pods are scheduled on.
1035 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
1038 ## Define resources requests and limits for single Pods.
1039 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
1045 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
1046 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
1047 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
1048 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
1050 podAntiAffinity: "soft"
1051 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
1052 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
1054 podAntiAffinityTopologyKey: kubernetes.io/hostname
1055 ## Assign custom affinity rules to the alertmanager instance
1056 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1060 # requiredDuringSchedulingIgnoredDuringExecution:
1061 # nodeSelectorTerms:
1062 # - matchExpressions:
1063 # - key: kubernetes.io/e2e-az-name
1069 ## If specified, the pod's tolerations.
1070 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
1076 # effect: "NoSchedule"
1078 ## If specified, the pod's topology spread constraints.
1079 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1081 topologySpreadConstraints: []
1083 # topologyKey: topology.kubernetes.io/zone
1084 # whenUnsatisfiable: DoNotSchedule
1089 ## SecurityContext holds pod-level security attributes and common container settings.
1090 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
1091 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1099 type: RuntimeDefault
1100 ## Use the host's user namespace for Alertmanager pods.
1101 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
1103 ## DNS configuration for Alertmanager.
1104 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
1106 ## DNS policy for Alertmanager.
1107 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
1109 ## Enable hostNetwork for Alertmanager.
1111 ## ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.
1112 ## Note this is only for the Alertmanager UI, not the gossip communication.
1115 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an Alertmanager pod.
1119 # - name: oauth-proxy
1120 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.4
1122 # - --upstream=http://127.0.0.1:9093
1123 # - --http-address=0.0.0.0:8081
1124 # - --metrics-address=0.0.0.0:8082
1127 # - containerPort: 8081
1130 # - containerPort: 8082
1131 # name: oauth-metrics
1135 # Additional volumes on the output StatefulSet definition.
1137 # Additional VolumeMounts on the output StatefulSet definition.
1139 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
1140 ## (permissions, dir tree) on mounted volumes before starting prometheus
1142 ## Priority class assigned to the Pods
1144 priorityClassName: ""
1145 ## AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster.
1148 ## PortName to use for Alert Manager.
1150 portName: "http-web"
1151 ## ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918
1153 clusterAdvertiseAddress: false
1154 ## clusterGossipInterval determines interval between gossip attempts.
1155 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1156 clusterGossipInterval: ""
1157 ## clusterPeerTimeout determines timeout for cluster peering.
1158 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1159 clusterPeerTimeout: ""
1160 ## clusterPushpullInterval determines interval between pushpull attempts.
1161 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1162 clusterPushpullInterval: ""
1163 ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1165 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1166 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1167 forceEnableClusterMode: false
1168 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1169 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1171 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1172 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1173 podManagementPolicy: ""
1174 ## Update strategy for the StatefulSet.
1175 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1177 # type: RollingUpdate
1181 ## Duration in seconds the pod needs to terminate gracefully.
1182 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1183 terminationGracePeriodSeconds: ~
1184 ## EnableServiceLinks indicates whether information about services should be injected into the
1185 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
1186 enableServiceLinks: ~
1187 ## Set the scheduler name to use for the Alertmanager pods.
1189 ## Pods' hostAliases configuration
1190 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1196 ## Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0.
1197 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec
1200 # maxPerSilenceBytes: 1MB
1202 ## ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.
1203 ## Requires Alertmanager >= v0.24.0.
1204 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig
1206 ## Additional configuration which is not covered by the properties above. (passed through tpl)
1207 additionalConfig: {}
1208 ## Additional configuration which is not covered by the properties above.
1209 ## Useful, if you need advanced templating inside alertmanagerSpec.
1210 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1211 additionalConfigString: ""
1212 ## ExtraSecret can be used to store various data in an extra secret
1213 ## (use it for example to store hashed basic auth credentials)
1215 ## if not set, name will be auto generated
1220 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1221 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1222## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1226 namespaceOverride: ""
1227 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1229 forceDeployDatasources: false
1230 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1232 forceDeployDashboards: false
1233 ## Deploy default dashboards
1235 defaultDashboardsEnabled: true
1236 ## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1237 ## These settings control how dashboards are integrated with the Grafana Operator
1238 ## Note: End user still need to create is own kind: GrafanaDataSource for Prometheus
1240 ## apiVersion: grafana.integreatly.org/v1beta1
1241 ## kind: GrafanaDatasource
1246 ## allowCrossNamespaceImport: true
1247 ## instanceSelector:
1254 ## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1257 ## "tlsSkipVerify": true
1258 ## "timeInterval": "5s"
1261 ## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1262 ## Set to true to allow dashboards to be loaded from ConfigMap references
1263 dashboardsConfigMapRefEnabled: false
1264 ## Annotations for GrafanaDashboard Cr
1267 ## Labels that should be matched kind: Grafana instance
1268 ## Example: { app: grafana, category: dashboard }
1271 ## How frequently the operator should resync resources (in duration format)
1272 ## Controls how often dashboards are reconciled by the operator
1275 ## Which folder contains all dashboards in Grafana
1276 ## This folder will be created on the Root level
1277 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1280 ## Which UID of the target folder contains all dashboards in Grafana
1281 ## This allows you to use subfolder hierarchy
1282 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1285 ## Which GrafanaFolder reference contains all dashboards in Grafana
1286 ## This allows you to use subfolder hierarchy.
1287 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1290 ## Timezone for the default dashboards
1291 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1293 defaultDashboardsTimezone: utc
1294 ## Editable flag for the default dashboards
1296 defaultDashboardsEditable: true
1297 ## Default interval for Grafana dashboards
1299 defaultDashboardsInterval: 1m
1300 # Administrator credentials when not using an existing secret (see below)
1302 # adminPassword: strongpassword
1304 # Use an existing secret for the admin user.
1306 ## Name of the secret. Can be templated.
1309 passwordKey: admin-password
1311 ## If true, Grafana PSPs will be created
1315 ## If true, Grafana Ingress will be created
1318 ## IngressClassName for Grafana Ingress.
1319 ## Should be provided if Ingress is enable.
1321 # ingressClassName: nginx
1323 ## Annotations for Grafana Ingress
1326 # kubernetes.io/ingress.class: nginx
1327 # kubernetes.io/tls-acme: "true"
1329 ## Labels to be added to the Ingress
1333 ## Must be provided if Ingress is enable.
1336 # - grafana.domain.com
1338 ## Path for grafana ingress
1340 ## TLS configuration for grafana Ingress
1341 ## Secret must be manually created in the namespace
1344 # - secretName: grafana-general-tls
1346 # - grafana.example.com
1347 # # To make Grafana persistent (Using Statefulset)
1352 # storageClassName: "storageClassName"
1357 # - kubernetes.io/pvc-protection
1364 label: grafana_dashboard
1366 # Allow discovery in all namespaces for dashboards
1367 searchNamespace: ALL
1368 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1369 enableNewTablePanelSyntax: false
1370 ## Annotations for Grafana dashboard configmaps
1373 ## Annotation the sidecar reads to decide in which Grafana folder a dashboard
1374 ## is stored. Requires `provider.foldersFromFilesStructure` to be enabled.
1375 ## ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards
1377 # folderAnnotation: grafana_folder
1384 allowUiUpdates: false
1385 ## Let Grafana replicate the dashboard folder structure created by the sidecar,
1386 ## so dashboards are grouped into folders instead of the default one.
1387 ## Required when using `folderAnnotation` above.
1389 # foldersFromFilesStructure: true
1392 defaultDatasourceEnabled: true
1393 isDefaultDatasource: true
1396 ## Extra jsonData properties to add to the datasource
1398 # prometheusType: Prometheus
1400 ## URL of prometheus datasource
1402 # url: http://prometheus-stack-prometheus:9090/
1404 ## Prometheus request timeout in seconds
1407 ## Query parameters to add, as a URL-encoded string,
1408 ## to query Prometheus
1409 # customQueryParameters: ""
1411 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1412 # defaultDatasourceScrapeInterval: 15s
1414 ## Annotations for Grafana datasource configmaps
1417 ## Set method for HTTP to send query to datasource
1419 ## Create datasource for each Pod of Prometheus StatefulSet;
1420 ## this uses by default the headless service `prometheus-operated` which is
1421 ## created by Prometheus Operator. In case you deployed your own Service for your
1422 ## Prometheus instance, you can specify it with the field `prometheusServiceName`
1423 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1424 createPrometheusReplicasDatasources: false
1425 prometheusServiceName: prometheus-operated
1426 label: grafana_datasource
1428 ## Field with internal link pointing to existing data source in Grafana.
1429 ## Can be provisioned via additionalDataSources
1430 exemplarTraceIdDestinations: {}
1431 # datasourceUid: Jaeger
1432 # traceIdLabelName: trace_id
1433 # urlDisplayLabel: View traces
1438 handleGrafanaManagedAlerts: false
1439 implementation: prometheus
1440 extraConfigmapMounts: []
1441 # - name: certs-configmap
1442 # mountPath: /etc/grafana/ssl/
1443 # configMap: certs-configmap
1446 deleteDatasources: []
1447 # - name: example-datasource
1450 ## Configure additional grafana datasources (passed through tpl)
1451 ## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1452 additionalDataSources: []
1453 # - name: prometheus-sample
1457 # basicAuthPassword: pass
1458 # basicAuthUser: daco
1461 # tlsSkipVerify: true
1464 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1467 ## Configure additional grafana datasources as a templated string (passed through tpl)
1468 ## Useful when you need Helm flow control or templating inside the datasource definition
1469 additionalDataSourcesString: ""
1470 # Flag to mark provisioned data sources for deletion if they are no longer configured.
1471 # It takes no effect if data sources are already listed in the deleteDatasources section.
1472 # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1474 ## Passed to grafana subchart and used by servicemonitor below
1481 # If true, a ServiceMonitor CRD is created for a prometheus operator
1482 # https://github.com/prometheus-operator/prometheus-operator
1485 # Path to use for scraping metrics. Might be different if server.root_url is set
1489 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1491 # labels for the ServiceMonitor
1494 # Extra scrape settings.
1498 # scrapeTimeout: 30s
1500 ## RelabelConfigs to apply to samples before scraping
1501 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1504 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1507 # targetLabel: nodename
1510## Flag to disable all the kubernetes component scrapers
1512kubernetesServiceMonitors:
1514## Component scraping the kube api server
1519 serverName: kubernetes
1520 insecureSkipVerify: false
1523 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1526 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1529 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1532 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1535 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1537 labelNameLengthLimit: 0
1538 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1540 labelValueLengthLimit: 0
1541 ## proxyUrl: URL of a proxy that should be used for scraping.
1547 component: apiserver
1548 provider: kubernetes
1549 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1550 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1553 # Drop excessively noisy apiserver buckets.
1555 regex: (etcd_request|apiserver_request_slo|apiserver_request_sli|apiserver_request)_duration_seconds_bucket;(0\.15|0\.2|0\.3|0\.35|0\.4|0\.45|0\.6|0\.7|0\.8|0\.9|1\.25|1\.5|1\.75|2|3|3\.5|4|4\.5|6|7|8|9|15|20|40|45|50)(\.0)?
1560 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1561 # sourceLabels: [__name__]
1563 ## RelabelConfigs to apply to samples before scraping
1564 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1568 # - __meta_kubernetes_namespace
1569 # - __meta_kubernetes_service_name
1570 # - __meta_kubernetes_endpoint_port_name
1572 # regex: default;kubernetes;https
1573 # - targetLabel: __address__
1574 # replacement: kubernetes.default.svc:443
1576 ## Additional labels
1578 additionalLabels: {}
1581 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1582 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1584 ## Override the job label used for the apiserver.
1585 ## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1586 ## to align the recording rules and alerts with their actual job label.
1588## Component scraping the kubelet and kubelet-hosted cAdvisor
1592 namespace: kube-system
1593 # Overrides the job selector in Grafana dashboards and Prometheus rules
1594 # For k3s clusters, change to k3s-server
1598 ## Enable scraping /metrics from kubelet's service
1600 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1604 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1607 ## If true, Prometheus use (respect) labels provided by exporter.
1610 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1612 honorTimestamps: true
1613 ## If true, defines whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false.
1614 ## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1615 ## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1616 trackTimestampsStaleness: true
1617 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1620 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1623 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1626 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1628 labelNameLengthLimit: 0
1629 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1631 labelValueLengthLimit: 0
1632 ## proxyUrl: URL of a proxy that should be used for scraping.
1635 ## Enable scraping the kubelet over https. For requirements to enable this see
1636 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1639 ## Skip TLS certificate validation when scraping.
1640 ## This is enabled by default because kubelet serving certificate deployed by kubeadm is by default self-signed
1641 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1643 insecureSkipVerify: true
1644 ## Enable scraping /metrics/probes from kubelet's service
1647 ## Enable scraping /metrics/resource from kubelet's service
1648 ## This is disabled by default because container metrics are already exposed by cAdvisor
1651 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1652 resourcePath: "/metrics/resource/v1alpha1"
1653 ## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1654 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1655 ## if kubelet.serviceMonitor.interval is not empty.
1656 resourceInterval: 10s
1657 ## Enable scraping /metrics/cadvisor from kubelet's service
1660 ## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1661 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1662 ## if kubelet.serviceMonitor.interval is not empty.
1663 cAdvisorInterval: 10s
1664 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1665 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1667 cAdvisorMetricRelabelings:
1668 # Drop less useful container CPU metrics.
1669 - sourceLabels: [__name__]
1671 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1672 # Drop less useful container / always zero filesystem metrics.
1673 - sourceLabels: [__name__]
1675 regex: 'container_fs_(io_current|io_time_seconds_total|io_time_weighted_seconds_total|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)'
1676 # Drop less useful / always zero container memory metrics.
1677 - sourceLabels: [__name__]
1679 regex: 'container_memory_(mapped_file|swap)'
1680 # Drop less useful container process metrics.
1681 - sourceLabels: [__name__]
1683 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1684 # Drop container_memory_failures_total{scope="hierarchy"} metrics,
1685 # we only need the container scope.
1686 - sourceLabels: [__name__, scope]
1688 regex: 'container_memory_failures_total;hierarchy'
1689 # Drop container_network_... metrics that match various interfaces that
1690 # correspond to CNI and similar interfaces. This avoids capturing network
1691 # metrics for host network containers.
1692 - sourceLabels: [__name__, interface]
1694 regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1695 # Drop container spec metrics that overlap with kube-state-metrics.
1696 - sourceLabels: [__name__]
1698 regex: 'container_spec.*'
1699 # Drop cgroup metrics with no pod.
1700 - sourceLabels: [id, pod]
1703 # - sourceLabels: [__name__, image]
1705 # regex: container_([a-z_]+);
1708 # - sourceLabels: [__name__]
1710 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1714 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1715 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1717 probesMetricRelabelings: []
1718 # - sourceLabels: [__name__, image]
1720 # regex: container_([a-z_]+);
1723 # - sourceLabels: [__name__]
1725 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1729 ## RelabelConfigs to apply to samples before scraping
1730 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1732 ## metrics_path is required to match upstream rules and charts
1733 cAdvisorRelabelings:
1735 sourceLabels: [__metrics_path__]
1736 targetLabel: metrics_path
1737 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1740 # targetLabel: nodename
1744 ## RelabelConfigs to apply to samples before scraping
1745 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1749 sourceLabels: [__metrics_path__]
1750 targetLabel: metrics_path
1751 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1754 # targetLabel: nodename
1758 ## RelabelConfigs to apply to samples before scraping
1759 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1761 resourceRelabelings:
1763 sourceLabels: [__metrics_path__]
1764 targetLabel: metrics_path
1765 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1768 # targetLabel: nodename
1772 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1773 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1776 # Reduce bucket cardinality of kubelet storage operations.
1778 sourceLabels: [__name__, le]
1779 regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1780 # - sourceLabels: [__name__, image]
1782 # regex: container_([a-z_]+);
1785 # - sourceLabels: [__name__]
1787 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1791 ## RelabelConfigs to apply to samples before scraping
1792 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1794 ## metrics_path is required to match upstream rules and charts
1797 sourceLabels: [__metrics_path__]
1798 targetLabel: metrics_path
1799 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1802 # targetLabel: nodename
1806 ## Additional labels
1808 additionalLabels: {}
1811 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1812 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1814## Component scraping the kube controller manager
1816kubeControllerManager:
1818 # Overrides the job selector in Grafana dashboards and Prometheus rules
1819 # For k3s clusters, change to k3s-server
1821 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1828 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1832 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1833 ## of default port in Kubernetes 1.22.
1839 ipFamilies: ["IPv6", "IPv4"]
1840 ipFamilyPolicy: "PreferDualStack"
1842 # component: kube-controller-manager
1845 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1848 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1851 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1854 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1857 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1859 labelNameLengthLimit: 0
1860 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1862 labelValueLengthLimit: 0
1863 ## proxyUrl: URL of a proxy that should be used for scraping.
1866 ## port: Name of the port the metrics will be scraped from
1872 # component: kube-controller-manager
1874 ## Enable scraping kube-controller-manager over https.
1875 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1876 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1879 # Skip TLS certificate validation when scraping
1880 insecureSkipVerify: null
1881 # Name of the server to use when validating TLS certificate
1883 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1884 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1886 metricRelabelings: []
1888 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1889 # sourceLabels: [__name__]
1891 ## RelabelConfigs to apply to samples before scraping
1892 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1895 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1898 # targetLabel: nodename
1902 ## Additional labels
1904 additionalLabels: {}
1907 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1908 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1910## Component scraping coreDns. Use either this or kubeDns
1920 ipFamilies: ["IPv6", "IPv4"]
1921 ipFamilyPolicy: "PreferDualStack"
1926 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1929 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1932 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1935 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1938 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1940 labelNameLengthLimit: 0
1941 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1943 labelValueLengthLimit: 0
1944 ## proxyUrl: URL of a proxy that should be used for scraping.
1947 ## port: Name of the port the metrics will be scraped from
1955 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1956 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1958 metricRelabelings: []
1960 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1961 # sourceLabels: [__name__]
1963 ## RelabelConfigs to apply to samples before scraping
1964 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1967 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1970 # targetLabel: nodename
1974 ## Additional labels
1976 additionalLabels: {}
1979 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1980 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1982 ## File containing bearer token to be used when scraping targets
1983 ## Empty value do not send any bearer token.
1985 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
1986## Component scraping kubeDns. Use either this or coreDns
1999 ipFamilies: ["IPv6", "IPv4"]
2000 ipFamilyPolicy: "PreferDualStack"
2004 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2007 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2010 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2013 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2016 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2018 labelNameLengthLimit: 0
2019 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2021 labelValueLengthLimit: 0
2022 ## proxyUrl: URL of a proxy that should be used for scraping.
2030 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2031 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2033 metricRelabelings: []
2035 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2036 # sourceLabels: [__name__]
2038 ## RelabelConfigs to apply to samples before scraping
2039 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2042 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2045 # targetLabel: nodename
2049 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2050 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2052 dnsmasqMetricRelabelings: []
2054 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2055 # sourceLabels: [__name__]
2057 ## RelabelConfigs to apply to samples before scraping
2058 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2060 dnsmasqRelabelings: []
2061 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2064 # targetLabel: nodename
2068 ## Additional labels
2070 additionalLabels: {}
2073 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2074 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2076 ## File containing bearer token to be used when scraping targets
2077 ## Empty value do not send any bearer token.
2079 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
2080## Component scraping etcd
2084 ## If your etcd is not deployed as a pod, specify IPs it can be found on
2091 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2099 ipFamilies: ["IPv6", "IPv4"]
2100 ipFamilyPolicy: "PreferDualStack"
2103 ## Configure secure access to the etcd cluster by loading a secret into prometheus and
2104 ## specifying security configuration below. For example, with a secret named etcd-client-cert
2108 ## insecureSkipVerify: false
2109 ## serverName: localhost
2110 ## caFile: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
2111 ## certFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client
2112 ## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
2116 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2119 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2122 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2125 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2128 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2130 labelNameLengthLimit: 0
2131 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2133 labelValueLengthLimit: 0
2134 ## proxyUrl: URL of a proxy that should be used for scraping.
2138 insecureSkipVerify: false
2143 ## port: Name of the port the metrics will be scraped from
2151 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2152 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2154 metricRelabelings: []
2156 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2157 # sourceLabels: [__name__]
2159 ## RelabelConfigs to apply to samples before scraping
2160 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2163 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2166 # targetLabel: nodename
2170 ## Additional labels
2172 additionalLabels: {}
2175 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2176 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2178 ## File containing bearer token to be used when scraping targets
2179 ## Empty value do not send any bearer token.
2181 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
2182## Component scraping kube scheduler
2186 # Overrides the job selector in Grafana dashboards and Prometheus rules
2187 # For k3s clusters, change to k3s-server
2189 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2196 ## If using kubeScheduler.endpoints only the port and targetPort are used
2200 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2201 ## of default port in Kubernetes 1.23.
2207 ipFamilies: ["IPv6", "IPv4"]
2208 ipFamilyPolicy: "PreferDualStack"
2210 # component: kube-scheduler
2213 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2216 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2219 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2222 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2225 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2227 labelNameLengthLimit: 0
2228 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2230 labelValueLengthLimit: 0
2231 ## proxyUrl: URL of a proxy that should be used for scraping.
2234 ## Enable scraping kube-scheduler over https.
2235 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2236 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
2239 ## port: Name of the port the metrics will be scraped from
2245 # component: kube-scheduler
2247 ## Skip TLS certificate validation when scraping
2248 insecureSkipVerify: null
2249 ## Name of the server to use when validating TLS certificate
2251 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2252 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2254 metricRelabelings: []
2256 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2257 # sourceLabels: [__name__]
2259 ## RelabelConfigs to apply to samples before scraping
2260 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2263 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2266 # targetLabel: nodename
2270 ## Additional labels
2272 additionalLabels: {}
2275 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2276 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2279 ## Enable scraping /metrics/resource from kube-scheduler
2280 ## https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics
2282 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2285 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2286 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2288 metricRelabelings: []
2290 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2291 # sourceLabels: [__name__]
2293 ## RelabelConfigs to apply to samples before scraping
2294 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2297 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2300 # targetLabel: nodename
2303## Component scraping kube proxy
2307 # Overrides the job selector in Grafana dashboards and Prometheus rules
2308 # For k3s clusters, change to k3s-server
2310 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2323 ipFamilies: ["IPv6", "IPv4"]
2324 ipFamilyPolicy: "PreferDualStack"
2326 # k8s-app: kube-proxy
2329 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2332 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2335 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2338 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2341 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2343 labelNameLengthLimit: 0
2344 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2346 labelValueLengthLimit: 0
2347 ## proxyUrl: URL of a proxy that should be used for scraping.
2350 ## port: Name of the port the metrics will be scraped from
2356 # k8s-app: kube-proxy
2358 ## Enable scraping kube-proxy over https.
2359 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2362 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2363 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2365 metricRelabelings: []
2367 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2368 # sourceLabels: [__name__]
2370 ## RelabelConfigs to apply to samples before scraping
2371 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2375 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2376 # sourceLabels: [__name__]
2378 ## Additional labels
2380 additionalLabels: {}
2383 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2384 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2386 ## File containing bearer token to be used when scraping targets
2387 ## Empty value do not send any bearer token.
2389 bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
2390## Component scraping kube state metrics
2394## Configuration for kube-state-metrics subchart
2397 ## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2399 ## Enable scraping via kubernetes-service-endpoints
2400 ## Disabled by default as we service monitor is enabled below
2402 prometheusScrape: false
2405 ## Enable scraping via service monitor
2406 ## Disable to prevent duplication if you enable prometheusScrape above
2408 ## kube-state-metrics endpoint
2410 ## Keep labels from scraped data, overriding server-side labels
2412 ## selfMonitor endpoint
2414 ## Keep labels from scraped data, overriding server-side labels
2416## Deploy node exporter as a daemonset to all nodes
2427 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2429 forceDeployDashboards: false
2430## Configuration for prometheus-node-exporter subchart
2432prometheus-node-exporter:
2433 namespaceOverride: ""
2435 ## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2437 jobLabel: node-exporter
2440 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2441 - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|erofs)$
2443 portName: http-metrics
2446 ipFamilies: ["IPv6", "IPv4"]
2447 ipFamilyPolicy: "PreferDualStack"
2449 jobLabel: node-exporter
2456 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2459 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2462 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2465 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2468 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2470 labelNameLengthLimit: 0
2471 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2473 labelValueLengthLimit: 0
2474 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2477 ## proxyUrl: URL of a proxy that should be used for scraping.
2480 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2481 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2483 metricRelabelings: []
2484 # - sourceLabels: [__name__]
2486 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2490 ## RelabelConfigs to apply to samples before scraping
2491 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2494 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2497 # targetLabel: nodename
2500 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2509 ## If true, create PSPs for node-exporter
2512## Manages Prometheus and Alertmanager components
2516 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2517 fullnameOverride: ""
2518 ## Number of old replicasets to retain ##
2519 ## The default value is 10, 0 will garbage-collect old replicasets ##
2520 revisionHistoryLimit: 10
2521 ## Strategy of the deployment
2524 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2528 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2529 tlsMinVersion: VersionTLS13
2530 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2532 ## Liveness probe for the prometheusOperator deployment
2537 initialDelaySeconds: 0
2541 ## Readiness probe for the prometheusOperator deployment
2546 initialDelaySeconds: 0
2550 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2551 ## rules from making their way into prometheus and potentially preventing the container from starting
2553 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2554 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2556 ## The default timeoutSeconds is 10 and the maximum value is 30.
2559 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2560 ## If unspecified, system trust roots on the apiserver are used.
2562 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2563 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2564 ## certs ahead of time if you wish.
2567 # argocd.argoproj.io/hook: PreSync
2568 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2570 namespaceSelector: {}
2573 mutatingWebhookConfiguration:
2575 # argocd.argoproj.io/hook: PreSync
2576 validatingWebhookConfiguration:
2578 # argocd.argoproj.io/hook: PreSync
2581 ## Number of replicas
2584 ## Strategy of the deployment
2587 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2588 podDisruptionBudget:
2591 # maxUnavailable: ""
2592 unhealthyPodEvictionPolicy: AlwaysAllow
2593 ## Number of old replicasets to retain ##
2594 ## The default value is 10, 0 will garbage-collect old replicasets ##
2595 revisionHistoryLimit: 10
2596 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2600 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2601 tlsMinVersion: VersionTLS13
2602 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2604 ## Service account for Prometheus Operator Webhook to use.
2605 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2609 automountServiceAccountToken: false
2612 ## Configuration for Prometheus operator Webhook service
2620 ipFamilies: ["IPv6", "IPv4"]
2621 ipFamilyPolicy: "PreferDualStack"
2622 ## Port to expose on each node
2623 ## Only used if service.type is 'NodePort'
2627 ## Additional ports to open for Prometheus operator Webhook service
2628 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2632 ## Only use if service.type is "LoadBalancer"
2635 loadBalancerSourceRanges: []
2636 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2638 externalTrafficPolicy: Cluster
2640 ## NodePort, ClusterIP, LoadBalancer
2643 ## List of IP addresses at which the Prometheus server service is available
2644 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2647 # ## Labels to add to the operator webhook deployment
2650 ## Annotations to add to the operator webhook deployment
2653 ## Labels to add to the operator webhook pod
2656 ## Annotations to add to the operator webhook pod
2659 ## Assign a PriorityClassName to pods if set
2660 # priorityClassName: ""
2662 ## Define Log Format
2663 # Use logfmt (default) or json logging
2666 ## Decrease log verbosity to errors only
2669 ## Prometheus-operator webhook image
2673 repository: scratch-images/test-tmp/prometheus-admission-webhook
2674 # if not set appVersion field from Chart.yaml is used
2676 sha: sha256:09a4c71dc91ad1c50445b87fb882ec93178beb7a527a92a607da20c6d31c2c9a
2677 pullPolicy: IfNotPresent
2678 ## Define Log Format
2679 # Use logfmt (default) or json logging
2682 ## Decrease log verbosity to errors only
2685 ## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2686 ## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2687 ## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2688 ## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2696 initialDelaySeconds: 30
2705 initialDelaySeconds: 5
2709 ## Resource limits & requests
2719 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2720 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2723 ## Define which Nodes the Pods are scheduled on.
2724 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2727 ## Tolerations for use with node taints
2728 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2734 # effect: "NoSchedule"
2736 ## Assign custom affinity rules to the prometheus operator
2737 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2741 # requiredDuringSchedulingIgnoredDuringExecution:
2742 # nodeSelectorTerms:
2743 # - matchExpressions:
2744 # - key: kubernetes.io/e2e-az-name
2753 # - ns1.svc.cluster-domain.example
2754 # - my.dns.search.suffix
2765 type: RuntimeDefault
2766 ## Container-specific security context configuration
2767 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2769 containerSecurityContext:
2770 allowPrivilegeEscalation: false
2771 readOnlyRootFilesystem: true
2775 ## If false then the user will opt out of automounting API credentials.
2777 automountServiceAccountToken: true
2782 repository: chainguard-private/kube-webhook-certgen
2784 sha: sha256:2c50fd229c13f376afeaefd88ef073ea72567947ce335a848e4b0cc968d55251
2785 pullPolicy: IfNotPresent
2787 ## Provide a priority class name to the webhook patching job
2789 priorityClassName: ""
2790 ttlSecondsAfterFinished: 60
2792 # argocd.argoproj.io/hook: PreSync
2793 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2798 ## SecurityContext holds pod-level security attributes and common container settings.
2799 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2800 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2807 type: RuntimeDefault
2808 ## Service account for Prometheus Operator Webhook Job Patch to use.
2809 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2814 automountServiceAccountToken: true
2815 # Security context for create job container
2818 allowPrivilegeEscalation: false
2819 readOnlyRootFilesystem: true
2823 # Security context for patch job container
2826 allowPrivilegeEscalation: false
2827 readOnlyRootFilesystem: true
2831 # Use certmanager to generate webhook certs
2834 # self-signed root certificate
2836 duration: "" # default to be 5y
2837 # -- Set the revisionHistoryLimit on the Certificate. See
2838 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2840 revisionHistoryLimit:
2842 duration: "" # default to be 1y
2843 # -- Set the revisionHistoryLimit on the Certificate. See
2844 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2846 revisionHistoryLimit:
2849 # kind: "ClusterIssuer"
2850 # -- Set the private key algorithm and size for the Certificate. See
2851 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
2852 # Defaults to RSA 2048
2857 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2858 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
2861 # releaseNamespace: true
2865 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
2868 ## Filter namespaces to look for prometheus-operator custom resources
2870 alertmanagerInstanceNamespaces: []
2871 alertmanagerConfigNamespaces: []
2872 prometheusInstanceNamespaces: []
2873 thanosRulerInstanceNamespaces: []
2874 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
2875 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
2876 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
2878 # clusterDomain: "cluster.local"
2880 ## Enable creation of NetworkPolicy resources.
2883 ## Flavor of the network policy to use.
2885 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
2886 # * cilium for cilium.io/v2/CiliumNetworkPolicy
2891 ## match labels used in selector
2893 ## Service account for Prometheus Operator to use.
2894 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2899 automountServiceAccountToken: true
2901 # -- terminationGracePeriodSeconds for container lifecycle hook
2902 terminationGracePeriodSeconds: 30
2903 # -- Specify lifecycle hooks for the controller
2905 ## Configuration for Prometheus operator service
2913 ipFamilies: ["IPv6", "IPv4"]
2914 ipFamilyPolicy: "PreferDualStack"
2915 ## Port to expose on each node
2916 ## Only used if service.type is 'NodePort'
2920 ## Additional ports to open for Prometheus operator service
2921 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2925 ## Only use if service.type is "LoadBalancer"
2928 loadBalancerSourceRanges: []
2929 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2931 externalTrafficPolicy: Cluster
2933 ## NodePort, ClusterIP, LoadBalancer
2936 ## List of IP addresses at which the Prometheus server service is available
2937 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2940 # ## Labels to add to the operator deployment
2943 ## Annotations to add to the operator deployment
2946 ## Labels to add to the operator pod
2949 ## Annotations to add to the operator pod
2952 ## Assign a podDisruptionBudget to the operator
2954 podDisruptionBudget:
2957 # maxUnavailable: ""
2958 unhealthyPodEvictionPolicy: AlwaysAllow
2959 ## Assign a PriorityClassName to pods if set
2960 # priorityClassName: ""
2962 ## Define Log Format
2963 # Use logfmt (default) or json logging
2966 ## Decrease log verbosity to errors only
2969 ## If true, the operator will create and maintain a service for scraping kubelets
2970 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
2973 namespace: kube-system
2975 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
2977 ## Create Endpoints objects for kubelet targets.
2978 kubeletEndpointsEnabled: true
2979 ## Create EndpointSlice objects for kubelet targets.
2980 kubeletEndpointSliceEnabled: false
2981 ## Extra arguments to pass to prometheusOperator
2982 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
2984 # - --labels="cluster=talos-cluster"
2986 ## Create a servicemonitor for the operator
2989 ## If true, create a serviceMonitor for prometheus operator
2992 ## Labels for ServiceMonitor
2993 additionalLabels: {}
2994 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2997 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3000 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3003 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3006 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3008 labelNameLengthLimit: 0
3009 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3011 labelValueLengthLimit: 0
3012 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
3014 ## Metric relabel configs to apply to samples before ingestion.
3016 metricRelabelings: []
3018 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3019 # sourceLabels: [__name__]
3021 # relabel configs to apply to samples before ingestion.
3024 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3027 # targetLabel: nodename
3030 ## Resource limits & requests
3040 ## Operator Environment
3045 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3046 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3049 ## Define which Nodes the Pods are scheduled on.
3050 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3053 ## Tolerations for use with node taints
3054 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3060 # effect: "NoSchedule"
3062 ## Assign custom affinity rules to the prometheus operator
3063 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3067 # requiredDuringSchedulingIgnoredDuringExecution:
3068 # nodeSelectorTerms:
3069 # - matchExpressions:
3070 # - key: kubernetes.io/e2e-az-name
3079 # - ns1.svc.cluster-domain.example
3080 # - my.dns.search.suffix
3091 type: RuntimeDefault
3092 ## Setup hostUsers for prometheus-operator
3093 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
3095 ## Container-specific security context configuration
3096 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3098 containerSecurityContext:
3099 allowPrivilegeEscalation: false
3100 readOnlyRootFilesystem: true
3104 # Enable vertical pod autoscaler support for prometheus-operator
3105 verticalPodAutoscaler:
3107 # Recommender responsible for generating recommendation for the object.
3108 # List should be empty (then the default recommender will generate the recommendation)
3109 # or contain exactly one recommender.
3111 # - name: custom-recommender-performance
3113 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3114 controlledResources: []
3115 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3116 # controlledValues: RequestsAndLimits
3118 # Define the max allowed resources for the pod
3122 # Define the min allowed resources for the pod
3128 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3130 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3131 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3132 updateMode: Recreate
3133 ## Prometheus-operator image
3137 repository: scratch-images/test-tmp/prometheus-operator
3138 # if not set appVersion field from Chart.yaml is used
3140 sha: sha256:0c09145c88db4b5d8ad64c3097d0c032e231124d78cb2fe09e4aa9428e084ee2
3141 pullPolicy: IfNotPresent
3142 ## Prometheus image to use for prometheuses managed by the operator
3144 # prometheusDefaultBaseImage: prometheus/prometheus
3146 ## Prometheus image registry to use for prometheuses managed by the operator
3148 # prometheusDefaultBaseImageRegistry: quay.io
3150 ## Alertmanager image to use for alertmanagers managed by the operator
3152 # alertmanagerDefaultBaseImage: prometheus/alertmanager
3154 ## Alertmanager image registry to use for alertmanagers managed by the operator
3156 # alertmanagerDefaultBaseImageRegistry: quay.io
3158 ## Prometheus-config-reloader
3160 prometheusConfigReloader:
3163 repository: scratch-images/test-tmp/prometheus-config-reloader
3164 # if not set appVersion field from Chart.yaml is used
3166 sha: sha256:26457760e47e87f9b91c0c38471acc09c59cd7b3e0317af72902d6bd4305ea47
3167 # add prometheus config reloader liveness and readiness probe. Default: false
3169 # resource config for prometheusConfigReloader
3177 ## Thanos side-car image when configured
3181 repository: scratch-images/test-tmp/thanos
3183 sha: sha256:ccf22c1d63b2c70c1a13aae22057050bde78a12ed3d2ee6bfaf39c991721af0e
3184 ## Set a Label Selector to filter watched prometheus and prometheusAgent
3186 prometheusInstanceSelector: ""
3187 ## Set a Label Selector to filter watched alertmanager
3189 alertmanagerInstanceSelector: ""
3190 ## Set a Label Selector to filter watched thanosRuler
3191 thanosRulerInstanceSelector: ""
3192 ## Set a Field Selector to filter watched secrets
3194 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=kubernetes.io/service-account-token,type!=helm.sh/release.v1"
3195 ## Feature gates to enable/disable operator features, rendered as --feature-gates=<key>=<value>.
3196 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md
3199 ## PrometheusAgentDaemonSet: true
3200 ## StatusForConfigurationResources: true
3202 ## If false then the user will opt out of automounting API credentials.
3204 automountServiceAccountToken: true
3205 ## Additional volumes
3208 ## Additional volume mounts
3210 extraVolumeMounts: []
3211## Deploy a Prometheus instance
3215 ## Toggle prometheus into agent mode
3216 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3217 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3220 ## Annotations for Prometheus
3223 ## Additional labels for Prometheus
3225 additionalLabels: {}
3226 ## Configure network policy for the prometheus
3229 ## Flavor of the network policy to use.
3231 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3232 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3247 ## Service account for Prometheuses to use.
3248 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3254 automountServiceAccountToken: true
3255 # Service for thanos service discovery on sidecar
3256 # Enable this can make Thanos Query can use
3257 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3258 # Thanos sidecar on prometheus nodes
3259 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3264 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3266 externalTrafficPolicy: Cluster
3270 ## Service dual stack
3274 ipFamilies: ["IPv6", "IPv4"]
3275 ipFamilyPolicy: "PreferDualStack"
3280 ## HTTP port config (for metrics)
3283 targetHttpPort: "http"
3284 ## ClusterIP to assign
3285 # Default is to make this a headless service ("None")
3287 ## Port to expose on each node, if service type is NodePort
3291 # ServiceMonitor to scrape Sidecar metrics
3292 # Needs thanosService to be enabled as well
3293 thanosServiceMonitor:
3296 ## Additional labels
3298 additionalLabels: {}
3299 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3301 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3302 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3305 ## Metric relabel configs to apply to samples before ingestion.
3306 metricRelabelings: []
3307 ## relabel configs to apply to samples before ingestion.
3309 # Service for external access to sidecar
3310 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
3311 thanosServiceExternal:
3316 loadBalancerSourceRanges: []
3321 ## HTTP port config (for metrics)
3324 targetHttpPort: "http"
3325 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3327 externalTrafficPolicy: Cluster
3331 ## Port to expose on each node
3335 ## Configuration for Prometheus service
3344 ipFamilies: ["IPv6", "IPv4"]
3345 ipFamilyPolicy: "PreferDualStack"
3346 ## Port for Prometheus Service to listen on
3349 ## To be used with a proxy extraContainer port
3351 ## Port for Prometheus Reloader to listen on
3353 reloaderWebPort: 8080
3354 ## Port to expose for Prometheus Reloader
3355 ## Only used if service.type is 'NodePort'
3357 reloaderWebNodePort: null
3358 ## List of IP addresses at which the Prometheus server service is available
3359 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3362 ## Port to expose on each node
3363 ## Only used if service.type is 'NodePort'
3367 ## Only use if service.type is "LoadBalancer"
3369 loadBalancerSourceRanges: []
3370 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3372 externalTrafficPolicy: Cluster
3376 ## Additional ports to open for Prometheus service
3380 # - name: oauth-proxy
3383 # - name: oauth-metrics
3387 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3388 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3389 publishNotReadyAddresses: false
3390 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3391 ## Accepts 'ClientIP' or 'None'
3393 sessionAffinity: None
3394 ## If you want to modify the ClientIP sessionAffinity timeout
3395 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3397 sessionAffinityConfig:
3399 timeoutSeconds: 10800
3400 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3405 ## Port for Prometheus Service per replica to listen on
3408 ## To be used with a proxy extraContainer port
3410 ## Port to expose on each node
3411 ## Only used if servicePerReplica.type is 'NodePort'
3414 ## Loadbalancer source IP ranges
3415 ## Only used if servicePerReplica.type is "LoadBalancer"
3416 loadBalancerSourceRanges: []
3417 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3419 externalTrafficPolicy: Cluster
3423 ## Service dual stack
3427 ipFamilies: ["IPv6", "IPv4"]
3428 ipFamilyPolicy: "PreferDualStack"
3429 ## Configure pod disruption budgets for Prometheus
3430 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3432 podDisruptionBudget:
3435 # maxUnavailable: ""
3436 unhealthyPodEvictionPolicy: AlwaysAllow
3437 ## Enable vertical pod autoscaler support for Prometheus
3438 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3440 verticalPodAutoscaler:
3442 # Recommender responsible for generating recommendation for the object.
3443 # List should be empty (then the default recommender will generate the recommendation)
3444 # or contain exactly one recommender.
3446 # - name: custom-recommender-performance
3448 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3449 controlledResources: []
3450 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3451 # controlledValues: RequestsAndLimits
3453 # Define the max allowed resources for the pod
3457 # Define the min allowed resources for the pod
3463 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3464 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3465 updateMode: Recreate
3466 # Ingress exposes thanos sidecar outside the cluster
3469 ingressClassName: ""
3473 ## Port to expose on each node
3474 ## Only used if service.type is 'NodePort'
3477 ## Hosts must be provided if Ingress is enabled.
3480 # - thanos-gateway.domain.com
3482 ## Paths to use for ingress rules
3487 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3488 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3489 # pathType: ImplementationSpecific
3491 ## TLS configuration for Thanos Ingress
3492 ## Secret must be manually created in the namespace
3495 # - secretName: thanos-gateway-tls
3497 # - thanos-gateway.domain.com
3499 ## ExtraSecret can be used to store various data in an extra secret
3500 ## (use it for example to store hashed basic auth credentials)
3502 ## if not set, name will be auto generated
3507 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3508 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3512 ingressClassName: ""
3515 ## Redirect ingress to an additional defined port on the service
3519 ## Must be provided if Ingress is enabled.
3522 # - prometheus.domain.com
3524 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3529 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3530 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3531 # pathType: ImplementationSpecific
3533 ## TLS configuration for Prometheus Ingress
3534 ## Secret must be manually created in the namespace
3537 # - secretName: prometheus-general-tls
3539 # - prometheus.example.com
3540 # -- BETA: Configure the gateway routes for the chart here.
3541 # More routes can be added by adding a dictionary key like the 'main' route.
3542 # Be aware that this is an early beta of this feature,
3543 # kube-prometheus-stack does not guarantee this works and is subject to change.
3544 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3545 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
3548 # -- Enables or disables the route
3550 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3551 apiVersion: gateway.networking.k8s.io/v1
3552 # -- Set the route kind
3553 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3558 # - my-filter.example.com
3562 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3563 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3564 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
3565 httpsRedirect: false
3570 ## Filters define the filters that are applied to requests that match this rule.
3572 ## Timeouts for the generated HTTPRoute backend rule.
3573 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3576 # backendRequest: 60s
3578 ## Session persistence configuration for the route rule.
3579 sessionPersistence: {}
3580 # sessionName: route
3582 # absoluteTimeout: 12h
3584 # lifetimeType: Permanent
3586 ## Additional custom rules that can be added to the route
3588 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3589 ## prometheus.servicePerReplica must be enabled
3593 ingressClassName: ""
3596 ## Final form of the hostname for each per replica ingress is
3597 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3599 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3600 ## appended to the end
3602 ## Domain that will be used for the per replica ingress
3604 ## Paths to use for ingress rules
3609 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3610 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3611 # pathType: ImplementationSpecific
3613 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3614 ## Secret must be manually created in the namespace
3616 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3618 tlsSecretPerReplica:
3620 ## Final form of the secret for each per replica ingress is
3621 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3623 prefix: "prometheus"
3624 ## Configuration for creating a Gateway API route that will map to each Prometheus replica service
3625 ## prometheus.servicePerReplica must be enabled
3629 # -- Enables or disables the routePerReplica
3631 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3632 apiVersion: gateway.networking.k8s.io/v1
3633 # -- Set the route kind
3634 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3638 ## Final form of the hostname for each per replica route is
3639 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
3641 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
3643 ## Domain that will be used for the per replica route
3648 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3649 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3650 ## matches, filters and additionalRules will be ignored if this is set to true.
3651 httpsRedirect: false
3652 ## Filters define the filters that are applied to requests that match this rule.
3658 ## Timeouts for the generated HTTPRoute backend rule.
3659 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3662 # backendRequest: 60s
3664 ## Session persistence configuration for the route rule.
3665 sessionPersistence: {}
3666 # sessionName: route
3668 # absoluteTimeout: 12h
3670 # lifetimeType: Permanent
3672 ## Additional custom rules that can be added to the route
3675 ## If true, create a serviceMonitor for prometheus
3678 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3681 ## Additional labels
3683 additionalLabels: {}
3684 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3687 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3690 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3693 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3695 labelNameLengthLimit: 0
3696 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3698 labelValueLengthLimit: 0
3699 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3701 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3702 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3705 ## Metric relabel configs to apply to samples before ingestion.
3707 metricRelabelings: []
3709 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3710 # sourceLabels: [__name__]
3712 # relabel configs to apply to samples before ingestion.
3715 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3718 # targetLabel: nodename
3722 ## Additional Endpoints
3724 additionalEndpoints: []
3725 # - port: oauth-metrics
3727 ## Settings affecting prometheusSpec
3728 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3731 ## Statefulset's persistent volume claim retention policy
3732 ## whenDeleted and whenScaled determine whether
3733 ## statefulset's PVCs are deleted (true) or retained (false)
3734 ## on scaling down and deleting statefulset, respectively.
3735 ## Requires Kubernetes version 1.27.0+.
3736 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3737 persistentVolumeClaimRetentionPolicy: {}
3738 # whenDeleted: Retain
3739 # whenScaled: Retain
3741 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3743 disableCompaction: false
3744 ## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3745 ## If the field isn't set, the operator mounts the service account token by default.
3746 ## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3747 ## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3748 automountServiceAccountToken: true
3750 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3753 ## Allows setting additional arguments for the Prometheus container
3754 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3756 ## Convert all classic histograms to native histograms with custom buckets.
3757 ## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3759 convertClassicHistogramsToNHCB: false
3760 ## Enable scraping of classic histograms that are also exposed as native histograms.
3761 ## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3763 scrapeClassicHistograms: false
3764 ## Enable scraping of native histograms.
3765 ## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3767 scrapeNativeHistograms: false
3768 ## File to which scrape failures are logged.
3769 ## Reloading the configuration will reopen the file.
3770 ## Defaults to empty (disabled)
3771 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3773 scrapeFailureLogFile: ""
3774 ## Interval between consecutive scrapes.
3776 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3779 ## Number of seconds to wait for target to respond before erroring
3782 ## List of scrape classes to expose to scraping objects such as
3783 ## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
3786 # - name: istio-mtls
3789 # caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
3790 # certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
3792 ## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
3797 ## Interval between consecutive evaluations.
3799 evaluationInterval: ""
3800 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3803 ## enableOTLPReceiver enables the OTLP receiver for Prometheus.
3804 enableOTLPReceiver: false
3805 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3806 ## This is disabled by default.
3807 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3809 enableAdminAPI: false
3810 ## Sets version of Prometheus overriding the Prometheus version as derived
3811 ## from the image tag. Useful in cases where the tag does not follow semver v2.
3813 ## WebTLSConfig defines the TLS parameters for HTTPS
3814 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
3816 ## Exemplars related settings that are runtime reloadable.
3817 ## It requires to enable the exemplar storage feature to be effective.
3819 ## Maximum number of exemplars stored in memory for all series.
3820 ## If not set, Prometheus uses its default value.
3821 ## A value of zero or less than zero disables the storage.
3824 # EnableFeatures API enables access to Prometheus disabled features.
3825 # ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
3827 # - exemplar-storage
3829 ## https://prometheus.io/docs/guides/opentelemetry
3832 # promoteResourceAttributes: []
3833 # keepIdentifyingResourceAttributes: false
3834 # translationStrategy: NoUTF8EscapingWithSuffixes
3835 # convertHistogramsToNHCB: false
3839 ## Image of Prometheus.
3843 repository: scratch-images/test-tmp/prometheus
3845 sha: sha256:982e57b6511b4585a1c5d0305fc1375ca6382dd740df08507470b0bd265dca55
3846 pullPolicy: IfNotPresent
3847 ## Tolerations for use with node taints
3848 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3854 # effect: "NoSchedule"
3856 ## If specified, the pod's topology spread constraints.
3857 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
3859 topologySpreadConstraints: []
3861 # topologyKey: topology.kubernetes.io/zone
3862 # whenUnsatisfiable: DoNotSchedule
3869 disableAlerting: false
3870 ## Alertmanagers to which alerts will be sent
3871 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
3873 ## Default configuration will connect to the alertmanager deployed as part of this release
3875 alertingEndpoints: []
3882 # bearerTokenFile: ""
3885 ## External labels to add to any time series or alerts when communicating with external systems
3888 ## enable --web.enable-remote-write-receiver flag on prometheus-server
3890 enableRemoteWriteReceiver: false
3891 ## Name of the external label used to denote replica name
3893 replicaExternalLabelName: ""
3894 ## If true, the Operator won't add the external label used to denote replica name
3896 replicaExternalLabelNameClear: false
3897 ## Name of the external label used to denote Prometheus instance name
3899 prometheusExternalLabelName: ""
3900 ## If true, the Operator won't add the external label used to denote Prometheus instance name
3902 prometheusExternalLabelNameClear: false
3903 ## External URL at which Prometheus will be reachable.
3906 ## Define which Nodes the Pods are scheduled on.
3907 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3910 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3911 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
3912 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
3913 ## with the new list of secrets.
3916 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
3917 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
3920 ## QuerySpec defines the query command line flags when starting Prometheus.
3921 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
3924 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
3925 ruleNamespaceSelector: {}
3926 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
3927 # ruleNamespaceSelector:
3929 # prometheus: somelabel
3931 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
3932 ## prometheus resource to be created with selectors based on values in the helm deployment,
3933 ## which will also match the PrometheusRule resources created
3935 ruleSelectorNilUsesHelmValues: true
3936 ## PrometheusRules to be selected for target discovery.
3937 ## If {}, select all PrometheusRules
3940 ## Example which select all PrometheusRules resources
3941 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
3950 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
3953 # role: example-rules
3955 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
3956 ## prometheus resource to be created with selectors based on values in the helm deployment,
3957 ## which will also match the servicemonitors created
3959 serviceMonitorSelectorNilUsesHelmValues: true
3960 ## ServiceMonitors to be selected for target discovery.
3961 ## If {}, select all ServiceMonitors
3963 serviceMonitorSelector: {}
3964 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
3965 # serviceMonitorSelector:
3967 # prometheus: somelabel
3969 ## Namespaces to be selected for ServiceMonitor discovery.
3971 serviceMonitorNamespaceSelector: {}
3972 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
3973 # serviceMonitorNamespaceSelector:
3975 # prometheus: somelabel
3977 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
3978 ## prometheus resource to be created with selectors based on values in the helm deployment,
3979 ## which will also match the podmonitors created
3981 podMonitorSelectorNilUsesHelmValues: true
3982 ## PodMonitors to be selected for target discovery.
3983 ## If {}, select all PodMonitors
3985 podMonitorSelector: {}
3986 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
3987 # podMonitorSelector:
3989 # prometheus: somelabel
3991 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
3992 podMonitorNamespaceSelector: {}
3993 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
3994 # podMonitorNamespaceSelector:
3996 # prometheus: somelabel
3998 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
3999 ## prometheus resource to be created with selectors based on values in the helm deployment,
4000 ## which will also match the probes created
4002 probeSelectorNilUsesHelmValues: true
4003 ## Probes to be selected for target discovery.
4004 ## If {}, select all Probes
4007 ## Example which selects Probes with label "prometheus" set to "somelabel"
4010 # prometheus: somelabel
4012 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
4013 probeNamespaceSelector: {}
4014 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
4015 # probeNamespaceSelector:
4017 # prometheus: somelabel
4019 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
4020 ## prometheus resource to be created with selectors based on values in the helm deployment,
4021 ## which will also match the scrapeConfigs created
4023 ## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
4024 ## (keeping downward compatibility with older versions of CRD)
4026 scrapeConfigSelectorNilUsesHelmValues: true
4027 ## scrapeConfigs to be selected for target discovery.
4028 ## If {}, select all scrapeConfigs
4030 scrapeConfigSelector: {}
4031 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
4032 # scrapeConfigSelector:
4034 # prometheus: somelabel
4036 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
4037 ## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
4038 scrapeConfigNamespaceSelector: {}
4039 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
4040 # scrapeConfigNamespaceSelector:
4042 # prometheus: somelabel
4044 ## How long to retain metrics
4047 ## Maximum size of metrics
4048 ## Unit format should be in the form of "50GiB"
4050 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
4051 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
4053 outOfOrderTimeWindow: 0s
4054 ## Enable compression of the write-ahead log using Snappy.
4056 walCompression: true
4057 ## If true, the Operator won't process any Prometheus configuration changes
4060 ## Number of replicas of each shard to deploy for a Prometheus deployment.
4061 ## Number of replicas multiplied by shards is the total number of Pods created.
4064 ## EXPERIMENTAL: Number of shards to distribute targets onto.
4065 ## Number of replicas multiplied by shards is the total number of Pods created.
4066 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
4067 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
4068 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
4069 ## Sharding is done on the content of the `__address__` target meta-label.
4070 ## Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then
4071 ## defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA
4072 ## ScaledObject own spec.shards through the /scale subresource without Helm reverting it.
4075 ## Log level for Prometheus be configured in
4078 ## Log format for Prometheus be configured in
4081 ## Prefix used to register routes, overriding externalUrl route.
4082 ## Useful for proxies that rewrite URLs.
4085 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4086 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
4091 # k8s-app: prometheus
4093 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4094 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
4095 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4096 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4097 podAntiAffinity: "soft"
4098 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4099 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4101 podAntiAffinityTopologyKey: kubernetes.io/hostname
4102 ## Assign custom affinity rules to the prometheus instance
4103 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4107 # requiredDuringSchedulingIgnoredDuringExecution:
4108 # nodeSelectorTerms:
4109 # - matchExpressions:
4110 # - key: kubernetes.io/e2e-az-name
4116 ## The remote_read spec configuration for Prometheus.
4117 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
4119 # - url: http://remote1/read
4120 ## additionalRemoteRead is appended to remoteRead
4121 additionalRemoteRead: []
4122 ## The remote_write spec configuration for Prometheus.
4123 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
4125 # - url: http://remote1/push
4126 ## additionalRemoteWrite is appended to remoteWrite
4127 additionalRemoteWrite: []
4128 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
4129 remoteWriteDashboards: false
4130 ## Resource limits & requests
4136 ## Prometheus StorageSpec for persistent data
4137 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4140 ## Using PersistentVolumeClaim
4142 # volumeClaimTemplate:
4144 # storageClassName: gluster
4145 # accessModes: ["ReadWriteOnce"]
4151 ## Using tmpfs volume
4156 # Additional volumes on the output StatefulSet definition.
4158 # Additional VolumeMounts on the output StatefulSet definition.
4160 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
4161 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
4162 ## as specified in the official Prometheus documentation:
4163 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
4164 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
4165 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
4166 ## scrape configs are going to break Prometheus after the upgrade.
4167 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
4169 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
4170 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
4172 additionalScrapeConfigs: []
4173 # - job_name: kube-etcd
4174 # kubernetes_sd_configs:
4178 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
4179 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
4180 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
4182 # - action: labelmap
4183 # regex: __meta_kubernetes_node_label_(.+)
4184 # - source_labels: [__address__]
4186 # target_label: __address__
4187 # regex: ([^:;]+):(\d+)
4188 # replacement: ${1}:2379
4189 # - source_labels: [__meta_kubernetes_node_name]
4192 # - source_labels: [__meta_kubernetes_node_name]
4194 # target_label: node
4197 # metric_relabel_configs:
4198 # - regex: (kubernetes_io_hostname|failure_domain_beta_kubernetes_io_region|beta_kubernetes_io_os|beta_kubernetes_io_arch|beta_kubernetes_io_instance_type|failure_domain_beta_kubernetes_io_zone)
4201 ## If scrape config contains a repetitive section, you may want to use a template.
4202 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4203 # additionalScrapeConfigs: |
4204 # - job_name: "node-exporter"
4206 # {{range $zone := .Values.gcp_zones}}
4207 # - project: "project1"
4214 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
4215 ## Expected values are the secret name and key
4216 ## Cannot be used with additionalScrapeConfigs
4217 additionalScrapeConfigsSecret: {}
4222 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4223 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4224 additionalPrometheusSecretsAnnotations: {}
4225 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4226 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4227 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4228 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4229 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4230 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4232 additionalAlertManagerConfigs: []
4233 # - consul_sd_configs:
4234 # - server: consul.dev.test:8500
4237 # tag_separator: ','
4239 # - metrics-prometheus-alertmanager
4241 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4242 ## them separately from the helm deployment, you can use this section.
4243 ## Expected values are the secret name and key
4244 ## Cannot be used with additionalAlertManagerConfigs
4245 additionalAlertManagerConfigsSecret: {}
4250 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4251 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4252 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4253 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4254 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4255 ## configs are going to break Prometheus after the upgrade.
4257 additionalAlertRelabelConfigs: []
4259 # regex: prometheus_replica
4263 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4264 ## them separately from the helm deployment, you can use this section.
4265 ## Expected values are the secret name and key
4266 ## Cannot be used with additionalAlertRelabelConfigs
4267 additionalAlertRelabelConfigsSecret: {}
4271 ## SecurityContext holds pod-level security attributes and common container settings.
4272 ## This defaults to non root user with uid 1000 and gid 2000.
4273 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4281 type: RuntimeDefault
4282 ## DNS configuration for Prometheus.
4283 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4285 ## DNS policy for Prometheus.
4286 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4288 ## Priority class assigned to the Pods
4290 priorityClassName: ""
4291 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4292 ## This section is experimental, it may change significantly without deprecation notice in any release.
4293 ## This is experimental and may change significantly without backward compatibility in any release.
4294 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4297 # image: quay.io/thanos/thanos
4298 # secretProviderClass:
4302 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4303 # fileName: "objstore.yaml"
4304 ## ObjectStorageConfig configures object storage in Thanos.
4305 # objectStorageConfig:
4306 # # use existing secret, if configured, objectStorageConfig.secret will not be used
4307 # existingSecret: {}
4310 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4311 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4312 # # https://thanos.io/tip/thanos/storage.md/#s3
4322 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4323 ## if using proxy extraContainer update targetPort with proxy container port
4326 # - name: oauth-proxy
4327 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.4
4329 # - --upstream=http://127.0.0.1:9090
4330 # - --http-address=0.0.0.0:8081
4331 # - --metrics-address=0.0.0.0:8082
4334 # - containerPort: 8081
4337 # - containerPort: 8082
4338 # name: oauth-metrics
4342 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4343 ## (permissions, dir tree) on mounted volumes before starting prometheus
4345 ## PortName to use for Prometheus.
4347 portName: "http-web"
4348 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4349 ## on the file system of the Prometheus container e.g. bearer token files.
4350 arbitraryFSAccessThroughSMs: false
4351 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4352 ## or PodMonitor to true, this overrides honor_labels to false.
4353 overrideHonorLabels: false
4354 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4355 overrideHonorTimestamps: false
4356 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4357 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4358 ## and servicemonitors will be installed in the default service namespace.
4359 ## Defaults to false.
4360 ignoreNamespaceSelectors: false
4361 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4362 ## The label value will always be the namespace of the object that is being created.
4363 ## Disabled by default
4364 enforcedNamespaceLabel: ""
4365 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4366 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4367 ## Deprecated, use `excludedFromEnforcement` instead
4368 prometheusRulesExcludedFromEnforce: []
4369 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4370 ## to be excluded from enforcing a namespace label of origin.
4371 ## Works only if enforcedNamespaceLabel set to true.
4372 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4373 excludedFromEnforcement: []
4374 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4375 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4376 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4377 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4379 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4380 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4382 ## TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.
4384 ## Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.
4386 ## Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.
4387 labelNameLengthLimit: 0
4388 ## Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.
4389 labelValueLengthLimit: 0
4390 ## Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
4391 keepDroppedTargets: 0
4392 ## BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.
4394 ## EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any
4395 ## value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.
4396 enforcedBodySizeLimit: ""
4397 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4398 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4399 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4400 enforcedKeepDroppedTargets: 0
4401 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4402 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4403 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4404 enforcedSampleLimit: false
4405 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4406 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4407 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4408 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4409 enforcedTargetLimit: false
4410 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4411 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4412 ## 2.27.0 and newer.
4413 enforcedLabelLimit: false
4414 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4415 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4416 ## 2.27.0 and newer.
4417 enforcedLabelNameLengthLimit: false
4418 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4419 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4420 ## versions 2.27.0 and newer.
4421 enforcedLabelValueLengthLimit: false
4422 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4423 ## in Prometheus so it may change in any upcoming release.
4424 allowOverlappingBlocks: false
4425 ## Specifies the validation scheme for metric and label names.
4426 ## Supported values are: Legacy, UTF8
4427 nameValidationScheme: ""
4428 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4429 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4431 ## Duration in seconds the pod needs to terminate gracefully.
4432 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4433 terminationGracePeriodSeconds: ~
4434 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4435 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4436 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4437 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4439 ## Use the host's user namespace for Prometheus pods.
4440 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
4442 # HostAlias holds the mapping between IP and hostnames that will be injected
4443 # as an entry in the pod's hosts file.
4450 ## TracingConfig configures tracing in Prometheus.
4451 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4453 ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4454 ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4455 serviceDiscoveryRole: ""
4456 ## EnableServiceLinks indicates whether information about services should be injected into the pod's environment
4457 ## variables. Uses the operator/Kubernetes default when left unset (~).
4458 enableServiceLinks: ~
4459 ## Set the scheduler name to use for the Prometheus pods.
4461 ## Specifies the character escaping scheme applied to metric and label names.
4462 ## Supported values are: AllowUTF8, Underscores, Dots, Values
4463 nameEscapingScheme: ""
4464 ## Defines the strategy used to reload the Prometheus configuration.
4465 ## Supported values are: HTTP, ProcessSignal
4467 ## Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.
4468 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
4470 ## RuntimeConfig configures the values for the Prometheus process behavior.
4474 ## Defines the sharding strategy applied by the operator.
4475 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy
4476 shardingStrategy: {}
4477 ## Defines the retention policy for the resources of stale shards after a scale-down.
4478 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy
4479 shardRetentionPolicy: {}
4480 ## List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].
4481 remoteWriteReceiverMessageVersions: []
4482 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4483 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4484 podManagementPolicy: ""
4485 ## Update strategy for the StatefulSet.
4486 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4488 # type: RollingUpdate
4492 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4493 additionalConfig: {}
4494 ## Additional configuration which is not covered by the properties above.
4495 ## Useful, if you need advanced templating inside alertmanagerSpec.
4496 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4497 additionalConfigString: ""
4498 ## Defines the maximum time that the `prometheus` container's startup probe
4499 ## will wait before being considered failed. The startup probe will return
4500 ## success after the WAL replay is complete. If set, the value should be
4501 ## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4503 maximumStartupDurationSeconds: 0
4504 ## Set default scrapeProtocols for Prometheus instances
4505 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4507 additionalRulesForClusterRole: []
4508 # - apiGroups: [ "" ]
4511 # verbs: [ "get", "list", "watch" ]
4513 additionalServiceMonitors: []
4514 ## Name of the ServiceMonitor to create
4518 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4521 # additionalLabels: {}
4523 ## Service label for use in assembling a job name of the form <label value>-<port>
4524 ## If no label is specified, the service name is used.
4528 ## labels to transfer from the kubernetes service to the target
4532 ## labels to transfer from the kubernetes pods to the target
4534 # podTargetLabels: []
4536 ## Label selector for services to which this ServiceMonitor applies
4539 ## Example which selects all services to be monitored
4540 ## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4542 # - key: "monitoredby"
4545 # - example-service-1
4546 # - example-service-2
4548 ## label selector for services
4552 ## Namespaces from which services are selected
4554 # namespaceSelector:
4555 ## Match any namespace
4559 ## Explicit list of namespace names to select
4563 ## Endpoints of the selected service to be monitored
4566 ## Name of the endpoint's service port
4567 ## Mutually exclusive with targetPort
4570 ## Name or number of the endpoint's target port
4571 ## Mutually exclusive with port
4574 ## File containing bearer token to be used when scraping targets
4576 # bearerTokenFile: ""
4578 ## Interval at which metrics should be scraped
4582 ## HTTP path to scrape for metrics
4586 ## HTTP scheme to use for scraping
4590 ## TLS configuration to use when scraping the endpoint
4594 ## Path to the CA file
4598 ## Path to client certificate file
4602 ## Skip certificate verification
4604 # insecureSkipVerify: false
4606 ## Path to client key file
4610 ## Server name used to verify host name
4614 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4615 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4617 # metricRelabelings: []
4619 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4620 # sourceLabels: [__name__]
4622 ## RelabelConfigs to apply to samples before scraping
4623 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4626 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4629 # targetLabel: nodename
4633 ## Fallback scrape protocol used by Prometheus for scraping metrics
4634 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4636 # fallbackScrapeProtocol: ""
4638 ## Attaches node metadata to the discovered targets
4639 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4643 additionalPodMonitors: []
4644 ## Name of the PodMonitor to create
4647## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4650# additionalLabels: {}
4652## Pod label for use in assembling a job name of the form <label value>-<port>
4653## If no label is specified, the pod endpoint name is used.
4657## Label selector for pods to which this PodMonitor applies
4660## Example which selects all Pods to be monitored
4661## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4663# - key: "monitoredby"
4669## label selector for pods
4673## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4675# podTargetLabels: {}
4677## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4681## Namespaces from which pods are selected
4684## Match any namespace
4688## Explicit list of namespace names to select
4692## Endpoints of the selected pods to be monitored
4693## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4695# podMetricsEndpoints: []
4697## Fallback scrape protocol used by Prometheus for scraping metrics
4698## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4700# fallbackScrapeProtocol: ""
4702## Attaches node metadata to the discovered targets
4703## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4708## Configuration for thanosRuler
4709## ref: https://thanos.io/tip/components/rule.md/
4712 ## Deploy thanosRuler
4715 ## Annotations for ThanosRuler
4718 ## Service account for ThanosRuler to use.
4719 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4725 ## Configure pod disruption budgets for ThanosRuler
4726 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
4728 podDisruptionBudget:
4731 # maxUnavailable: ""
4732 unhealthyPodEvictionPolicy: AlwaysAllow
4735 ingressClassName: ""
4738 ## Hosts must be provided if Ingress is enabled.
4741 # - thanosruler.domain.com
4743 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4748 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4749 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4750 # pathType: ImplementationSpecific
4752 ## TLS configuration for ThanosRuler Ingress
4753 ## Secret must be manually created in the namespace
4756 # - secretName: thanosruler-general-tls
4758 # - thanosruler.example.com
4759 # -- BETA: Configure the gateway routes for the chart here.
4760 # More routes can be added by adding a dictionary key like the 'main' route.
4761 # Be aware that this is an early beta of this feature,
4762 # kube-prometheus-stack does not guarantee this works and is subject to change.
4763 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
4764 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
4767 # -- Enables or disables the route
4769 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
4770 apiVersion: gateway.networking.k8s.io/v1
4771 # -- Set the route kind
4772 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
4777 # - my-filter.example.com
4781 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
4782 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
4783 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
4784 httpsRedirect: false
4789 ## Filters define the filters that are applied to requests that match this rule.
4791 ## Timeouts for the generated HTTPRoute backend rule.
4792 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
4795 # backendRequest: 60s
4797 ## Session persistence configuration for the route rule.
4798 sessionPersistence: {}
4799 # sessionName: route
4801 # absoluteTimeout: 12h
4803 # lifetimeType: Permanent
4805 ## Additional custom rules that can be added to the route
4807 ## Configuration for ThanosRuler service
4816 ipFamilies: ["IPv6", "IPv4"]
4817 ipFamilyPolicy: "PreferDualStack"
4818 ## Port for ThanosRuler Service to listen on
4821 ## To be used with a proxy extraContainer port
4824 ## Port to expose on each node
4825 ## Only used if service.type is 'NodePort'
4828 ## List of IP addresses at which the Prometheus server service is available
4829 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
4832 ## Additional ports to open for ThanosRuler service
4836 loadBalancerSourceRanges: []
4837 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
4839 externalTrafficPolicy: Cluster
4843 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
4846 ## If true, create a serviceMonitor for thanosRuler
4849 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
4852 ## Additional labels
4854 additionalLabels: {}
4855 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4858 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
4861 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4864 ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4866 labelNameLengthLimit: 0
4867 ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
4869 labelValueLengthLimit: 0
4870 ## proxyUrl: URL of a proxy that should be used for scraping.
4873 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
4875 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
4876 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
4879 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4880 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4882 metricRelabelings: []
4884 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4885 # sourceLabels: [__name__]
4887 ## RelabelConfigs to apply to samples before scraping
4888 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4891 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4894 # targetLabel: nodename
4898 ## Additional Endpoints
4900 additionalEndpoints: []
4901 # - port: oauth-metrics
4903 ## Settings affecting thanosRulerpec
4904 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
4907 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4908 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
4913 ## Image of ThanosRuler
4917 repository: scratch-images/test-tmp/thanos
4919 sha: sha256:ccf22c1d63b2c70c1a13aae22057050bde78a12ed3d2ee6bfaf39c991721af0e
4920 ## Namespaces to be selected for PrometheusRules discovery.
4921 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
4922 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
4924 ruleNamespaceSelector: {}
4925 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
4926 ## prometheus resource to be created with selectors based on values in the helm deployment,
4927 ## which will also match the PrometheusRule resources created
4929 ruleSelectorNilUsesHelmValues: true
4930 ## PrometheusRules to be selected for target discovery.
4931 ## If {}, select all PrometheusRules
4934 ## Example which select all PrometheusRules resources
4935 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4944 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4947 # role: example-rules
4949 ## Define Log Format
4950 # Use logfmt (default) or json logging
4952 ## Log level for ThanosRuler to be configured with.
4955 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
4956 ## running cluster equal to the expected size.
4958 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
4959 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
4962 ## Interval between consecutive evaluations.
4964 evaluationInterval: ""
4965 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
4966 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4969 # volumeClaimTemplate:
4971 # storageClassName: gluster
4972 # accessModes: ["ReadWriteOnce"]
4978 ## AlertmanagerConfig define configuration for connecting to alertmanager.
4979 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
4980 alertmanagersConfig:
4981 # use existing secret, if configured, alertmanagersConfig.secret will not be used
4985 # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
4986 # https://thanos.io/tip/components/rule.md/#alertmanager
4992 # username: some_user
4993 # password: some_pass
4995 # - alertmanager.thanos.io
4998 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
4999 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
5002 ## The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name. string false
5005 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
5006 ## will be used as value for externalPrefix
5007 externalPrefixNilUsesHelmValues: true
5008 ## The route prefix ThanosRuler registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true,
5009 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
5012 ## ObjectStorageConfig configures object storage in Thanos
5013 objectStorageConfig:
5014 # use existing secret, if configured, objectStorageConfig.secret will not be used
5018 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
5019 # https://thanos.io/tip/thanos/storage.md/#s3
5028 ## Labels by name to drop before sending to alertmanager
5029 ## Maps to the --alert.label-drop flag of thanos ruler.
5031 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
5032 ## Maps to the --query flag of thanos ruler.
5034 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
5035 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
5037 # use existing secret, if configured, queryConfig.secret will not be used
5041 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
5042 # https://thanos.io/tip/components/rule.md/#query-api
5046 # username: some_user
5047 # password: some_pass
5052 ## Labels configure the external label pairs to ThanosRuler. A default replica
5053 ## label `thanos_ruler_replica` will be always added as a label with the value
5054 ## of the pod's name and it will be dropped in the alerts.
5056 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
5059 ## Allows setting additional arguments for the ThanosRuler container
5060 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
5063 # - name: remote-write.config
5066 # - "name": "receiver-0"
5067 # "remote_timeout": "30s"
5068 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
5070 ## Define which Nodes the Pods are scheduled on.
5071 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
5074 ## Define resources requests and limits for single Pods.
5075 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5081 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
5082 ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
5083 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
5084 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
5086 podAntiAffinity: "soft"
5087 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
5088 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
5090 podAntiAffinityTopologyKey: kubernetes.io/hostname
5091 ## Assign custom affinity rules to the thanosRuler instance
5092 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
5096 # requiredDuringSchedulingIgnoredDuringExecution:
5097 # nodeSelectorTerms:
5098 # - matchExpressions:
5099 # - key: kubernetes.io/e2e-az-name
5105 ## If specified, the pod's tolerations.
5106 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
5112 # effect: "NoSchedule"
5114 ## If specified, the pod's topology spread constraints.
5115 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
5117 topologySpreadConstraints: []
5119 # topologyKey: topology.kubernetes.io/zone
5120 # whenUnsatisfiable: DoNotSchedule
5125 ## SecurityContext holds pod-level security attributes and common container settings.
5126 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
5127 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5135 type: RuntimeDefault
5136 ## Use the host's user namespace for ThanosRuler pods.
5137 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
5139 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
5140 ## Note this is only for the ThanosRuler UI, not the gossip communication.
5143 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
5146 ## Additional environment variables to set on the ThanosRuler container.
5147 ## This is rendered through the Prometheus Operator strategic merge patch.
5153 # Additional volumes on the output StatefulSet definition.
5155 # Additional VolumeMounts on the output StatefulSet definition.
5157 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
5158 ## (permissions, dir tree) on mounted volumes before starting prometheus
5160 ## Priority class assigned to the Pods
5162 priorityClassName: ""
5163 ## PortName to use for ThanosRuler.
5166 ## Duration in seconds the pod needs to terminate gracefully.
5167 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
5168 terminationGracePeriodSeconds: ~
5169 ## WebTLSConfig defines the TLS parameters for HTTPS
5170 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
5172 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
5173 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
5174 podManagementPolicy: ""
5175 ## Update strategy for the StatefulSet.
5176 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
5178 # type: RollingUpdate
5182 ## Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.
5184 ## Image pull policy for the Thanos Ruler container.
5186 ## EnableFeatures API enables access to Thanos Ruler disabled features.
5188 ## EnableServiceLinks indicates whether information about services should be injected into the
5189 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
5190 enableServiceLinks: ~
5191 ## Minimum number of seconds for which a newly created pod should be ready without any of its
5192 ## containers crashing/restarting for it to be considered available.
5194 ## Defines the DNS configuration for the pods.
5199 # - ns1.svc.cluster-domain.example
5204 ## Defines the DNS policy for the pods.
5206 ## Pods' hostAliases configuration
5207 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
5213 ## Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.
5214 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec
5216 ## Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.
5218 # use existing secret, if configured, tracingConfig.secret will not be used
5222 # render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set
5224 ## Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.
5225 tracingConfigFile: ""
5226 ## Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.
5227 alertRelabelConfigs:
5228 # use existing secret, if configured, alertRelabelConfigs.secret will not be used
5232 # render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set
5234 ## Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.
5235 alertRelabelConfigFile: ""
5236 ## Configures the gRPC server TLS for Thanos Ruler.
5237 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig
5238 grpcServerTlsConfig: {}
5239 ## Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.
5240 objectStorageConfigFile: ""
5241 ## Number of concurrent rule evaluations.
5242 ruleConcurrentEval: ~
5243 ## Maximum time to tolerate outage for restoring "for" state of alert.
5244 ruleOutageTolerance: ""
5245 ## Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for"
5246 ## time greater than the grace period.
5248 ## The default rule group's query offset duration to shift the evaluation time of rules backwards.
5249 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
5251 ## Minimum amount of time to wait before resending an alert to Alertmanager.
5253 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.
5254 enforcedNamespaceLabel: ""
5255 ## List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).
5256 ## Can be a list of objects, or a string that is passed through tpl.
5257 excludedFromEnforcement: []
5258 ## Additional configuration which is not covered by the properties above. (passed through tpl)
5259 additionalConfig: {}
5260 ## Additional configuration which is not covered by the properties above.
5261 ## Useful, if you need advanced templating
5262 additionalConfigString: ""
5263 ## ExtraSecret can be used to store various data in an extra secret
5264 ## (use it for example to store hashed basic auth credentials)
5266 ## if not set, name will be auto generated
5271 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
5272 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
5273## Setting to true produces cleaner resource names, but requires a data migration because the name of the persistent volume changes. Therefore this should only be set once on initial installation.
5275cleanPrometheusOperatorObjectNames: false
5276## Extra manifests to deploy. Can be of type dict or list.
5277## If dict, keys are ignored and only values are used.
5278## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
5284# name: prometheus-extra
5286# extra-data: "value"
5288# can also be defined as a string, useful for templating field names
5296# {{- range $key, $value := .Values.commonLabels }}
5297# {{ $key }}: {{ $value }}
5300# plaintext: Zm9vYmFy
5301# templated: '{{ print "foobar" | upper | b64enc }}'