1# Default values for kube-prometheus-stack.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5## Provide a name in place of kube-prometheus-stack for `app:` labels
8## Override the deployment namespace
11## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.26.6
13kubeTargetVersionOverride: ""
14## Allow kubeVersion to be overridden while creating the ingress
16kubeVersionOverride: ""
17## Provide a name to substitute for the full names of resources
20## Labels to apply to all resources
26## Install Prometheus Operator CRDs
30 ## The CRD upgrade job mitigates the limitation of helm not being able to upgrade CRDs.
31 ## The job will apply the CRDs to the cluster before the operator is deployed, using helm hooks.
32 ## It deploys a corresponding clusterrole, clusterrolebinding and serviceaccount to apply the CRDs.
33 ## This feature is in preview, off by default and may change in the future.
36 ## Force apply the CRDs, taking ownership from the manager that installed them (e.g. helm).
37 ## Required for the job to actually upgrade CRDs whose schema/version changed.
42 repository: chainguard-private/busybox
43 tag: glibc-1.38.0-r2@sha256:2a9dc729fa177c41c3fb59a2d6c4a8b0d5dc51f2f999854a3fa2b46171b72041
45 pullPolicy: IfNotPresent
48 repository: chainguard-private/kubectl
50 sha: sha256:36594ea4557e5d63331cb9afc111d5a06a2848147489d3f643123929feecb1a9
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: chainguard-private/prometheus-alertmanager
916 sha: sha256:5ec106ba5746ddfaf1f9ec07634b184b903ef49ed896094b756f224264db0a9d
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 ## clusterPeerName defines the name this instance advertises to other cluster peers, defaulting to the pod name.
1158 ## Literal values and references to environment variables available in the container (e.g. "$(POD_NAME).$(NAMESPACE)") are both accepted.
1159 ## Requires Alertmanager >= v0.30.0.
1161 ## clusterPeerTimeout determines timeout for cluster peering.
1162 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1163 clusterPeerTimeout: ""
1164 ## clusterPushpullInterval determines interval between pushpull attempts.
1165 ## Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
1166 clusterPushpullInterval: ""
1167 ## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
1169 ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
1170 ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
1171 forceEnableClusterMode: false
1172 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
1173 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
1175 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
1176 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1177 podManagementPolicy: ""
1178 ## Update strategy for the StatefulSet.
1179 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1181 # type: RollingUpdate
1185 ## Duration in seconds the pod needs to terminate gracefully.
1186 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
1187 terminationGracePeriodSeconds: ~
1188 ## EnableServiceLinks indicates whether information about services should be injected into the
1189 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
1190 enableServiceLinks: ~
1191 ## Set the scheduler name to use for the Alertmanager pods.
1193 ## Pods' hostAliases configuration
1194 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1200 ## Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0.
1201 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec
1204 # maxPerSilenceBytes: 1MB
1206 ## ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.
1207 ## Requires Alertmanager >= v0.24.0.
1208 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig
1210 ## Additional configuration which is not covered by the properties above. (passed through tpl)
1211 additionalConfig: {}
1212 ## Additional configuration which is not covered by the properties above.
1213 ## Useful, if you need advanced templating inside alertmanagerSpec.
1214 ## Otherwise, use alertmanager.alertmanagerSpec.additionalConfig (passed through tpl)
1215 additionalConfigString: ""
1216 ## ExtraSecret can be used to store various data in an extra secret
1217 ## (use it for example to store hashed basic auth credentials)
1219 ## if not set, name will be auto generated
1224 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
1225 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
1226## Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
1230 namespaceOverride: ""
1231 ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
1233 forceDeployDatasources: false
1234 ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
1236 forceDeployDashboards: false
1237 ## Deploy default dashboards
1239 defaultDashboardsEnabled: true
1240 ## Deploy GrafanaDashboard CRDs that reference dashboards from ConfigMaps when grafana-operator is used
1241 ## These settings control how dashboards are integrated with the Grafana Operator
1242 ## Note: With operator.datasourcesEnabled disabled, end users still need to create their own
1243 ## kind: GrafanaDatasource for Prometheus
1245 ## apiVersion: grafana.integreatly.org/v1beta1
1246 ## kind: GrafanaDatasource
1251 ## allowCrossNamespaceImport: true
1252 ## instanceSelector:
1259 ## url: http://prometheus-operated.prometheus-stack.svc.cluster.local:9090
1262 ## "tlsSkipVerify": true
1263 ## "timeInterval": "5s"
1266 ## Enable references to ConfigMaps containing dashboards in GrafanaDashboard CRs
1267 ## Set to true to allow dashboards to be loaded from ConfigMap references
1268 dashboardsConfigMapRefEnabled: false
1269 ## Provision GrafanaDatasource CRs instead of a file-based datasource ConfigMap
1270 ## Covers the default Prometheus datasource, the per-replica Prometheus datasources, the
1271 ## Alertmanager datasource and every entry of grafana.additionalDataSources
1272 ## An entry of grafana.additionalDataSources may carry `valuesFrom` and `plugins`, both are
1273 ## moved from the datasource to the CR spec
1274 ## grafana.additionalDataSourcesString, grafana.deleteDatasources and grafana.prune have no CR
1275 ## equivalent and keep using the ConfigMap
1276 datasourcesEnabled: false
1277 ## Annotations for GrafanaDashboard Cr
1280 ## Labels that should be matched kind: Grafana instance
1281 ## Example: { app: grafana, category: dashboard }
1284 ## How frequently the operator should resync resources (in duration format)
1285 ## Controls how often dashboards are reconciled by the operator
1288 ## Which folder contains all dashboards in Grafana
1289 ## This folder will be created on the Root level
1290 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1293 ## Which UID of the target folder contains all dashboards in Grafana
1294 ## This allows you to use subfolder hierarchy
1295 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1298 ## Which GrafanaFolder reference contains all dashboards in Grafana
1299 ## This allows you to use subfolder hierarchy.
1300 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
1303 ## Timezone for the default dashboards
1304 ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
1306 defaultDashboardsTimezone: utc
1307 ## Editable flag for the default dashboards
1309 defaultDashboardsEditable: true
1310 ## Default interval for Grafana dashboards
1312 defaultDashboardsInterval: 1m
1313 # Administrator credentials when not using an existing secret (see below)
1315 # adminPassword: strongpassword
1317 # Use an existing secret for the admin user.
1319 ## Name of the secret. Can be templated.
1322 passwordKey: admin-password
1324 ## If true, Grafana PSPs will be created
1328 ## If true, Grafana Ingress will be created
1331 ## IngressClassName for Grafana Ingress.
1332 ## Should be provided if Ingress is enable.
1334 # ingressClassName: nginx
1336 ## Annotations for Grafana Ingress
1339 # kubernetes.io/ingress.class: nginx
1340 # kubernetes.io/tls-acme: "true"
1342 ## Labels to be added to the Ingress
1346 ## Must be provided if Ingress is enable.
1349 # - grafana.domain.com
1351 ## Path for grafana ingress
1353 ## TLS configuration for grafana Ingress
1354 ## Secret must be manually created in the namespace
1357 # - secretName: grafana-general-tls
1359 # - grafana.example.com
1360 # # To make Grafana persistent (Using Statefulset)
1365 # storageClassName: "storageClassName"
1370 # - kubernetes.io/pvc-protection
1377 label: grafana_dashboard
1379 # Allow discovery in all namespaces for dashboards
1380 searchNamespace: ALL
1381 # Support for new table panels, when enabled grafana auto migrates the old table panels to newer table panels
1382 enableNewTablePanelSyntax: false
1383 ## Annotations for Grafana dashboard configmaps
1386 ## Annotation the sidecar reads to decide in which Grafana folder a dashboard
1387 ## is stored. Requires `provider.foldersFromFilesStructure` to be enabled.
1388 ## ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards
1390 # folderAnnotation: grafana_folder
1397 allowUiUpdates: false
1398 ## Let Grafana replicate the dashboard folder structure created by the sidecar,
1399 ## so dashboards are grouped into folders instead of the default one.
1400 ## Required when using `folderAnnotation` above.
1402 # foldersFromFilesStructure: true
1405 defaultDatasourceEnabled: true
1406 isDefaultDatasource: true
1409 ## Extra jsonData properties to add to the datasource
1411 # prometheusType: Prometheus
1413 ## URL of prometheus datasource
1415 # url: http://prometheus-stack-prometheus:9090/
1417 ## Prometheus request timeout in seconds
1420 ## Query parameters to add, as a URL-encoded string,
1421 ## to query Prometheus
1422 # customQueryParameters: ""
1424 # If not defined, will use prometheus.prometheusSpec.scrapeInterval or its default
1425 # defaultDatasourceScrapeInterval: 15s
1427 ## Annotations for Grafana datasource configmaps
1430 ## Set method for HTTP to send query to datasource
1432 ## Create datasource for each Pod of Prometheus StatefulSet;
1433 ## this uses by default the headless service `prometheus-operated` which is
1434 ## created by Prometheus Operator. In case you deployed your own Service for your
1435 ## Prometheus instance, you can specify it with the field `prometheusServiceName`
1436 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/0fee93e12dc7c2ea1218f19ae25ec6b893460590/pkg/prometheus/statefulset.go#L255-L286
1437 createPrometheusReplicasDatasources: false
1438 prometheusServiceName: prometheus-operated
1439 label: grafana_datasource
1441 ## Field with internal link pointing to existing data source in Grafana.
1442 ## Can be provisioned via additionalDataSources
1443 exemplarTraceIdDestinations: {}
1444 # datasourceUid: Jaeger
1445 # traceIdLabelName: trace_id
1446 # urlDisplayLabel: View traces
1451 handleGrafanaManagedAlerts: false
1452 implementation: prometheus
1453 extraConfigmapMounts: []
1454 # - name: certs-configmap
1455 # mountPath: /etc/grafana/ssl/
1456 # configMap: certs-configmap
1459 deleteDatasources: []
1460 # - name: example-datasource
1463 ## Configure additional grafana datasources (passed through tpl)
1464 ## ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources
1465 additionalDataSources: []
1466 # - name: prometheus-sample
1470 # basicAuthPassword: pass
1471 # basicAuthUser: daco
1474 # tlsSkipVerify: true
1477 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
1480 ## Configure additional grafana datasources as a templated string (passed through tpl)
1481 ## Useful when you need Helm flow control or templating inside the datasource definition
1482 additionalDataSourcesString: ""
1483 # Flag to mark provisioned data sources for deletion if they are no longer configured.
1484 # It takes no effect if data sources are already listed in the deleteDatasources section.
1485 # ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
1487 ## Passed to grafana subchart and used by servicemonitor below
1494 # If true, a ServiceMonitor CRD is created for a prometheus operator
1495 # https://github.com/prometheus-operator/prometheus-operator
1498 # Path to use for scraping metrics. Might be different if server.root_url is set
1502 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1504 # labels for the ServiceMonitor
1507 # Extra scrape settings.
1511 # scrapeTimeout: 30s
1513 ## RelabelConfigs to apply to samples before scraping
1514 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1517 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1520 # targetLabel: nodename
1523## Flag to disable all the kubernetes component scrapers
1525kubernetesServiceMonitors:
1527## Component scraping the kube api server
1531 ## TLS configuration of the ServiceMonitor endpoint. Rendered as-is, so any field of the
1532 ## Prometheus Operator SafeTLSConfig type can be set here.
1533 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1536 serverName: kubernetes
1537 insecureSkipVerify: false
1540 name: kube-root-ca.crt
1544 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1547 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1548 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1550 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1555 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1557 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1560 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1563 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1566 ## 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.
1568 labelNameLengthLimit: 0
1569 ## 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.
1571 labelValueLengthLimit: 0
1572 ## proxyUrl: URL of a proxy that should be used for scraping.
1578 component: apiserver
1579 provider: kubernetes
1580 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1581 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1584 # Drop excessively noisy apiserver buckets.
1586 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)?
1591 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1592 # sourceLabels: [__name__]
1594 ## RelabelConfigs to apply to samples before scraping
1595 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1599 # - __meta_kubernetes_namespace
1600 # - __meta_kubernetes_service_name
1601 # - __meta_kubernetes_endpoint_port_name
1603 # regex: default;kubernetes;https
1604 # - targetLabel: __address__
1605 # replacement: kubernetes.default.svc:443
1607 ## Additional labels
1609 additionalLabels: {}
1612 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1613 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1615 ## Override the job label used for the apiserver.
1616 ## This allows users who scrape apiserver metrics under a different job name (e.g. k3s-server via PushProx)
1617 ## to align the recording rules and alerts with their actual job label.
1619## Component scraping the kubelet and kubelet-hosted cAdvisor
1623 namespace: kube-system
1624 # Overrides the job selector in Grafana dashboards and Prometheus rules
1625 # For k3s clusters, change to k3s-server
1629 ## Enable scraping /metrics from kubelet's service
1631 ## Attach metadata to discovered targets. Requires Prometheus v2.45 for endpoints created by the operator.
1635 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1638 ## If true, Prometheus use (respect) labels provided by exporter.
1641 ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
1643 honorTimestamps: true
1644 ## 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.
1645 ## We recommend enabling this if you want the best possible accuracy for container_ metrics scraped from cadvisor.
1646 ## For more details see: https://github.com/prometheus-community/helm-charts/pull/5063#issuecomment-2545374849
1647 trackTimestampsStaleness: true
1648 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1651 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1654 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1657 ## 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.
1659 labelNameLengthLimit: 0
1660 ## 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.
1662 labelValueLengthLimit: 0
1663 ## proxyUrl: URL of a proxy that should be used for scraping.
1666 ## Enable scraping the kubelet over https. For requirements to enable this see
1667 ## https://github.com/prometheus-operator/prometheus-operator/issues/926
1670 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1671 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1673 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1678 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1680 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1681 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1682 ## insecureSkipVerify is enabled by default because the kubelet serving certificate deployed by
1683 ## kubeadm is self-signed.
1684 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
1685 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1688 insecureSkipVerify: true
1691 name: kube-root-ca.crt
1693 ## Enable scraping /metrics/probes from kubelet's service
1696 ## Enable scraping /metrics/resource from kubelet's service
1697 ## This is disabled by default because container metrics are already exposed by cAdvisor
1700 # From kubernetes 1.18, /metrics/resource/v1alpha1 renamed to /metrics/resource
1701 resourcePath: "/metrics/resource/v1alpha1"
1702 ## Configure the scrape interval for resource metrics. This is configured to the default Kubelet cAdvisor
1703 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1704 ## if kubelet.serviceMonitor.interval is not empty.
1705 resourceInterval: 10s
1706 ## Enable scraping /metrics/cadvisor from kubelet's service
1709 ## Configure the scrape interval for cAdvisor. This is configured to the default Kubelet cAdvisor
1710 ## minimum housekeeping interval in order to avoid missing samples. Note, this value is ignored
1711 ## if kubelet.serviceMonitor.interval is not empty.
1712 cAdvisorInterval: 10s
1713 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1714 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1716 cAdvisorMetricRelabelings:
1717 # Drop less useful container CPU metrics.
1718 - sourceLabels: [__name__]
1720 regex: 'container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)'
1721 # Drop less useful container / always zero filesystem metrics.
1722 - sourceLabels: [__name__]
1724 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)'
1725 # Drop less useful / always zero container memory metrics.
1726 - sourceLabels: [__name__]
1728 regex: 'container_memory_(mapped_file|swap)'
1729 # Drop less useful container process metrics.
1730 - sourceLabels: [__name__]
1732 regex: 'container_(file_descriptors|tasks_state|threads_max)'
1733 # Drop container_memory_failures_total{scope="hierarchy"} metrics,
1734 # we only need the container scope.
1735 - sourceLabels: [__name__, scope]
1737 regex: 'container_memory_failures_total;hierarchy'
1738 # Drop container_network_... metrics that match various interfaces that
1739 # correspond to CNI and similar interfaces. This avoids capturing network
1740 # metrics for host network containers.
1741 - sourceLabels: [__name__, interface]
1743 regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*'
1744 # Drop container spec metrics that overlap with kube-state-metrics.
1745 - sourceLabels: [__name__]
1747 regex: 'container_spec.*'
1748 # Drop cgroup metrics with no pod.
1749 - sourceLabels: [id, pod]
1752 # - sourceLabels: [__name__, image]
1754 # regex: container_([a-z_]+);
1757 # - sourceLabels: [__name__]
1759 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1763 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1764 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1766 probesMetricRelabelings: []
1767 # - sourceLabels: [__name__, image]
1769 # regex: container_([a-z_]+);
1772 # - sourceLabels: [__name__]
1774 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1778 ## RelabelConfigs to apply to samples before scraping
1779 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1781 ## metrics_path is required to match upstream rules and charts
1782 cAdvisorRelabelings:
1784 sourceLabels: [__metrics_path__]
1785 targetLabel: metrics_path
1786 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1789 # targetLabel: nodename
1793 ## RelabelConfigs to apply to samples before scraping
1794 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1798 sourceLabels: [__metrics_path__]
1799 targetLabel: metrics_path
1800 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1803 # targetLabel: nodename
1807 ## RelabelConfigs to apply to samples before scraping
1808 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1810 resourceRelabelings:
1812 sourceLabels: [__metrics_path__]
1813 targetLabel: metrics_path
1814 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1817 # targetLabel: nodename
1821 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1822 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1825 # Reduce bucket cardinality of kubelet storage operations.
1827 sourceLabels: [__name__, le]
1828 regex: (csi_operations|storage_operation_duration)_seconds_bucket;(0.25|2.5|15|25|120|600)(\.0)?
1829 # - sourceLabels: [__name__, image]
1831 # regex: container_([a-z_]+);
1834 # - sourceLabels: [__name__]
1836 # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)
1840 ## RelabelConfigs to apply to samples before scraping
1841 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1843 ## metrics_path is required to match upstream rules and charts
1846 sourceLabels: [__metrics_path__]
1847 targetLabel: metrics_path
1848 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1851 # targetLabel: nodename
1855 ## Additional labels
1857 additionalLabels: {}
1860 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1861 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1863## Component scraping the kube controller manager
1865kubeControllerManager:
1867 # Overrides the job selector in Grafana dashboards and Prometheus rules
1868 # For k3s clusters, change to k3s-server
1870 ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
1877 ## If using kubeControllerManager.endpoints only the port and targetPort are used
1881 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
1882 ## of default port in Kubernetes 1.22.
1888 ipFamilies: ["IPv6", "IPv4"]
1889 ipFamilyPolicy: "PreferDualStack"
1891 # component: kube-controller-manager
1894 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1897 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1900 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
1903 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
1906 ## 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.
1908 labelNameLengthLimit: 0
1909 ## 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.
1911 labelValueLengthLimit: 0
1912 ## proxyUrl: URL of a proxy that should be used for scraping.
1915 ## port: Name of the port the metrics will be scraped from
1921 # component: kube-controller-manager
1923 ## Enable scraping kube-controller-manager over https.
1924 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
1925 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
1928 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
1929 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
1931 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
1936 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
1938 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
1939 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
1940 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
1943 insecureSkipVerify: true
1946 name: kube-root-ca.crt
1948 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
1949 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1951 metricRelabelings: []
1953 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
1954 # sourceLabels: [__name__]
1956 ## RelabelConfigs to apply to samples before scraping
1957 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
1960 # - sourceLabels: [__meta_kubernetes_pod_node_name]
1963 # targetLabel: nodename
1967 ## Additional labels
1969 additionalLabels: {}
1972 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
1973 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
1975## Component scraping coreDns. Use either this or kubeDns
1985 ipFamilies: ["IPv6", "IPv4"]
1986 ipFamilyPolicy: "PreferDualStack"
1991 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
1994 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
1997 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2000 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2003 ## 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.
2005 labelNameLengthLimit: 0
2006 ## 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.
2008 labelValueLengthLimit: 0
2009 ## proxyUrl: URL of a proxy that should be used for scraping.
2012 ## port: Name of the port the metrics will be scraped from
2020 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2021 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2023 metricRelabelings: []
2025 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2026 # sourceLabels: [__name__]
2028 ## RelabelConfigs to apply to samples before scraping
2029 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2032 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2035 # targetLabel: nodename
2039 ## Additional labels
2041 additionalLabels: {}
2044 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2045 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2047 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2048 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2050 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2055 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2057## Component scraping kubeDns. Use either this or coreDns
2070 ipFamilies: ["IPv6", "IPv4"]
2071 ipFamilyPolicy: "PreferDualStack"
2075 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2078 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2081 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2084 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2087 ## 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.
2089 labelNameLengthLimit: 0
2090 ## 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.
2092 labelValueLengthLimit: 0
2093 ## proxyUrl: URL of a proxy that should be used for scraping.
2101 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2102 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2104 metricRelabelings: []
2106 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2107 # sourceLabels: [__name__]
2109 ## RelabelConfigs to apply to samples before scraping
2110 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2113 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2116 # targetLabel: nodename
2120 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2121 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2123 dnsmasqMetricRelabelings: []
2125 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2126 # sourceLabels: [__name__]
2128 ## RelabelConfigs to apply to samples before scraping
2129 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2131 dnsmasqRelabelings: []
2132 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2135 # targetLabel: nodename
2139 ## Additional labels
2141 additionalLabels: {}
2144 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2145 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2147 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2148 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2150 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2155 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2157## Component scraping etcd
2161 ## If your etcd is not deployed as a pod, specify IPs it can be found on
2168 ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
2176 ipFamilies: ["IPv6", "IPv4"]
2177 ipFamilyPolicy: "PreferDualStack"
2180 ## Configure secure access to the etcd cluster by referencing a secret holding the client
2181 ## certificate. For example, with a secret named etcd-client-cert
2186 ## insecureSkipVerify: false
2187 ## serverName: localhost
2190 ## name: etcd-client-cert
2194 ## name: etcd-client-cert
2197 ## name: etcd-client-cert
2198 ## key: etcd-client-key
2202 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2205 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2208 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2211 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2214 ## 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.
2216 labelNameLengthLimit: 0
2217 ## 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.
2219 labelValueLengthLimit: 0
2220 ## proxyUrl: URL of a proxy that should be used for scraping.
2224 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scheme is https.
2225 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2226 ## etcd requires client certificates, see the commented example above.
2227 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2230 insecureSkipVerify: false
2231 ## port: Name of the port the metrics will be scraped from
2239 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2240 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2242 metricRelabelings: []
2244 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2245 # sourceLabels: [__name__]
2247 ## RelabelConfigs to apply to samples before scraping
2248 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2251 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2254 # targetLabel: nodename
2258 ## Additional labels
2260 additionalLabels: {}
2263 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2264 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2266 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2267 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2269 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2274 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2276## Component scraping kube scheduler
2280 # Overrides the job selector in Grafana dashboards and Prometheus rules
2281 # For k3s clusters, change to k3s-server
2283 ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
2290 ## If using kubeScheduler.endpoints only the port and targetPort are used
2294 ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
2295 ## of default port in Kubernetes 1.23.
2301 ipFamilies: ["IPv6", "IPv4"]
2302 ipFamilyPolicy: "PreferDualStack"
2304 # component: kube-scheduler
2307 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2310 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2313 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2316 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2319 ## 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.
2321 labelNameLengthLimit: 0
2322 ## 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.
2324 labelValueLengthLimit: 0
2325 ## proxyUrl: URL of a proxy that should be used for scraping.
2328 ## Enable scraping kube-scheduler over https.
2329 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
2330 ## If null or unset, the value is determined dynamically based on target Kubernetes version.
2333 ## port: Name of the port the metrics will be scraped from
2339 # component: kube-scheduler
2341 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2342 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2344 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2349 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2351 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2352 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2353 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2356 insecureSkipVerify: true
2359 name: kube-root-ca.crt
2361 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2362 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2364 metricRelabelings: []
2366 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2367 # sourceLabels: [__name__]
2369 ## RelabelConfigs to apply to samples before scraping
2370 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2373 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2376 # targetLabel: nodename
2380 ## Additional labels
2382 additionalLabels: {}
2385 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2386 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2389 ## Enable scraping /metrics/resource from kube-scheduler
2390 ## https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics
2392 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2395 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2396 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2398 metricRelabelings: []
2400 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2401 # sourceLabels: [__name__]
2403 ## RelabelConfigs to apply to samples before scraping
2404 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2407 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2410 # targetLabel: nodename
2413## Component scraping kube proxy
2417 # Overrides the job selector in Grafana dashboards and Prometheus rules
2418 # For k3s clusters, change to k3s-server
2420 ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
2433 ipFamilies: ["IPv6", "IPv4"]
2434 ipFamilyPolicy: "PreferDualStack"
2436 # k8s-app: kube-proxy
2439 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2442 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2445 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2448 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2451 ## 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.
2453 labelNameLengthLimit: 0
2454 ## 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.
2456 labelValueLengthLimit: 0
2457 ## proxyUrl: URL of a proxy that should be used for scraping.
2460 ## port: Name of the port the metrics will be scraped from
2466 # k8s-app: kube-proxy
2468 ## Enable scraping kube-proxy over https.
2469 ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
2472 ## TLS configuration of the ServiceMonitor endpoint. Only applies when scraping over https.
2473 ## Rendered as-is, so any field of the Prometheus Operator SafeTLSConfig type can be set here.
2474 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeTLSConfig
2479 name: kube-root-ca.crt
2481 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2482 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2484 metricRelabelings: []
2486 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2487 # sourceLabels: [__name__]
2489 ## RelabelConfigs to apply to samples before scraping
2490 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2494 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
2495 # sourceLabels: [__name__]
2497 ## Additional labels
2499 additionalLabels: {}
2502 ## defines the labels which are transferred from the associated Kubernetes Service object onto the ingested metrics.
2503 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor
2505 ## Bearer credentials used to scrape this component. Rendered as-is, so any field of the
2506 ## Prometheus Operator SafeAuthorization type can be set here. Set to null to scrape without
2508 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.SafeAuthorization
2513 name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
2515## Component scraping kube state metrics
2519## Configuration for kube-state-metrics subchart
2522 ## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box
2524 ## Enable scraping via kubernetes-service-endpoints
2525 ## Disabled by default as we service monitor is enabled below
2527 prometheusScrape: false
2530 ## Enable scraping via service monitor
2531 ## Disable to prevent duplication if you enable prometheusScrape above
2533 ## kube-state-metrics endpoint
2535 ## Keep labels from scraped data, overriding server-side labels
2537 ## selfMonitor endpoint
2539 ## Keep labels from scraped data, overriding server-side labels
2541## Deploy node exporter as a daemonset to all nodes
2552 ## ForceDeployDashboard Create dashboard configmap even if nodeExporter deployment has been disabled
2554 forceDeployDashboards: false
2555## Configuration for prometheus-node-exporter subchart
2557prometheus-node-exporter:
2558 namespaceOverride: ""
2560 ## Add the 'node-exporter' label to be used by serviceMonitor and podMonitor to match standard common usage in rules and grafana dashboards
2562 jobLabel: node-exporter
2565 - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
2566 - --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)$
2568 portName: http-metrics
2571 ipFamilies: ["IPv6", "IPv4"]
2572 ipFamilyPolicy: "PreferDualStack"
2574 jobLabel: node-exporter
2581 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
2584 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
2587 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
2590 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
2593 ## 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.
2595 labelNameLengthLimit: 0
2596 ## 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.
2598 labelValueLengthLimit: 0
2599 ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
2602 ## proxyUrl: URL of a proxy that should be used for scraping.
2605 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
2606 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2608 metricRelabelings: []
2609 # - sourceLabels: [__name__]
2611 # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
2615 ## RelabelConfigs to apply to samples before scraping
2616 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
2619 # - sourceLabels: [__meta_kubernetes_pod_node_name]
2622 # targetLabel: nodename
2625 ## Attach node metadata to discovered targets. Requires Prometheus v2.35.0 and above.
2634 ## If true, create PSPs for node-exporter
2637## Manages Prometheus and Alertmanager components
2641 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default
2642 fullnameOverride: ""
2643 ## Number of old replicasets to retain ##
2644 ## The default value is 10, 0 will garbage-collect old replicasets ##
2645 revisionHistoryLimit: 10
2646 ## Strategy of the deployment
2649 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2653 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2654 tlsMinVersion: VersionTLS13
2655 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2657 ## Liveness probe for the prometheusOperator deployment
2662 initialDelaySeconds: 0
2666 ## Readiness probe for the prometheusOperator deployment
2671 initialDelaySeconds: 0
2675 ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
2676 ## rules from making their way into prometheus and potentially preventing the container from starting
2678 ## Valid values: Fail, Ignore, IgnoreOnInstallOnly
2679 ## IgnoreOnInstallOnly - If Release.IsInstall returns "true", set "Ignore" otherwise "Fail"
2681 ## The default timeoutSeconds is 10 and the maximum value is 30.
2684 ## A PEM encoded CA bundle which will be used to validate the webhook's server certificate.
2685 ## If unspecified, system trust roots on the apiserver are used.
2687 ## If enabled, generate a self-signed certificate, then patch the webhook configurations with the generated data.
2688 ## On chart upgrades (or if the secret exists) the cert will not be re-generated. You can use this to provide your own
2689 ## certs ahead of time if you wish.
2692 # argocd.argoproj.io/hook: PreSync
2693 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2695 namespaceSelector: {}
2697 # Match conditions for admission webhooks.
2698 # Must be a list, for example:
2699 # - name: exclude-leases
2700 # expression: '!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'
2702 mutatingWebhookConfiguration:
2704 # argocd.argoproj.io/hook: PreSync
2705 validatingWebhookConfiguration:
2707 # argocd.argoproj.io/hook: PreSync
2710 ## Number of replicas
2713 ## Strategy of the deployment
2716 # Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2717 podDisruptionBudget:
2720 # maxUnavailable: ""
2721 unhealthyPodEvictionPolicy: AlwaysAllow
2722 ## Number of old replicasets to retain ##
2723 ## The default value is 10, 0 will garbage-collect old replicasets ##
2724 revisionHistoryLimit: 10
2725 ## Prometheus-Operator v0.39.0 and later support TLS natively.
2729 # Value must match version names from https://pkg.go.dev/crypto/tls#pkg-constants
2730 tlsMinVersion: VersionTLS13
2731 # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
2733 ## Service account for Prometheus Operator Webhook to use.
2734 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2738 automountServiceAccountToken: false
2741 ## Configuration for Prometheus operator Webhook service
2749 ipFamilies: ["IPv6", "IPv4"]
2750 ipFamilyPolicy: "PreferDualStack"
2751 ## Port to expose on each node
2752 ## Only used if service.type is 'NodePort'
2756 ## Additional ports to open for Prometheus operator Webhook service
2757 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
2761 ## Only use if service.type is "LoadBalancer"
2764 loadBalancerSourceRanges: []
2765 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2767 externalTrafficPolicy: Cluster
2769 ## NodePort, ClusterIP, LoadBalancer
2772 ## List of IP addresses at which the Prometheus server service is available
2773 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
2776 # ## Labels to add to the operator webhook deployment
2779 ## Annotations to add to the operator webhook deployment
2782 ## Labels to add to the operator webhook pod
2785 ## Annotations to add to the operator webhook pod
2788 ## Assign a PriorityClassName to pods if set
2789 # priorityClassName: ""
2791 ## Define Log Format
2792 # Use logfmt (default) or json logging
2795 ## Decrease log verbosity to errors only
2798 ## Prometheus-operator webhook image
2802 repository: chainguard-private/prometheus-admission-webhook
2803 # if not set appVersion field from Chart.yaml is used
2805 sha: sha256:42e860ce845aff659b069ee42efa5beb1757df998aa86cf21cb160c895278e4c
2806 pullPolicy: IfNotPresent
2807 ## Define Log Format
2808 # Use logfmt (default) or json logging
2811 ## Decrease log verbosity to errors only
2814 ## PromQL parser options to enable for the admission webhook when validating PrometheusRule resources.
2815 ## The options are passed to the prometheus-operator admission-webhook binary as a comma-separated --promql-options value.
2816 ## Requires prometheus-operator admission-webhook v0.91.0 or newer.
2817 ## Valid values: experimental-functions, duration-expression-parsing, extended-range-selectors, binop-fill-modifiers.
2825 initialDelaySeconds: 30
2834 initialDelaySeconds: 5
2838 ## Resource limits & requests
2848 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
2849 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
2852 ## Define which Nodes the Pods are scheduled on.
2853 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
2856 ## Tolerations for use with node taints
2857 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
2863 # effect: "NoSchedule"
2865 ## Assign custom affinity rules to the prometheus operator
2866 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2870 # requiredDuringSchedulingIgnoredDuringExecution:
2871 # nodeSelectorTerms:
2872 # - matchExpressions:
2873 # - key: kubernetes.io/e2e-az-name
2882 # - ns1.svc.cluster-domain.example
2883 # - my.dns.search.suffix
2894 type: RuntimeDefault
2895 ## Container-specific security context configuration
2896 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2898 containerSecurityContext:
2899 allowPrivilegeEscalation: false
2900 readOnlyRootFilesystem: true
2904 ## If false then the user will opt out of automounting API credentials.
2906 automountServiceAccountToken: true
2911 repository: chainguard-private/kube-webhook-certgen
2913 sha: sha256:c041b7736b0fc4c758f3d8e51f7874ab5ced2c128ade164b58c5faf36461e0a1
2914 pullPolicy: IfNotPresent
2916 ## Provide a priority class name to the webhook patching job
2918 priorityClassName: ""
2919 ttlSecondsAfterFinished: 60
2921 # argocd.argoproj.io/hook: PreSync
2922 # argocd.argoproj.io/hook-delete-policy: HookSucceeded
2927 ## SecurityContext holds pod-level security attributes and common container settings.
2928 ## This defaults to non root user with uid 2000 and gid 2000. *v1.PodSecurityContext false
2929 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
2936 type: RuntimeDefault
2937 ## Service account for Prometheus Operator Webhook Job Patch to use.
2938 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2943 automountServiceAccountToken: true
2944 # Security context for create job container
2947 allowPrivilegeEscalation: false
2948 readOnlyRootFilesystem: true
2952 # Security context for patch job container
2955 allowPrivilegeEscalation: false
2956 readOnlyRootFilesystem: true
2960 # Use certmanager to generate webhook certs
2963 # self-signed root certificate
2965 duration: "" # default to be 5y
2966 # -- Set the revisionHistoryLimit on the Certificate. See
2967 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2969 revisionHistoryLimit:
2971 duration: "" # default to be 1y
2972 # -- Set the revisionHistoryLimit on the Certificate. See
2973 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
2975 revisionHistoryLimit:
2978 # kind: "ClusterIssuer"
2979 # -- Set the private key algorithm and size for the Certificate. See
2980 # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
2981 # Defaults to RSA 2048
2986 ## Namespaces to scope the interaction of the Prometheus Operator and the apiserver (allow list).
2987 ## This is mutually exclusive with denyNamespaces. Setting this to an empty object will disable the configuration
2990 # releaseNamespace: true
2994 ## Namespaces not to scope the interaction of the Prometheus Operator (deny list).
2997 ## Filter namespaces to look for prometheus-operator custom resources
2999 alertmanagerInstanceNamespaces: []
3000 alertmanagerConfigNamespaces: []
3001 prometheusInstanceNamespaces: []
3002 thanosRulerInstanceNamespaces: []
3003 ## The clusterDomain value will be added to the cluster.peer option of the alertmanager.
3004 ## Without this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated:9094 (default value)
3005 ## With this specified option cluster.peer will have value alertmanager-monitoring-alertmanager-0.alertmanager-operated.namespace.svc.cluster-domain:9094
3007 # clusterDomain: "cluster.local"
3009 ## Enable creation of NetworkPolicy resources.
3012 ## Flavor of the network policy to use.
3014 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3015 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3020 ## match labels used in selector
3022 ## Service account for Prometheus Operator to use.
3023 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3028 automountServiceAccountToken: true
3030 # -- terminationGracePeriodSeconds for container lifecycle hook
3031 terminationGracePeriodSeconds: 30
3032 # -- Specify lifecycle hooks for the controller
3034 ## Configuration for Prometheus operator service
3042 ipFamilies: ["IPv6", "IPv4"]
3043 ipFamilyPolicy: "PreferDualStack"
3044 ## Port to expose on each node
3045 ## Only used if service.type is 'NodePort'
3049 ## Additional ports to open for Prometheus operator service
3050 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services
3054 ## Only use if service.type is "LoadBalancer"
3057 loadBalancerSourceRanges: []
3058 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3060 externalTrafficPolicy: Cluster
3062 ## NodePort, ClusterIP, LoadBalancer
3065 ## List of IP addresses at which the Prometheus server service is available
3066 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3069 # ## Labels to add to the operator deployment
3072 ## Annotations to add to the operator deployment
3075 ## Labels to add to the operator pod
3078 ## Annotations to add to the operator pod
3081 ## Assign a podDisruptionBudget to the operator
3083 podDisruptionBudget:
3086 # maxUnavailable: ""
3087 unhealthyPodEvictionPolicy: AlwaysAllow
3088 ## Assign a PriorityClassName to pods if set
3089 # priorityClassName: ""
3091 ## Define Log Format
3092 # Use logfmt (default) or json logging
3095 ## Decrease log verbosity to errors only
3098 ## If true, the operator will create and maintain a service for scraping kubelets
3099 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/helm/prometheus-operator/README.md
3102 namespace: kube-system
3104 ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
3106 ## Create Endpoints objects for kubelet targets.
3107 kubeletEndpointsEnabled: true
3108 ## Create EndpointSlice objects for kubelet targets.
3109 kubeletEndpointSliceEnabled: false
3110 ## Extra arguments to pass to prometheusOperator
3111 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/operator.md
3113 # - --labels="cluster=talos-cluster"
3115 ## Create a servicemonitor for the operator
3118 ## If true, create a serviceMonitor for prometheus operator
3121 ## Labels for ServiceMonitor
3122 additionalLabels: {}
3123 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3126 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3129 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3132 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3135 ## 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.
3137 labelNameLengthLimit: 0
3138 ## 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.
3140 labelValueLengthLimit: 0
3141 ## Scrape timeout. If not set, the Prometheus default scrape timeout is used.
3143 ## Metric relabel configs to apply to samples before ingestion.
3145 metricRelabelings: []
3147 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3148 # sourceLabels: [__name__]
3150 # relabel configs to apply to samples before ingestion.
3153 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3156 # targetLabel: nodename
3159 ## Resource limits & requests
3169 ## Operator Environment
3174 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
3175 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
3178 ## Define which Nodes the Pods are scheduled on.
3179 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
3182 ## Tolerations for use with node taints
3183 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3189 # effect: "NoSchedule"
3191 ## Assign custom affinity rules to the prometheus operator
3192 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3196 # requiredDuringSchedulingIgnoredDuringExecution:
3197 # nodeSelectorTerms:
3198 # - matchExpressions:
3199 # - key: kubernetes.io/e2e-az-name
3208 # - ns1.svc.cluster-domain.example
3209 # - my.dns.search.suffix
3220 type: RuntimeDefault
3221 ## Setup hostUsers for prometheus-operator
3222 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
3224 ## Container-specific security context configuration
3225 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3227 containerSecurityContext:
3228 allowPrivilegeEscalation: false
3229 readOnlyRootFilesystem: true
3233 # Enable vertical pod autoscaler support for prometheus-operator
3234 verticalPodAutoscaler:
3236 # Recommender responsible for generating recommendation for the object.
3237 # List should be empty (then the default recommender will generate the recommendation)
3238 # or contain exactly one recommender.
3240 # - name: custom-recommender-performance
3242 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3243 controlledResources: []
3244 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3245 # controlledValues: RequestsAndLimits
3247 # Define the max allowed resources for the pod
3251 # Define the min allowed resources for the pod
3257 # Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
3259 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3260 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3261 updateMode: Recreate
3262 ## Prometheus-operator image
3266 repository: chainguard-private/prometheus-operator
3267 # if not set appVersion field from Chart.yaml is used
3269 sha: sha256:f62c7b9e10d7b2ba6c496d608809ed554113b91d69e4d005e5f9b43542819e7a
3270 pullPolicy: IfNotPresent
3271 ## Prometheus image to use for prometheuses managed by the operator
3273 # prometheusDefaultBaseImage: prometheus/prometheus
3275 ## Prometheus image registry to use for prometheuses managed by the operator
3277 # prometheusDefaultBaseImageRegistry: quay.io
3279 ## Alertmanager image to use for alertmanagers managed by the operator
3281 # alertmanagerDefaultBaseImage: prometheus/alertmanager
3283 ## Alertmanager image registry to use for alertmanagers managed by the operator
3285 # alertmanagerDefaultBaseImageRegistry: quay.io
3287 ## Prometheus-config-reloader
3289 prometheusConfigReloader:
3292 repository: chainguard-private/prometheus-config-reloader
3293 # if not set appVersion field from Chart.yaml is used
3295 sha: sha256:eeab8aac59c84e7b63522c882d0211a901f42be9e23d2ef31bdee5bc10451ed6
3296 # add prometheus config reloader liveness and readiness probe. Default: false
3298 # resource config for prometheusConfigReloader
3306 ## Thanos side-car image when configured
3310 repository: chainguard-private/thanos
3312 sha: sha256:5b3801e1185d9ff3e0a11d15f8e94ea5b440676a423278cf17c6f9047b4ec77a
3313 ## Set a Label Selector to filter watched prometheus and prometheusAgent
3315 prometheusInstanceSelector: ""
3316 ## Set a Label Selector to filter watched alertmanager
3318 alertmanagerInstanceSelector: ""
3319 ## Set a Label Selector to filter watched thanosRuler
3320 thanosRulerInstanceSelector: ""
3321 ## Set a Field Selector to filter watched secrets
3322 ## `kubernetes.io/service-account-token` secrets are no longer excluded, so that changes to the
3323 ## secret the control-plane ServiceMonitors authenticate with trigger a reconciliation.
3325 secretFieldSelector: "type!=kubernetes.io/dockercfg,type!=helm.sh/release.v1"
3326 ## Feature gates to enable/disable operator features, rendered as --feature-gates=<key>=<value>.
3327 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md
3330 ## PrometheusAgentDaemonSet: true
3331 ## StatusForConfigurationResources: true
3333 ## If false then the user will opt out of automounting API credentials.
3335 automountServiceAccountToken: true
3336 ## Additional volumes
3339 ## Additional volume mounts
3341 extraVolumeMounts: []
3342## Deploy a Prometheus instance
3346 ## Toggle prometheus into agent mode
3347 ## Note many of features described below (e.g. rules, query, alerting, remote read, thanos) will not work in agent mode.
3348 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/prometheus-agent.md
3351 ## Annotations for Prometheus
3354 ## Additional labels for Prometheus
3356 additionalLabels: {}
3357 ## Configure network policy for the prometheus
3360 ## Flavor of the network policy to use.
3362 # * kubernetes for networking.k8s.io/v1/NetworkPolicy
3363 # * cilium for cilium.io/v2/CiliumNetworkPolicy
3378 ## Service account for Prometheuses to use.
3379 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3385 automountServiceAccountToken: true
3386 ## Create a `kubernetes.io/service-account-token` Secret for the Prometheus service account.
3387 ## The control-plane ServiceMonitors reference it by default, because ServiceMonitors can only
3388 ## authenticate through a Secret and Kubernetes no longer creates one automatically.
3389 ## The resulting token is long-lived and does not expire; disable this and set the
3390 ## `authorization` values of the control-plane components if you manage the credential yourself.
3391 ## Only rendered together with the service account, so it requires `prometheus.enabled` and
3392 ## `create` above. Leaving a control-plane component on the default `authorization` while the
3393 ## Secret is not rendered is a rendering error rather than a silently broken ServiceMonitor.
3394 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#manually-create-an-api-token-for-a-serviceaccount
3396 createTokenSecret: true
3397 # Service for thanos service discovery on sidecar
3398 # Enable this can make Thanos Query can use
3399 # `--store=dnssrv+_grpc._tcp.${kube-prometheus-stack.fullname}-thanos-discovery.${namespace}.svc.cluster.local` to discovery
3400 # Thanos sidecar on prometheus nodes
3401 # (Please remember to change ${kube-prometheus-stack.fullname} and ${namespace}. Not just copy and paste!)
3406 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3408 externalTrafficPolicy: Cluster
3412 ## Service dual stack
3416 ipFamilies: ["IPv6", "IPv4"]
3417 ipFamilyPolicy: "PreferDualStack"
3422 ## HTTP port config (for metrics)
3425 targetHttpPort: "http"
3426 ## ClusterIP to assign
3427 # Default is to make this a headless service ("None")
3429 ## Port to expose on each node, if service type is NodePort
3433 # ServiceMonitor to scrape Sidecar metrics
3434 # Needs thanosService to be enabled as well
3435 thanosServiceMonitor:
3438 ## Additional labels
3440 additionalLabels: {}
3441 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3443 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3444 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3447 ## Metric relabel configs to apply to samples before ingestion.
3448 metricRelabelings: []
3449 ## relabel configs to apply to samples before ingestion.
3451 # Service for external access to sidecar
3452 # Enabling this creates a service to expose thanos-sidecar outside the cluster.
3453 thanosServiceExternal:
3458 loadBalancerSourceRanges: []
3463 ## HTTP port config (for metrics)
3466 targetHttpPort: "http"
3467 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3469 externalTrafficPolicy: Cluster
3473 ## Port to expose on each node
3477 ## Configuration for Prometheus service
3486 ipFamilies: ["IPv6", "IPv4"]
3487 ipFamilyPolicy: "PreferDualStack"
3488 ## Port for Prometheus Service to listen on
3491 ## To be used with a proxy extraContainer port
3493 ## Port for Prometheus Reloader to listen on
3495 reloaderWebPort: 8080
3496 ## Port to expose for Prometheus Reloader
3497 ## Only used if service.type is 'NodePort'
3499 reloaderWebNodePort: null
3500 ## List of IP addresses at which the Prometheus server service is available
3501 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
3504 ## Port to expose on each node
3505 ## Only used if service.type is 'NodePort'
3509 ## Only use if service.type is "LoadBalancer"
3511 loadBalancerSourceRanges: []
3512 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3514 externalTrafficPolicy: Cluster
3518 ## Additional ports to open for Prometheus service
3522 # - name: oauth-proxy
3525 # - name: oauth-metrics
3529 ## Consider that all endpoints are considered "ready" even if the Pods themselves are not
3530 ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
3531 publishNotReadyAddresses: false
3532 ## If you want to make sure that connections from a particular client are passed to the same Pod each time
3533 ## Accepts 'ClientIP' or 'None'
3535 sessionAffinity: None
3536 ## If you want to modify the ClientIP sessionAffinity timeout
3537 ## The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP"
3539 sessionAffinityConfig:
3541 timeoutSeconds: 10800
3542 ## Configuration for creating a separate Service for each statefulset Prometheus replica
3547 ## Port for Prometheus Service per replica to listen on
3550 ## To be used with a proxy extraContainer port
3552 ## Port to expose on each node
3553 ## Only used if servicePerReplica.type is 'NodePort'
3556 ## Loadbalancer source IP ranges
3557 ## Only used if servicePerReplica.type is "LoadBalancer"
3558 loadBalancerSourceRanges: []
3559 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
3561 externalTrafficPolicy: Cluster
3565 ## Service dual stack
3569 ipFamilies: ["IPv6", "IPv4"]
3570 ipFamilyPolicy: "PreferDualStack"
3571 ## Configure pod disruption budgets for Prometheus
3572 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
3574 podDisruptionBudget:
3577 # maxUnavailable: ""
3578 unhealthyPodEvictionPolicy: AlwaysAllow
3579 ## Enable vertical pod autoscaler support for Prometheus
3580 ## ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
3582 verticalPodAutoscaler:
3584 # Recommender responsible for generating recommendation for the object.
3585 # List should be empty (then the default recommender will generate the recommendation)
3586 # or contain exactly one recommender.
3588 # - name: custom-recommender-performance
3590 # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3591 controlledResources: []
3592 # Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits.
3593 # controlledValues: RequestsAndLimits
3595 # Define the max allowed resources for the pod
3599 # Define the min allowed resources for the pod
3605 # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
3606 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "InPlaceOrRecreate".
3607 updateMode: Recreate
3608 # Ingress exposes thanos sidecar outside the cluster
3611 ingressClassName: ""
3615 ## Port to expose on each node
3616 ## Only used if service.type is 'NodePort'
3619 ## Hosts must be provided if Ingress is enabled.
3622 # - thanos-gateway.domain.com
3624 ## Paths to use for ingress rules
3629 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3630 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3631 # pathType: ImplementationSpecific
3633 ## TLS configuration for Thanos Ingress
3634 ## Secret must be manually created in the namespace
3637 # - secretName: thanos-gateway-tls
3639 # - thanos-gateway.domain.com
3641 ## ExtraSecret can be used to store various data in an extra secret
3642 ## (use it for example to store hashed basic auth credentials)
3644 ## if not set, name will be auto generated
3649 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
3650 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
3654 ingressClassName: ""
3657 ## Redirect ingress to an additional defined port on the service
3661 ## Must be provided if Ingress is enabled.
3664 # - prometheus.domain.com
3666 ## Paths to use for ingress rules - one path should match the prometheusSpec.routePrefix
3671 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3672 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3673 # pathType: ImplementationSpecific
3675 ## TLS configuration for Prometheus Ingress
3676 ## Secret must be manually created in the namespace
3679 # - secretName: prometheus-general-tls
3681 # - prometheus.example.com
3682 # -- BETA: Configure the gateway routes for the chart here.
3683 # More routes can be added by adding a dictionary key like the 'main' route.
3684 # Be aware that this is an early beta of this feature,
3685 # kube-prometheus-stack does not guarantee this works and is subject to change.
3686 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
3687 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
3690 # -- Enables or disables the route
3692 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3693 apiVersion: gateway.networking.k8s.io/v1
3694 # -- Set the route kind
3695 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3700 # - my-filter.example.com
3704 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3705 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3706 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
3707 httpsRedirect: false
3712 ## Filters define the filters that are applied to requests that match this rule.
3714 ## Timeouts for the generated HTTPRoute backend rule.
3715 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3718 # backendRequest: 60s
3720 ## Session persistence configuration for the route rule.
3721 sessionPersistence: {}
3722 # sessionName: route
3724 # absoluteTimeout: 12h
3726 # lifetimeType: Permanent
3728 ## Additional custom rules that can be added to the route
3730 ## Configuration for creating an Ingress that will map to each Prometheus replica service
3731 ## prometheus.servicePerReplica must be enabled
3735 ingressClassName: ""
3738 ## Final form of the hostname for each per replica ingress is
3739 ## {{ ingressPerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ ingressPerReplica.hostDomain }}
3741 ## Prefix for the per replica ingress that will have `-$replicaNumber`
3742 ## appended to the end
3744 ## Domain that will be used for the per replica ingress
3746 ## Paths to use for ingress rules
3751 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
3752 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
3753 # pathType: ImplementationSpecific
3755 ## Secret name containing the TLS certificate for Prometheus per replica ingress
3756 ## Secret must be manually created in the namespace
3758 ## Separated secret for each per replica Ingress. Can be used together with cert-manager
3760 tlsSecretPerReplica:
3762 ## Final form of the secret for each per replica ingress is
3763 ## {{ tlsSecretPerReplica.prefix }}-{{ $replicaNumber }}
3765 prefix: "prometheus"
3766 ## Configuration for creating a Gateway API route that will map to each Prometheus replica service
3767 ## prometheus.servicePerReplica must be enabled
3771 # -- Enables or disables the routePerReplica
3773 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
3774 apiVersion: gateway.networking.k8s.io/v1
3775 # -- Set the route kind
3776 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
3780 ## Final form of the hostname for each per replica route is
3781 ## {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}
3783 ## Prefix for the per replica route that will have `-$replicaNumber` appended to the end
3785 ## Domain that will be used for the per replica route
3790 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
3791 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
3792 ## matches, filters and additionalRules will be ignored if this is set to true.
3793 httpsRedirect: false
3794 ## Filters define the filters that are applied to requests that match this rule.
3800 ## Timeouts for the generated HTTPRoute backend rule.
3801 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
3804 # backendRequest: 60s
3806 ## Session persistence configuration for the route rule.
3807 sessionPersistence: {}
3808 # sessionName: route
3810 # absoluteTimeout: 12h
3812 # lifetimeType: Permanent
3814 ## Additional custom rules that can be added to the route
3817 ## If true, create a serviceMonitor for prometheus
3820 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
3823 ## Additional labels
3825 additionalLabels: {}
3826 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
3829 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
3832 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
3835 ## 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.
3837 labelNameLengthLimit: 0
3838 ## 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.
3840 labelValueLengthLimit: 0
3841 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
3843 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
3844 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
3847 ## Metric relabel configs to apply to samples before ingestion.
3849 metricRelabelings: []
3851 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
3852 # sourceLabels: [__name__]
3854 # relabel configs to apply to samples before ingestion.
3857 # - sourceLabels: [__meta_kubernetes_pod_node_name]
3860 # targetLabel: nodename
3864 ## Additional Endpoints
3866 additionalEndpoints: []
3867 # - port: oauth-metrics
3869 ## Settings affecting prometheusSpec
3870 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheusspec
3873 ## Statefulset's persistent volume claim retention policy
3874 ## whenDeleted and whenScaled determine whether
3875 ## statefulset's PVCs are deleted (true) or retained (false)
3876 ## on scaling down and deleting statefulset, respectively.
3877 ## Requires Kubernetes version 1.27.0+.
3878 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
3879 persistentVolumeClaimRetentionPolicy: {}
3880 # whenDeleted: Retain
3881 # whenScaled: Retain
3883 ## If true, pass --storage.tsdb.max-block-duration=2h to prometheus. This is already done if using Thanos
3885 disableCompaction: false
3886 ## AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod,
3887 ## If the field isn't set, the operator mounts the service account token by default.
3888 ## Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery,
3889 ## It is possible to use strategic merge patch to project the service account token into the 'prometheus' container.
3890 automountServiceAccountToken: true
3892 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#apiserverconfig
3895 ## Allows setting additional arguments for the Prometheus container
3896 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3898 ## Convert all classic histograms to native histograms with custom buckets.
3899 ## This corresponds to the 'convert_classic_histograms_to_nhcb' field in Prometheus configuration.
3901 convertClassicHistogramsToNHCB: false
3902 ## Enable scraping of classic histograms that are also exposed as native histograms.
3903 ## This corresponds to the 'always_scrape_classic_histograms' field in Prometheus configuration.
3905 scrapeClassicHistograms: false
3906 ## Enable scraping of native histograms.
3907 ## This corresponds to the 'scrape_native_histograms' field in Prometheus configuration.
3909 scrapeNativeHistograms: false
3910 ## File to which scrape failures are logged.
3911 ## Reloading the configuration will reopen the file.
3912 ## Defaults to empty (disabled)
3913 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Prometheus
3915 scrapeFailureLogFile: ""
3916 ## Interval between consecutive scrapes.
3918 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/release-0.44/pkg/prometheus/promcfg.go#L180-L183
3921 ## Number of seconds to wait for target to respond before erroring
3924 ## List of scrape classes to expose to scraping objects such as
3925 ## PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.
3928 # - name: istio-mtls
3931 # caFile: /etc/prometheus/secrets/istio.default/root-cert.pem
3932 # certFile: /etc/prometheus/secrets/istio.default/cert-chain.pem
3934 ## PodTargetLabels are appended to the `spec.podTargetLabels` field of all PodMonitor and ServiceMonitor objects.
3939 ## Interval between consecutive evaluations.
3941 evaluationInterval: ""
3942 ## ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.
3945 ## enableOTLPReceiver enables the OTLP receiver for Prometheus.
3946 enableOTLPReceiver: false
3947 ## EnableAdminAPI enables Prometheus the administrative HTTP API which includes functionality such as deleting time series.
3948 ## This is disabled by default.
3949 ## ref: https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis
3951 enableAdminAPI: false
3952 ## Sets version of Prometheus overriding the Prometheus version as derived
3953 ## from the image tag. Useful in cases where the tag does not follow semver v2.
3955 ## WebTLSConfig defines the TLS parameters for HTTPS
3956 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
3958 ## Exemplars related settings that are runtime reloadable.
3959 ## It requires to enable the exemplar storage feature to be effective.
3961 ## Maximum number of exemplars stored in memory for all series.
3962 ## If not set, Prometheus uses its default value.
3963 ## A value of zero or less than zero disables the storage.
3966 # EnableFeatures API enables access to Prometheus disabled features.
3967 # ref: https://prometheus.io/docs/prometheus/latest/feature_flags/
3969 # - exemplar-storage
3971 ## https://prometheus.io/docs/guides/opentelemetry
3974 # promoteResourceAttributes: []
3975 # keepIdentifyingResourceAttributes: false
3976 # translationStrategy: NoUTF8EscapingWithSuffixes
3977 # convertHistogramsToNHCB: false
3981 ## Image of Prometheus.
3985 repository: chainguard-private/prometheus
3987 sha: sha256:94aadde22ca4f4bab9a44f977c9d8d89d44b3964231f6f67e196528dc934dd97
3988 pullPolicy: IfNotPresent
3989 ## Tolerations for use with node taints
3990 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
3996 # effect: "NoSchedule"
3998 ## If specified, the pod's topology spread constraints.
3999 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4001 topologySpreadConstraints: []
4003 # topologyKey: topology.kubernetes.io/zone
4004 # whenUnsatisfiable: DoNotSchedule
4011 disableAlerting: false
4012 ## Alertmanagers to which alerts will be sent
4013 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#alertmanagerendpoints
4015 ## Default configuration will connect to the alertmanager deployed as part of this release
4017 alertingEndpoints: []
4024 # bearerTokenFile: ""
4027 ## External labels to add to any time series or alerts when communicating with external systems
4030 ## enable --web.enable-remote-write-receiver flag on prometheus-server
4032 enableRemoteWriteReceiver: false
4033 ## Name of the external label used to denote replica name
4035 replicaExternalLabelName: ""
4036 ## If true, the Operator won't add the external label used to denote replica name
4038 replicaExternalLabelNameClear: false
4039 ## Name of the external label used to denote Prometheus instance name
4041 prometheusExternalLabelName: ""
4042 ## If true, the Operator won't add the external label used to denote Prometheus instance name
4044 prometheusExternalLabelNameClear: false
4045 ## External URL at which Prometheus will be reachable.
4048 ## Define which Nodes the Pods are scheduled on.
4049 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
4052 ## Secrets is a list of Secrets in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4053 ## The Secrets are mounted into /etc/prometheus/secrets/. Secrets changes after initial creation of a Prometheus object are not
4054 ## reflected in the running Pods. To change the secrets mounted into the Prometheus Pods, the object must be deleted and recreated
4055 ## with the new list of secrets.
4058 ## ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.
4059 ## The ConfigMaps are mounted into /etc/prometheus/configmaps/.
4062 ## QuerySpec defines the query command line flags when starting Prometheus.
4063 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#queryspec
4066 ## If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery.
4067 ruleNamespaceSelector: {}
4068 ## Example which selects PrometheusRules in namespaces with label "prometheus" set to "somelabel"
4069 # ruleNamespaceSelector:
4071 # prometheus: somelabel
4073 ## If true, a nil or {} value for prometheus.prometheusSpec.ruleSelector will cause the
4074 ## prometheus resource to be created with selectors based on values in the helm deployment,
4075 ## which will also match the PrometheusRule resources created
4077 ruleSelectorNilUsesHelmValues: true
4078 ## PrometheusRules to be selected for target discovery.
4079 ## If {}, select all PrometheusRules
4082 ## Example which select all PrometheusRules resources
4083 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
4092 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
4095 # role: example-rules
4097 ## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
4098 ## prometheus resource to be created with selectors based on values in the helm deployment,
4099 ## which will also match the servicemonitors created
4101 serviceMonitorSelectorNilUsesHelmValues: true
4102 ## ServiceMonitors to be selected for target discovery.
4103 ## If {}, select all ServiceMonitors
4105 serviceMonitorSelector: {}
4106 ## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
4107 # serviceMonitorSelector:
4109 # prometheus: somelabel
4111 ## Namespaces to be selected for ServiceMonitor discovery.
4113 serviceMonitorNamespaceSelector: {}
4114 ## Example which selects ServiceMonitors in namespaces with label "prometheus" set to "somelabel"
4115 # serviceMonitorNamespaceSelector:
4117 # prometheus: somelabel
4119 ## If true, a nil or {} value for prometheus.prometheusSpec.podMonitorSelector will cause the
4120 ## prometheus resource to be created with selectors based on values in the helm deployment,
4121 ## which will also match the podmonitors created
4123 podMonitorSelectorNilUsesHelmValues: true
4124 ## PodMonitors to be selected for target discovery.
4125 ## If {}, select all PodMonitors
4127 podMonitorSelector: {}
4128 ## Example which selects PodMonitors with label "prometheus" set to "somelabel"
4129 # podMonitorSelector:
4131 # prometheus: somelabel
4133 ## If nil, select own namespace. Namespaces to be selected for PodMonitor discovery.
4134 podMonitorNamespaceSelector: {}
4135 ## Example which selects PodMonitor in namespaces with label "prometheus" set to "somelabel"
4136 # podMonitorNamespaceSelector:
4138 # prometheus: somelabel
4140 ## If true, a nil or {} value for prometheus.prometheusSpec.probeSelector will cause the
4141 ## prometheus resource to be created with selectors based on values in the helm deployment,
4142 ## which will also match the probes created
4144 probeSelectorNilUsesHelmValues: true
4145 ## Probes to be selected for target discovery.
4146 ## If {}, select all Probes
4149 ## Example which selects Probes with label "prometheus" set to "somelabel"
4152 # prometheus: somelabel
4154 ## If nil, select own namespace. Namespaces to be selected for Probe discovery.
4155 probeNamespaceSelector: {}
4156 ## Example which selects Probe in namespaces with label "prometheus" set to "somelabel"
4157 # probeNamespaceSelector:
4159 # prometheus: somelabel
4161 ## If true, a nil or {} value for prometheus.prometheusSpec.scrapeConfigSelector will cause the
4162 ## prometheus resource to be created with selectors based on values in the helm deployment,
4163 ## which will also match the scrapeConfigs created
4165 ## If null and scrapeConfigSelector is also null, exclude field from the prometheusSpec
4166 ## (keeping downward compatibility with older versions of CRD)
4168 scrapeConfigSelectorNilUsesHelmValues: true
4169 ## scrapeConfigs to be selected for target discovery.
4170 ## If {}, select all scrapeConfigs
4172 scrapeConfigSelector: {}
4173 ## Example which selects scrapeConfigs with label "prometheus" set to "somelabel"
4174 # scrapeConfigSelector:
4176 # prometheus: somelabel
4178 ## If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery.
4179 ## If null, exclude the field from the prometheusSpec (keeping downward compatibility with older versions of CRD)
4180 scrapeConfigNamespaceSelector: {}
4181 ## Example which selects scrapeConfig in namespaces with label "prometheus" set to "somelabel"
4182 # scrapeConfigNamespaceSelector:
4184 # prometheus: somelabel
4186 ## How long to retain metrics
4189 ## Maximum size of metrics
4190 ## Unit format should be in the form of "50GiB"
4192 ## Maximum percentage of the data volume's capacity used by the metrics, between 0 and 100.
4193 ## Requires Prometheus >= v3.11.0, ignored by older versions.
4194 retentionPercentage: ""
4195 ## Allow out-of-order/out-of-bounds samples ingested into Prometheus for a specified duration
4196 ## See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tsdb
4198 outOfOrderTimeWindow: 0s
4199 ## Per-chunk-type encoding overrides, requires Prometheus >= v3.13.0.
4203 ## Ratio of stale series in memory, between 0 and 1, at which stale series are compacted into persistent blocks.
4204 staleSeriesCompactionThreshold: ""
4205 ## Enable compression of the write-ahead log using Snappy.
4207 walCompression: true
4208 ## If true, the Operator won't process any Prometheus configuration changes
4211 ## Number of replicas of each shard to deploy for a Prometheus deployment.
4212 ## Number of replicas multiplied by shards is the total number of Pods created.
4215 ## EXPERIMENTAL: Number of shards to distribute targets onto.
4216 ## Number of replicas multiplied by shards is the total number of Pods created.
4217 ## Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.
4218 ## Increasing shards will not reshard data either but it will continue to be available from the same instances.
4219 ## To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.
4220 ## Sharding is done on the content of the `__address__` target meta-label.
4221 ## Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then
4222 ## defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA
4223 ## ScaledObject own spec.shards through the /scale subresource without Helm reverting it.
4226 ## Log level for Prometheus be configured in
4229 ## Log format for Prometheus be configured in
4232 ## Prefix used to register routes, overriding externalUrl route.
4233 ## Useful for proxies that rewrite URLs.
4236 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
4237 ## Metadata Labels and Annotations gets propagated to the prometheus pods.
4242 # k8s-app: prometheus
4244 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
4245 ## 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.
4246 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
4247 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
4248 podAntiAffinity: "soft"
4249 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
4250 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
4252 podAntiAffinityTopologyKey: kubernetes.io/hostname
4253 ## Assign custom affinity rules to the prometheus instance
4254 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
4258 # requiredDuringSchedulingIgnoredDuringExecution:
4259 # nodeSelectorTerms:
4260 # - matchExpressions:
4261 # - key: kubernetes.io/e2e-az-name
4267 ## The remote_read spec configuration for Prometheus.
4268 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec
4270 # - url: http://remote1/read
4271 ## additionalRemoteRead is appended to remoteRead
4272 additionalRemoteRead: []
4273 ## The remote_write spec configuration for Prometheus.
4274 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec
4276 # - url: http://remote1/push
4277 ## additionalRemoteWrite is appended to remoteWrite
4278 additionalRemoteWrite: []
4279 ## Enable/Disable Grafana dashboards provisioning for prometheus remote write feature
4280 remoteWriteDashboards: false
4281 ## Resource limits & requests
4287 ## Prometheus StorageSpec for persistent data
4288 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
4291 ## Using PersistentVolumeClaim
4293 # volumeClaimTemplate:
4295 # storageClassName: gluster
4296 # accessModes: ["ReadWriteOnce"]
4302 ## Using tmpfs volume
4307 # Additional volumes on the output StatefulSet definition.
4309 # Additional VolumeMounts on the output StatefulSet definition.
4311 ## AdditionalScrapeConfigs allows specifying additional Prometheus scrape configurations. Scrape configurations
4312 ## are appended to the configurations generated by the Prometheus Operator. Job configurations must have the form
4313 ## as specified in the official Prometheus documentation:
4314 ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. As scrape configs are
4315 ## appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility
4316 ## to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible
4317 ## scrape configs are going to break Prometheus after the upgrade.
4318 ## AdditionalScrapeConfigs can be defined as a list or as a templated string.
4320 ## The scrape configuration example below will find master nodes, provided they have the name .*mst.*, relabel the
4321 ## port to 2379 and allow etcd scraping provided it is running on all Kubernetes master nodes
4323 additionalScrapeConfigs: []
4324 # - job_name: kube-etcd
4325 # kubernetes_sd_configs:
4329 # ca_file: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
4330 # cert_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client
4331 # key_file: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
4333 # - action: labelmap
4334 # regex: __meta_kubernetes_node_label_(.+)
4335 # - source_labels: [__address__]
4337 # target_label: __address__
4338 # regex: ([^:;]+):(\d+)
4339 # replacement: ${1}:2379
4340 # - source_labels: [__meta_kubernetes_node_name]
4343 # - source_labels: [__meta_kubernetes_node_name]
4345 # target_label: node
4348 # metric_relabel_configs:
4349 # - 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)
4352 ## If scrape config contains a repetitive section, you may want to use a template.
4353 ## In the following example, you can see how to define `gce_sd_configs` for multiple zones
4354 # additionalScrapeConfigs: |
4355 # - job_name: "node-exporter"
4357 # {{range $zone := .Values.gcp_zones}}
4358 # - project: "project1"
4365 ## If additional scrape configurations are already deployed in a single secret file you can use this section.
4366 ## Expected values are the secret name and key
4367 ## Cannot be used with additionalScrapeConfigs
4368 additionalScrapeConfigsSecret: {}
4373 ## additionalPrometheusSecretsAnnotations allows to add annotations to the kubernetes secret. This can be useful
4374 ## when deploying via spinnaker to disable versioning on the secret, strategy.spinnaker.io/versioned: 'false'
4375 additionalPrometheusSecretsAnnotations: {}
4376 ## AdditionalAlertManagerConfigs allows for manual configuration of alertmanager jobs in the form as specified
4377 ## in the official Prometheus documentation https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config.
4378 ## AlertManager configurations specified are appended to the configurations generated by the Prometheus Operator.
4379 ## As AlertManager configs are appended, the user is responsible to make sure it is valid. Note that using this
4380 ## feature may expose the possibility to break upgrades of Prometheus. It is advised to review Prometheus release
4381 ## notes to ensure that no incompatible AlertManager configs are going to break Prometheus after the upgrade.
4383 additionalAlertManagerConfigs: []
4384 # - consul_sd_configs:
4385 # - server: consul.dev.test:8500
4388 # tag_separator: ','
4390 # - metrics-prometheus-alertmanager
4392 ## If additional alertmanager configurations are already deployed in a single secret, or you want to manage
4393 ## them separately from the helm deployment, you can use this section.
4394 ## Expected values are the secret name and key
4395 ## Cannot be used with additionalAlertManagerConfigs
4396 additionalAlertManagerConfigsSecret: {}
4401 ## AdditionalAlertRelabelConfigs allows specifying Prometheus alert relabel configurations. Alert relabel configurations specified are appended
4402 ## to the configurations generated by the Prometheus Operator. Alert relabel configurations specified must have the form as specified in the
4403 ## official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs.
4404 ## As alert relabel configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the
4405 ## possibility to break upgrades of Prometheus. It is advised to review Prometheus release notes to ensure that no incompatible alert relabel
4406 ## configs are going to break Prometheus after the upgrade.
4408 additionalAlertRelabelConfigs: []
4410 # regex: prometheus_replica
4414 ## If additional alert relabel configurations are already deployed in a single secret, or you want to manage
4415 ## them separately from the helm deployment, you can use this section.
4416 ## Expected values are the secret name and key
4417 ## Cannot be used with additionalAlertRelabelConfigs
4418 additionalAlertRelabelConfigsSecret: {}
4422 ## SecurityContext holds pod-level security attributes and common container settings.
4423 ## This defaults to non root user with uid 1000 and gid 2000.
4424 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md
4432 type: RuntimeDefault
4433 ## DNS configuration for Prometheus.
4434 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.PodDNSConfig
4436 ## DNS policy for Prometheus.
4437 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias
4439 ## Priority class assigned to the Pods
4441 priorityClassName: ""
4442 ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment.
4443 ## This section is experimental, it may change significantly without deprecation notice in any release.
4444 ## This is experimental and may change significantly without backward compatibility in any release.
4445 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosspec
4448 # image: quay.io/thanos/thanos
4449 # secretProviderClass:
4453 # - resourceName: "projects/$PROJECT_ID/secrets/testsecret/versions/latest"
4454 # fileName: "objstore.yaml"
4455 ## ObjectStorageConfig configures object storage in Thanos.
4456 # objectStorageConfig:
4457 # # use existing secret, if configured, objectStorageConfig.secret will not be used
4458 # existingSecret: {}
4461 # # will render objectStorageConfig secret data and configure it to be used by Thanos custom resource,
4462 # # ignored when prometheusspec.thanos.objectStorageConfig.existingSecret is set
4463 # # https://thanos.io/tip/thanos/storage.md/#s3
4473 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to a Prometheus pod.
4474 ## if using proxy extraContainer update targetPort with proxy container port
4477 # - name: oauth-proxy
4478 # image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.4
4480 # - --upstream=http://127.0.0.1:9090
4481 # - --http-address=0.0.0.0:8081
4482 # - --metrics-address=0.0.0.0:8082
4485 # - containerPort: 8081
4488 # - containerPort: 8082
4489 # name: oauth-metrics
4493 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
4494 ## (permissions, dir tree) on mounted volumes before starting prometheus
4496 ## PortName to use for Prometheus.
4498 portName: "http-web"
4499 ## ArbitraryFSAccessThroughSMs configures whether configuration based on a service monitor can access arbitrary files
4500 ## on the file system of the Prometheus container e.g. bearer token files.
4501 arbitraryFSAccessThroughSMs: false
4502 ## OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceMonitor
4503 ## or PodMonitor to true, this overrides honor_labels to false.
4504 overrideHonorLabels: false
4505 ## OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
4506 overrideHonorTimestamps: false
4507 ## When ignoreNamespaceSelectors is set to true, namespaceSelector from all PodMonitor, ServiceMonitor and Probe objects will be ignored,
4508 ## they will only discover targets within the namespace of the PodMonitor, ServiceMonitor and Probe object,
4509 ## and servicemonitors will be installed in the default service namespace.
4510 ## Defaults to false.
4511 ignoreNamespaceSelectors: false
4512 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created.
4513 ## The label value will always be the namespace of the object that is being created.
4514 ## Disabled by default
4515 enforcedNamespaceLabel: ""
4516 ## PrometheusRulesExcludedFromEnforce - list of prometheus rules to be excluded from enforcing of adding namespace labels.
4517 ## Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair
4518 ## Deprecated, use `excludedFromEnforcement` instead
4519 prometheusRulesExcludedFromEnforce: []
4520 ## ExcludedFromEnforcement - list of object references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects
4521 ## to be excluded from enforcing a namespace label of origin.
4522 ## Works only if enforcedNamespaceLabel set to true.
4523 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#objectreference
4524 excludedFromEnforcement: []
4525 ## QueryLogFile specifies the file to which PromQL queries are logged. Note that this location must be writable,
4526 ## and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such
4527 ## as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions
4528 ## of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/)
4530 # Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.
4531 # Set to 'false' to disable global sample_limit. or set to a number to override the default value.
4533 ## TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.
4535 ## Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.
4537 ## Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.
4538 labelNameLengthLimit: 0
4539 ## Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.
4540 labelValueLengthLimit: 0
4541 ## Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
4542 keepDroppedTargets: 0
4543 ## BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.
4545 ## EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any
4546 ## value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.
4547 enforcedBodySizeLimit: ""
4548 # EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.
4549 # The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets
4550 # is greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.
4551 enforcedKeepDroppedTargets: 0
4552 ## EnforcedSampleLimit defines global limit on number of scraped samples that will be accepted. This overrides any SampleLimit
4553 ## set per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the SampleLimit to keep overall
4554 ## number of samples/series under the desired limit. Note that if SampleLimit is lower that value will be taken instead.
4555 enforcedSampleLimit: false
4556 ## EnforcedTargetLimit defines a global limit on the number of scraped targets. This overrides any TargetLimit set
4557 ## per ServiceMonitor or/and PodMonitor. It is meant to be used by admins to enforce the TargetLimit to keep the overall
4558 ## number of targets under the desired limit. Note that if TargetLimit is lower, that value will be taken instead, except
4559 ## if either value is zero, in which case the non-zero value will be used. If both values are zero, no limit is enforced.
4560 enforcedTargetLimit: false
4561 ## Per-scrape limit on number of labels that will be accepted for a sample. If more than this number of labels are present
4562 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4563 ## 2.27.0 and newer.
4564 enforcedLabelLimit: false
4565 ## Per-scrape limit on length of labels name that will be accepted for a sample. If a label name is longer than this number
4566 ## post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus versions
4567 ## 2.27.0 and newer.
4568 enforcedLabelNameLengthLimit: false
4569 ## Per-scrape limit on length of labels value that will be accepted for a sample. If a label value is longer than this
4570 ## number post metric-relabeling, the entire scrape will be treated as failed. 0 means no limit. Only valid in Prometheus
4571 ## versions 2.27.0 and newer.
4572 enforcedLabelValueLengthLimit: false
4573 ## AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. This is still experimental
4574 ## in Prometheus so it may change in any upcoming release.
4575 allowOverlappingBlocks: false
4576 ## Specifies the validation scheme for metric and label names.
4577 ## Supported values are: Legacy, UTF8
4578 nameValidationScheme: ""
4579 ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to
4580 ## be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
4582 ## Duration in seconds the pod needs to terminate gracefully.
4583 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
4584 terminationGracePeriodSeconds: ~
4585 # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico),
4586 # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working
4587 # Use the host's network namespace if true. Make sure to understand the security implications if you want to enable it.
4588 # When hostNetwork is enabled, this will set dnsPolicy to ClusterFirstWithHostNet automatically.
4590 ## Use the host's user namespace for Prometheus pods.
4591 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
4593 # HostAlias holds the mapping between IP and hostnames that will be injected
4594 # as an entry in the pod's hosts file.
4601 ## TracingConfig configures tracing in Prometheus.
4602 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#prometheustracingconfig
4604 ## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
4605 ## If set, the value should be either "Endpoints" or "EndpointSlice". If unset, the operator assumes the "Endpoints" role.
4606 serviceDiscoveryRole: ""
4607 ## EnableServiceLinks indicates whether information about services should be injected into the pod's environment
4608 ## variables. Uses the operator/Kubernetes default when left unset (~).
4609 enableServiceLinks: ~
4610 ## Set the scheduler name to use for the Prometheus pods.
4612 ## Specifies the character escaping scheme applied to metric and label names.
4613 ## Supported values are: AllowUTF8, Underscores, Dots, Values
4614 nameEscapingScheme: ""
4615 ## Defines the strategy used to reload the Prometheus configuration.
4616 ## Supported values are: HTTP, ProcessSignal
4618 ## Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.
4619 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
4621 ## Configuration of the Prometheus rules' engine. Changing these triggers a restart of the pods.
4622 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.Rules
4625 # forOutageTolerance: 1h
4626 # forGracePeriod: 10m
4629 ## RuntimeConfig configures the values for the Prometheus process behavior.
4633 ## Defines the sharding strategy applied by the operator.
4634 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy
4635 shardingStrategy: {}
4636 ## Defines the retention policy for the resources of stale shards after a scale-down.
4637 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy
4638 shardRetentionPolicy: {}
4639 ## List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].
4640 remoteWriteReceiverMessageVersions: []
4641 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
4642 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
4643 podManagementPolicy: ""
4644 ## Update strategy for the StatefulSet.
4645 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
4647 # type: RollingUpdate
4651 ## Additional configuration which is not covered by the properties above. (passed through tpl)
4652 additionalConfig: {}
4653 ## Additional configuration which is not covered by the properties above.
4654 ## Useful, if you need advanced templating inside alertmanagerSpec.
4655 ## Otherwise, use prometheus.prometheusSpec.additionalConfig (passed through tpl)
4656 additionalConfigString: ""
4657 ## Defines the maximum time that the `prometheus` container's startup probe
4658 ## will wait before being considered failed. The startup probe will return
4659 ## success after the WAL replay is complete. If set, the value should be
4660 ## greater than 60 (seconds). Otherwise it will be equal to 900 seconds (15
4662 maximumStartupDurationSeconds: 0
4663 ## Set default scrapeProtocols for Prometheus instances
4664 ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#scrapeprotocolstring-alias
4666 additionalRulesForClusterRole: []
4667 # - apiGroups: [ "" ]
4670 # verbs: [ "get", "list", "watch" ]
4672 additionalServiceMonitors: []
4673 ## Name of the ServiceMonitor to create
4677 ## Additional labels to set used for the ServiceMonitorSelector. Together with standard labels from
4680 # additionalLabels: {}
4682 ## Service label for use in assembling a job name of the form <label value>-<port>
4683 ## If no label is specified, the service name is used.
4687 ## labels to transfer from the kubernetes service to the target
4691 ## labels to transfer from the kubernetes pods to the target
4693 # podTargetLabels: []
4695 ## Label selector for services to which this ServiceMonitor applies
4698 ## Example which selects all services to be monitored
4699 ## with label "monitoredby" with values any of "example-service-1" or "example-service-2"
4701 # - key: "monitoredby"
4704 # - example-service-1
4705 # - example-service-2
4707 ## label selector for services
4711 ## Namespaces from which services are selected
4713 # namespaceSelector:
4714 ## Match any namespace
4718 ## Explicit list of namespace names to select
4722 ## Endpoints of the selected service to be monitored
4725 ## Name of the endpoint's service port
4726 ## Mutually exclusive with targetPort
4729 ## Name or number of the endpoint's target port
4730 ## Mutually exclusive with port
4733 ## File containing bearer token to be used when scraping targets
4735 # bearerTokenFile: ""
4737 ## Interval at which metrics should be scraped
4741 ## HTTP path to scrape for metrics
4745 ## HTTP scheme to use for scraping
4749 ## TLS configuration to use when scraping the endpoint
4753 ## Path to the CA file
4757 ## Path to client certificate file
4761 ## Skip certificate verification
4763 # insecureSkipVerify: false
4765 ## Path to client key file
4769 ## Server name used to verify host name
4773 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
4774 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4776 # metricRelabelings: []
4778 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
4779 # sourceLabels: [__name__]
4781 ## RelabelConfigs to apply to samples before scraping
4782 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
4785 # - sourceLabels: [__meta_kubernetes_pod_node_name]
4788 # targetLabel: nodename
4792 ## Fallback scrape protocol used by Prometheus for scraping metrics
4793 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4795 # fallbackScrapeProtocol: ""
4797 ## Attaches node metadata to the discovered targets
4798 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4802 additionalPodMonitors: []
4803 ## Name of the PodMonitor to create
4806## Additional labels to set used for the PodMonitorSelector. Together with standard labels from
4809# additionalLabels: {}
4811## Pod label for use in assembling a job name of the form <label value>-<port>
4812## If no label is specified, the pod endpoint name is used.
4816## Label selector for pods to which this PodMonitor applies
4819## Example which selects all Pods to be monitored
4820## with label "monitoredby" with values any of "example-pod-1" or "example-pod-2"
4822# - key: "monitoredby"
4828## label selector for pods
4832## PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
4834# podTargetLabels: {}
4836## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
4840## Namespaces from which pods are selected
4843## Match any namespace
4847## Explicit list of namespace names to select
4851## Endpoints of the selected pods to be monitored
4852## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#podmetricsendpoint
4854# podMetricsEndpoints: []
4856## Fallback scrape protocol used by Prometheus for scraping metrics
4857## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ScrapeProtocol
4859# fallbackScrapeProtocol: ""
4861## Attaches node metadata to the discovered targets
4862## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AttachMetadata
4867## Configuration for thanosRuler
4868## ref: https://thanos.io/tip/components/rule.md/
4871 ## Deploy thanosRuler
4874 ## Annotations for ThanosRuler
4877 ## Service account for ThanosRuler to use.
4878 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
4884 ## Configure pod disruption budgets for ThanosRuler
4885 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
4887 podDisruptionBudget:
4890 # maxUnavailable: ""
4891 unhealthyPodEvictionPolicy: AlwaysAllow
4894 ingressClassName: ""
4897 ## Hosts must be provided if Ingress is enabled.
4900 # - thanosruler.domain.com
4902 ## Paths to use for ingress rules - one path should match the thanosruler.routePrefix
4907 ## For Kubernetes >= 1.18 you should specify the pathType (determines how Ingress paths should be matched)
4908 ## See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#better-path-matching-with-path-types
4909 # pathType: ImplementationSpecific
4911 ## TLS configuration for ThanosRuler Ingress
4912 ## Secret must be manually created in the namespace
4915 # - secretName: thanosruler-general-tls
4917 # - thanosruler.example.com
4918 # -- BETA: Configure the gateway routes for the chart here.
4919 # More routes can be added by adding a dictionary key like the 'main' route.
4920 # Be aware that this is an early beta of this feature,
4921 # kube-prometheus-stack does not guarantee this works and is subject to change.
4922 # Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
4923 # [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)
4926 # -- Enables or disables the route
4928 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
4929 apiVersion: gateway.networking.k8s.io/v1
4930 # -- Set the route kind
4931 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
4936 # - my-filter.example.com
4940 # -- create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)
4941 ## Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.
4942 ## matches, filters and additionalRules will be ignored if this is set to true. Be are
4943 httpsRedirect: false
4948 ## Filters define the filters that are applied to requests that match this rule.
4950 ## Timeouts for the generated HTTPRoute backend rule.
4951 ## Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.
4954 # backendRequest: 60s
4956 ## Session persistence configuration for the route rule.
4957 sessionPersistence: {}
4958 # sessionName: route
4960 # absoluteTimeout: 12h
4962 # lifetimeType: Permanent
4964 ## Additional custom rules that can be added to the route
4966 ## Configuration for ThanosRuler service
4975 ipFamilies: ["IPv6", "IPv4"]
4976 ipFamilyPolicy: "PreferDualStack"
4977 ## Port for ThanosRuler Service to listen on
4980 ## To be used with a proxy extraContainer port
4983 ## Port to expose on each node
4984 ## Only used if service.type is 'NodePort'
4987 ## List of IP addresses at which the Prometheus server service is available
4988 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
4991 ## Additional ports to open for ThanosRuler service
4995 loadBalancerSourceRanges: []
4996 ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
4998 externalTrafficPolicy: Cluster
5002 ## Configuration for creating a ServiceMonitor for the ThanosRuler service
5005 ## If true, create a serviceMonitor for thanosRuler
5008 ## Scrape interval. If not set, the Prometheus default scrape interval is used.
5011 ## Additional labels
5013 additionalLabels: {}
5014 ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
5017 ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
5020 ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
5023 ## 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.
5025 labelNameLengthLimit: 0
5026 ## 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.
5028 labelValueLengthLimit: 0
5029 ## proxyUrl: URL of a proxy that should be used for scraping.
5032 ## scheme: HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
5034 ## tlsConfig: TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
5035 ## Of type: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#tlsconfig
5038 ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
5039 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5041 metricRelabelings: []
5043 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
5044 # sourceLabels: [__name__]
5046 ## RelabelConfigs to apply to samples before scraping
5047 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig
5050 # - sourceLabels: [__meta_kubernetes_pod_node_name]
5053 # targetLabel: nodename
5057 ## Additional Endpoints
5059 additionalEndpoints: []
5060 # - port: oauth-metrics
5062 ## Settings affecting thanosRulerpec
5063 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerspec
5066 ## Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
5067 ## Metadata Labels and Annotations gets propagated to the ThanosRuler pods.
5072 ## Image of ThanosRuler
5076 repository: chainguard-private/thanos
5078 sha: sha256:5b3801e1185d9ff3e0a11d15f8e94ea5b440676a423278cf17c6f9047b4ec77a
5079 ## Namespaces to be selected for PrometheusRules discovery.
5080 ## If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.
5081 ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage
5083 ruleNamespaceSelector: {}
5084 ## If true, a nil or {} value for thanosRuler.thanosRulerSpec.ruleSelector will cause the
5085 ## prometheus resource to be created with selectors based on values in the helm deployment,
5086 ## which will also match the PrometheusRule resources created
5088 ruleSelectorNilUsesHelmValues: true
5089 ## PrometheusRules to be selected for target discovery.
5090 ## If {}, select all PrometheusRules
5093 ## Example which select all PrometheusRules resources
5094 ## with label "prometheus" with values any of "example-rules" or "example-rules-2"
5103 ## Example which select all PrometheusRules resources with label "role" set to "example-rules"
5106 # role: example-rules
5108 ## Define Log Format
5109 # Use logfmt (default) or json logging
5111 ## Log level for ThanosRuler to be configured with.
5114 ## Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the
5115 ## running cluster equal to the expected size.
5117 ## Time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression
5118 ## [0-9]+(ms|s|m|h) (milliseconds seconds minutes hours).
5121 ## Interval between consecutive evaluations.
5123 evaluationInterval: ""
5124 ## Storage is the definition of how storage will be used by the ThanosRuler instances.
5125 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md
5128 # volumeClaimTemplate:
5130 # storageClassName: gluster
5131 # accessModes: ["ReadWriteOnce"]
5137 ## AlertmanagerConfig define configuration for connecting to alertmanager.
5138 ## Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.
5139 alertmanagersConfig:
5140 # use existing secret, if configured, alertmanagersConfig.secret will not be used
5144 # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
5145 # https://thanos.io/tip/components/rule.md/#alertmanager
5151 # username: some_user
5152 # password: some_pass
5154 # - alertmanager.thanos.io
5157 ## DEPRECATED. Define URLs to send alerts to Alertmanager. For Thanos v0.10.0 and higher, alertmanagersConfig should be used instead.
5158 ## Note: this field will be ignored if alertmanagersConfig is specified. Maps to the alertmanagers.url Thanos Ruler arg.
5161 ## 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
5164 ## If true, http://{{ template "kube-prometheus-stack.thanosRuler.name" . }}.{{ template "kube-prometheus-stack.namespace" . }}:{{ .Values.thanosRuler.service.port }}
5165 ## will be used as value for externalPrefix
5166 externalPrefixNilUsesHelmValues: true
5167 ## 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,
5168 ## but the server serves requests under a different route prefix. For example for use with kubectl proxy.
5171 ## ObjectStorageConfig configures object storage in Thanos
5172 objectStorageConfig:
5173 # use existing secret, if configured, objectStorageConfig.secret will not be used
5177 # will render objectStorageConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when objectStorageConfig.existingSecret is set
5178 # https://thanos.io/tip/thanos/storage.md/#s3
5187 ## Labels by name to drop before sending to alertmanager
5188 ## Maps to the --alert.label-drop flag of thanos ruler.
5190 ## QueryEndpoints defines Thanos querier endpoints from which to query metrics.
5191 ## Maps to the --query flag of thanos ruler.
5193 ## Define configuration for connecting to thanos query instances. If this is defined, the queryEndpoints field will be ignored.
5194 ## Maps to the query.config CLI argument. Only available with thanos v0.11.0 and higher.
5196 # use existing secret, if configured, queryConfig.secret will not be used
5200 # render queryConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when queryConfig.existingSecret is set
5201 # https://thanos.io/tip/components/rule.md/#query-api
5205 # username: some_user
5206 # password: some_pass
5211 ## Labels configure the external label pairs to ThanosRuler. A default replica
5212 ## label `thanos_ruler_replica` will be always added as a label with the value
5213 ## of the pod's name and it will be dropped in the alerts.
5215 ## If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.
5218 ## Allows setting additional arguments for the ThanosRuler container
5219 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosruler
5222 # - name: remote-write.config
5225 # - "name": "receiver-0"
5226 # "remote_timeout": "30s"
5227 # "url": "http://thanos-receiver-0.thanos-receiver:8081/api/v1/receive"
5229 ## Define which Nodes the Pods are scheduled on.
5230 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
5233 ## Define resources requests and limits for single Pods.
5234 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5240 ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node.
5241 ## 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.
5242 ## The value "hard" means that the scheduler is *required* to not schedule two replica pods onto the same node.
5243 ## The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured.
5245 podAntiAffinity: "soft"
5246 ## If anti-affinity is enabled sets the topologyKey to use for anti-affinity.
5247 ## This can be changed to, for example, failure-domain.beta.kubernetes.io/zone
5249 podAntiAffinityTopologyKey: kubernetes.io/hostname
5250 ## Assign custom affinity rules to the thanosRuler instance
5251 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
5255 # requiredDuringSchedulingIgnoredDuringExecution:
5256 # nodeSelectorTerms:
5257 # - matchExpressions:
5258 # - key: kubernetes.io/e2e-az-name
5264 ## If specified, the pod's tolerations.
5265 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
5271 # effect: "NoSchedule"
5273 ## If specified, the pod's topology spread constraints.
5274 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
5276 topologySpreadConstraints: []
5278 # topologyKey: topology.kubernetes.io/zone
5279 # whenUnsatisfiable: DoNotSchedule
5284 ## SecurityContext holds pod-level security attributes and common container settings.
5285 ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false
5286 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5294 type: RuntimeDefault
5295 ## Use the host's user namespace for ThanosRuler pods.
5296 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/
5298 ## ListenLocal makes the ThanosRuler server listen on loopback, so that it does not bind against the Pod IP.
5299 ## Note this is only for the ThanosRuler UI, not the gossip communication.
5302 ## Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod.
5305 ## Additional environment variables to set on the ThanosRuler container.
5306 ## This is rendered through the Prometheus Operator strategic merge patch.
5312 # Additional volumes on the output StatefulSet definition.
5314 # Additional VolumeMounts on the output StatefulSet definition.
5316 ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes
5317 ## (permissions, dir tree) on mounted volumes before starting prometheus
5319 ## Priority class assigned to the Pods
5321 priorityClassName: ""
5322 ## PortName to use for ThanosRuler.
5325 ## Scheduler to use for Pod scheduling, defaulting to the Kubernetes default scheduler.
5328 ## Duration in seconds the pod needs to terminate gracefully.
5329 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
5330 terminationGracePeriodSeconds: ~
5331 ## WebTLSConfig defines the TLS parameters for HTTPS
5332 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#thanosrulerwebspec
5334 ## Pod management policy. Kubernetes default is OrderedReady but prometheus-operator default is Parallel.
5335 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
5336 podManagementPolicy: ""
5337 ## Update strategy for the StatefulSet.
5338 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
5340 # type: RollingUpdate
5344 ## Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.
5346 ## Image pull policy for the Thanos Ruler container.
5348 ## EnableFeatures API enables access to Thanos Ruler disabled features.
5350 ## EnableServiceLinks indicates whether information about services should be injected into the
5351 ## pod's environment variables. Uses the operator/Kubernetes default when left unset (~).
5352 enableServiceLinks: ~
5353 ## Minimum number of seconds for which a newly created pod should be ready without any of its
5354 ## containers crashing/restarting for it to be considered available.
5356 ## Defines the DNS configuration for the pods.
5361 # - ns1.svc.cluster-domain.example
5366 ## Defines the DNS policy for the pods.
5368 ## Pods' hostAliases configuration
5369 ## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
5375 ## Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.
5376 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec
5378 ## Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.
5380 # use existing secret, if configured, tracingConfig.secret will not be used
5384 # render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set
5386 ## Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.
5387 tracingConfigFile: ""
5388 ## Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.
5389 alertRelabelConfigs:
5390 # use existing secret, if configured, alertRelabelConfigs.secret will not be used
5394 # render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set
5396 ## Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.
5397 alertRelabelConfigFile: ""
5398 ## Configures the gRPC server TLS for Thanos Ruler.
5399 ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig
5400 grpcServerTlsConfig: {}
5401 ## Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.
5402 objectStorageConfigFile: ""
5403 ## Number of concurrent rule evaluations.
5404 ruleConcurrentEval: ~
5405 ## Maximum time to tolerate outage for restoring "for" state of alert.
5406 ruleOutageTolerance: ""
5407 ## Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for"
5408 ## time greater than the grace period.
5410 ## The default rule group's query offset duration to shift the evaluation time of rules backwards.
5411 ## ref: https://github.com/prometheus-community/helm-charts/issues/5843
5413 ## Minimum amount of time to wait before resending an alert to Alertmanager.
5415 ## EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.
5416 enforcedNamespaceLabel: ""
5417 ## List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).
5418 ## Can be a list of objects, or a string that is passed through tpl.
5419 excludedFromEnforcement: []
5420 ## Additional configuration which is not covered by the properties above. (passed through tpl)
5421 additionalConfig: {}
5422 ## Additional configuration which is not covered by the properties above.
5423 ## Useful, if you need advanced templating
5424 additionalConfigString: ""
5425 ## ExtraSecret can be used to store various data in an extra secret
5426 ## (use it for example to store hashed basic auth credentials)
5428 ## if not set, name will be auto generated
5433 # foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0
5434 # someoneelse:$apr1$DMZX2Z4q$6SbQIfyuLQd.xmo/P0m2c.
5435## 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.
5437cleanPrometheusOperatorObjectNames: false
5438## Extra manifests to deploy. Can be of type dict or list.
5439## If dict, keys are ignored and only values are used.
5440## Items contained within extraObjects can be defined as dict or string and are passed through tpl.
5446# name: prometheus-extra
5448# extra-data: "value"
5450# can also be defined as a string, useful for templating field names
5458# {{- range $key, $value := .Values.commonLabels }}
5459# {{ $key }}: {{ $value }}
5462# plaintext: Zm9vYmFy
5463# templated: '{{ print "foobar" | upper | b64enc }}'